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 SenseSemi

Committer:
nikitateggi
Date:
Mon Jan 30 10:57:38 2017 +0000
Revision:
2:3b7b71bfc941
Parent:
1:8316c23ec6b9
Child:
4:6bd81bb1790d
POC code modified

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 1:8316c23ec6b9 1 #include "mbed.h"
nikitateggi 1:8316c23ec6b9 2 #include "glc.h"
nikitateggi 1:8316c23ec6b9 3 #include "i2c_dec.h"
nikitateggi 1:8316c23ec6b9 4 #include "ili9325.h"
nikitateggi 1:8316c23ec6b9 5 #include "lcd_base.h"
nikitateggi 1:8316c23ec6b9 6 #include "display_modules.h"
nikitateggi 1:8316c23ec6b9 7 //#include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 8 #include "rtc.h"
nikitateggi 1:8316c23ec6b9 9 #include "sdcard.h"
nikitateggi 1:8316c23ec6b9 10
nikitateggi 1:8316c23ec6b9 11
nikitateggi 1:8316c23ec6b9 12 void sample();
nikitateggi 1:8316c23ec6b9 13 void Compute();
nikitateggi 1:8316c23ec6b9 14 void i2c_spec();
nikitateggi 1:8316c23ec6b9 15 Ticker flipper;
nikitateggi 1:8316c23ec6b9 16 Ticker flipper1;
nikitateggi 1:8316c23ec6b9 17
nikitateggi 1:8316c23ec6b9 18 //osTimerDef (sample_data, sample); // define timers
nikitateggi 1:8316c23ec6b9 19 //osTimerDef (Compute_GLC, Compute);
nikitateggi 1:8316c23ec6b9 20 DigitalIn test_strip(PTA12);
nikitateggi 1:8316c23ec6b9 21
nikitateggi 1:8316c23ec6b9 22 AnalogIn Ain(PTC1);//Electrode one
nikitateggi 1:8316c23ec6b9 23 AnalogIn Ain2(PTE29); // Electrode two
nikitateggi 1:8316c23ec6b9 24 AnalogOut DAC_signal(PTE30);
nikitateggi 1:8316c23ec6b9 25 //Serial gc(USBTX, USBRX);
nikitateggi 1:8316c23ec6b9 26 //unsigned char c;
nikitateggi 1:8316c23ec6b9 27 //unsigned char HOME = 0;
nikitateggi 1:8316c23ec6b9 28 unsigned char GLC_START = 0;
nikitateggi 1:8316c23ec6b9 29 //signed char test_strip = 0;
nikitateggi 1:8316c23ec6b9 30 unsigned int mgdl = 0;
nikitateggi 1:8316c23ec6b9 31 unsigned int mgdll = 0;
nikitateggi 1:8316c23ec6b9 32 unsigned int daata1= 0;
nikitateggi 1:8316c23ec6b9 33 unsigned int data2 = 0;
nikitateggi 1:8316c23ec6b9 34
nikitateggi 1:8316c23ec6b9 35 unsigned int data1n= 0;
nikitateggi 1:8316c23ec6b9 36 unsigned int data2n = 0;
nikitateggi 1:8316c23ec6b9 37 unsigned int datafinal1 = 0;
nikitateggi 1:8316c23ec6b9 38 unsigned int datafinal2 = 0;
nikitateggi 1:8316c23ec6b9 39 //unsigned int data_diff = 0;
nikitateggi 1:8316c23ec6b9 40 unsigned char err = 0;
nikitateggi 1:8316c23ec6b9 41
nikitateggi 1:8316c23ec6b9 42 Serial ble(PTC4,PTC3);
nikitateggi 1:8316c23ec6b9 43
nikitateggi 1:8316c23ec6b9 44 void sample()
nikitateggi 1:8316c23ec6b9 45
nikitateggi 1:8316c23ec6b9 46 {
nikitateggi 1:8316c23ec6b9 47 data1n = Ain.read_u16();
nikitateggi 1:8316c23ec6b9 48 data2n = Ain2.read_u16();
nikitateggi 1:8316c23ec6b9 49 daata1 = beta*daata1+alpha*data1n;
nikitateggi 1:8316c23ec6b9 50 data2 = beta*data2+alpha*data2n;
nikitateggi 1:8316c23ec6b9 51
nikitateggi 1:8316c23ec6b9 52 if( ((daata1-data2) >=(data2/10) && (daata1 > data2)) || ((data2-daata1) >=(data2/10) && (data2 > daata1)) )
nikitateggi 1:8316c23ec6b9 53 {
nikitateggi 1:8316c23ec6b9 54
nikitateggi 1:8316c23ec6b9 55 err = 1;
nikitateggi 1:8316c23ec6b9 56 }
nikitateggi 1:8316c23ec6b9 57 else
nikitateggi 1:8316c23ec6b9 58 {
nikitateggi 1:8316c23ec6b9 59 err = 0;
nikitateggi 1:8316c23ec6b9 60 }
nikitateggi 1:8316c23ec6b9 61
nikitateggi 1:8316c23ec6b9 62 }
nikitateggi 1:8316c23ec6b9 63
nikitateggi 1:8316c23ec6b9 64 void Compute()
nikitateggi 1:8316c23ec6b9 65 {
nikitateggi 1:8316c23ec6b9 66
nikitateggi 1:8316c23ec6b9 67 //datafinal1 = data1;
nikitateggi 1:8316c23ec6b9 68 // unsigned char check;
nikitateggi 1:8316c23ec6b9 69 //osTimerStop(id2);
nikitateggi 1:8316c23ec6b9 70 //osTimerStop(id1);
nikitateggi 1:8316c23ec6b9 71 datafinal1 = (unsigned int) NUMB1*(data2*VREF/(TOTAL))-NUMB2;
nikitateggi 1:8316c23ec6b9 72 datafinal2 = (unsigned int) NUMB1*(daata1*VREF/(TOTAL))-NUMB2;
nikitateggi 1:8316c23ec6b9 73 mgdl = (unsigned int) NUMB1*(((daata1+data2)/2)*VREF/(TOTAL))-NUMB2;
nikitateggi 1:8316c23ec6b9 74
nikitateggi 1:8316c23ec6b9 75
nikitateggi 1:8316c23ec6b9 76 if (err == 0)
nikitateggi 1:8316c23ec6b9 77 {
nikitateggi 1:8316c23ec6b9 78
nikitateggi 1:8316c23ec6b9 79 glc_4(mgdl);
nikitateggi 1:8316c23ec6b9 80
nikitateggi 1:8316c23ec6b9 81 sd_write(mgdl);
nikitateggi 1:8316c23ec6b9 82 sd_close();
nikitateggi 2:3b7b71bfc941 83 ble.printf("blood glucose is %d mg/dl", mgdl);
nikitateggi 1:8316c23ec6b9 84 flipper.detach();
nikitateggi 1:8316c23ec6b9 85 flipper1.detach();
nikitateggi 1:8316c23ec6b9 86 // return mgdl;
nikitateggi 1:8316c23ec6b9 87
nikitateggi 1:8316c23ec6b9 88 }
nikitateggi 1:8316c23ec6b9 89 else
nikitateggi 1:8316c23ec6b9 90 {
nikitateggi 1:8316c23ec6b9 91 // lcd1.Print( " ERROR RESULT", 5,220,COLOR_RED,COLOR_BLACK, 0);
nikitateggi 1:8316c23ec6b9 92 // ble.printf("E:");
nikitateggi 1:8316c23ec6b9 93 }
nikitateggi 1:8316c23ec6b9 94
nikitateggi 1:8316c23ec6b9 95
nikitateggi 1:8316c23ec6b9 96 }
nikitateggi 1:8316c23ec6b9 97
nikitateggi 1:8316c23ec6b9 98
nikitateggi 1:8316c23ec6b9 99 void T_S_detect(void)
nikitateggi 1:8316c23ec6b9 100 {
nikitateggi 1:8316c23ec6b9 101 GLC_START = 1;
nikitateggi 1:8316c23ec6b9 102 //st_strip=1;
nikitateggi 1:8316c23ec6b9 103 }
nikitateggi 1:8316c23ec6b9 104
nikitateggi 1:8316c23ec6b9 105
nikitateggi 1:8316c23ec6b9 106
nikitateggi 1:8316c23ec6b9 107
nikitateggi 1:8316c23ec6b9 108
nikitateggi 1:8316c23ec6b9 109
nikitateggi 1:8316c23ec6b9 110
nikitateggi 1:8316c23ec6b9 111
nikitateggi 1:8316c23ec6b9 112
nikitateggi 1:8316c23ec6b9 113
nikitateggi 1:8316c23ec6b9 114
nikitateggi 1:8316c23ec6b9 115
nikitateggi 1:8316c23ec6b9 116
nikitateggi 1:8316c23ec6b9 117
nikitateggi 1:8316c23ec6b9 118
nikitateggi 1:8316c23ec6b9 119
nikitateggi 1:8316c23ec6b9 120 void glc(int pid){
nikitateggi 1:8316c23ec6b9 121 char t_s_d = 0;
nikitateggi 1:8316c23ec6b9 122 i2c_spec();
nikitateggi 1:8316c23ec6b9 123 GLC_START = 1;
nikitateggi 1:8316c23ec6b9 124 ble.baud(115200);
nikitateggi 1:8316c23ec6b9 125 if(GLC_START == 1)
nikitateggi 1:8316c23ec6b9 126 {
nikitateggi 1:8316c23ec6b9 127
nikitateggi 1:8316c23ec6b9 128 //DisableTouch();
nikitateggi 1:8316c23ec6b9 129 //gpo_t = 0;
nikitateggi 1:8316c23ec6b9 130 //lcd1.FillRect(5,127,230,320,COLOR_BLACK);
nikitateggi 1:8316c23ec6b9 131 glc_1();
nikitateggi 1:8316c23ec6b9 132 err = 0;
nikitateggi 1:8316c23ec6b9 133 data1n = 0;
nikitateggi 1:8316c23ec6b9 134 data2n = 0;
nikitateggi 1:8316c23ec6b9 135 daata1 = 0;
nikitateggi 1:8316c23ec6b9 136 data2 = 0;
nikitateggi 1:8316c23ec6b9 137 sd_open_GLCfile(pid);
nikitateggi 1:8316c23ec6b9 138
nikitateggi 1:8316c23ec6b9 139 while((test_strip));
nikitateggi 1:8316c23ec6b9 140
nikitateggi 1:8316c23ec6b9 141
nikitateggi 1:8316c23ec6b9 142 // wait(500);
nikitateggi 1:8316c23ec6b9 143 // Shutdown = 1;
nikitateggi 1:8316c23ec6b9 144
nikitateggi 1:8316c23ec6b9 145 if (!test_strip)
nikitateggi 1:8316c23ec6b9 146 {
nikitateggi 1:8316c23ec6b9 147
nikitateggi 1:8316c23ec6b9 148 flipper.attach(&sample, 0.8);
nikitateggi 1:8316c23ec6b9 149 t_s_d = 0;
nikitateggi 1:8316c23ec6b9 150 glc_2();
nikitateggi 1:8316c23ec6b9 151 //gc.printf("%d\n", data1n);
nikitateggi 1:8316c23ec6b9 152
nikitateggi 1:8316c23ec6b9 153 while((!t_s_d) && (!test_strip))
nikitateggi 1:8316c23ec6b9 154 {
nikitateggi 1:8316c23ec6b9 155
nikitateggi 1:8316c23ec6b9 156
nikitateggi 1:8316c23ec6b9 157 if ((daata1 >= THRESHOLD) || (data2 >= THRESHOLD))
nikitateggi 1:8316c23ec6b9 158 {
nikitateggi 1:8316c23ec6b9 159 t_s_d = 1;
nikitateggi 1:8316c23ec6b9 160 flipper1.attach(&Compute, 2.25);
nikitateggi 1:8316c23ec6b9 161 glc_3();
nikitateggi 1:8316c23ec6b9 162
nikitateggi 1:8316c23ec6b9 163
nikitateggi 1:8316c23ec6b9 164 }
nikitateggi 1:8316c23ec6b9 165 else
nikitateggi 1:8316c23ec6b9 166 {
nikitateggi 1:8316c23ec6b9 167 //wait for insertion of blood;
nikitateggi 1:8316c23ec6b9 168 }
nikitateggi 1:8316c23ec6b9 169
nikitateggi 1:8316c23ec6b9 170 }
nikitateggi 1:8316c23ec6b9 171
nikitateggi 1:8316c23ec6b9 172
nikitateggi 1:8316c23ec6b9 173 // t_s_d = 0;
nikitateggi 1:8316c23ec6b9 174 wait_ms(800);
nikitateggi 1:8316c23ec6b9 175 //flipper.detach();
nikitateggi 1:8316c23ec6b9 176
nikitateggi 1:8316c23ec6b9 177 }
nikitateggi 1:8316c23ec6b9 178
nikitateggi 1:8316c23ec6b9 179
nikitateggi 1:8316c23ec6b9 180 }
nikitateggi 1:8316c23ec6b9 181
nikitateggi 1:8316c23ec6b9 182 }
nikitateggi 1:8316c23ec6b9 183
nikitateggi 1:8316c23ec6b9 184
nikitateggi 1:8316c23ec6b9 185
nikitateggi 1:8316c23ec6b9 186
nikitateggi 1:8316c23ec6b9 187