Updated with option to return from BP screen to main screen, resolved screen navigation issues
Dependencies: SDFileSystem TFTLCD_8bit ds3231 program mbed
Fork of poc_dis_5 by
glc.cpp
- Committer:
- nikitateggi
- Date:
- 2017-03-01
- Revision:
- 4:6bd81bb1790d
- Parent:
- 2:3b7b71bfc941
- Child:
- 5:a3ea7c82b7e1
File content as of revision 4:6bd81bb1790d:
#include "mbed.h" #include "glc.h" #include "i2c_dec.h" #include "ili9325.h" #include "lcd_base.h" #include "display_modules.h" //#include "touch_modules.h" #include "rtc.h" #include "sdcard.h" void sample(); void Compute(); void i2c_spec(); Ticker flipper; Ticker flipper1; //osTimerDef (sample_data, sample); // define timers //osTimerDef (Compute_GLC, Compute); DigitalIn test_strip(PTA12); AnalogIn Ain(PTC1);//Electrode one AnalogIn Ain2(PTE29); // Electrode two AnalogOut DAC_signal(PTE30); Serial gtc(USBTX, USBRX); //unsigned char c; //unsigned char HOME = 0; //signed char test_strip = 0; unsigned int mgdl = 0; unsigned int mgdll = 0; unsigned int daata1= 0; unsigned int data2 = 0; unsigned int data1n= 0; unsigned int data2n = 0; unsigned int datafinal1 = 0; unsigned int datafinal2 = 0; //unsigned int data_diff = 0; unsigned char err = 0; Serial ble(PTC4,PTC3); void sample() { data1n = Ain.read_u16(); data2n = Ain2.read_u16(); daata1 = beta*daata1+alpha*data1n; data2 = beta*data2+alpha*data2n; if( ((daata1-data2) >=(data2/10) && (daata1 > data2)) || ((data2-daata1) >=(data2/10) && (data2 > daata1)) ) { err = 1; } else { err = 0; } } void Compute() { datafinal1 = (unsigned int) NUMB1*(data2*VREF/(TOTAL))-NUMB2; datafinal2 = (unsigned int) NUMB1*(daata1*VREF/(TOTAL))-NUMB2; mgdl = (unsigned int) NUMB1*(((daata1+data2)/2)*VREF/(TOTAL))-NUMB2; if (err == 0) { glc_4(mgdl); sd_write(mgdl); // storing value into the sd card sd_close(); ble.printf("blood glucose is %d mg/dl", mgdl); flipper.detach(); flipper1.detach(); // return mgdl; } else { // lcd1.Print( " ERROR RESULT", 5,220,COLOR_RED,COLOR_BLACK, 0); // ble.printf("E:"); } } void glc(int pid){ unsigned char GLC_START = 0; char t_s_d = 0; i2c_spec(); GLC_START = 1; // ble.baud(115200); if(GLC_START == 1) { //DisableTouch(); //gpo_t = 0; //lcd1.FillRect(5,127,230,320,COLOR_BLACK); glc_1(); // displaying messages to insert the test strip err = 0; data1n = 0; data2n = 0; daata1 = 0; data2 = 0; sd_open_GLCfile(pid); // opening the glc file while((test_strip)); // wait(500); // Shutdown = 1; if (!test_strip) // checks for the presence of test strip { flipper.attach(&sample, 0.8); t_s_d = 0; glc_2(); // displaying message to insert blood while((!t_s_d) && (!test_strip)) { // gtc.printf("%d\n", data1n); if ((daata1 >= THRESHOLD) || (data2 >= THRESHOLD)) { t_s_d = 1; flipper1.attach(&Compute, 2.25); //computing the glucose level glc_3(); } else { //wait for insertion of blood; } } // t_s_d = 0; wait_ms(800); //flipper.detach(); } } }