Changes done in ECG and BT

Dependencies:   SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217

Fork of merged_code2_20sept_2017_4th_oct_2017 by nikita teggi

Committer:
nikitateggi
Date:
Wed Mar 01 18:49:33 2017 +0000
Revision:
4:6bd81bb1790d
Parent:
3:9a06c2bed650
Child:
5:a3ea7c82b7e1
POC code with eeprom

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
nikitateggi 0:c47fb0c1bbf6 2 #include "ili9325.h"
nikitateggi 0:c47fb0c1bbf6 3 #include "lcd_base.h"
nikitateggi 0:c47fb0c1bbf6 4 #include "display_modules.h"
nikitateggi 0:c47fb0c1bbf6 5 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 6 #include "ecg_dec.h"
nikitateggi 1:8316c23ec6b9 7 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 8 #include "glc.h"
nikitateggi 3:9a06c2bed650 9 #include "bp.h"
nikitateggi 1:8316c23ec6b9 10 #include "sdcard.h"
nikitateggi 4:6bd81bb1790d 11 #include "eeprom_pgm.h"
nikitateggi 0:c47fb0c1bbf6 12
nikitateggi 1:8316c23ec6b9 13
nikitateggi 0:c47fb0c1bbf6 14 Serial gc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 15 DigitalIn q1(PTB11);
nikitateggi 0:c47fb0c1bbf6 16 DigitalIn q(PTB8);
nikitateggi 1:8316c23ec6b9 17 //Serial ble(PTC4,PTC3);
nikitateggi 0:c47fb0c1bbf6 18
nikitateggi 0:c47fb0c1bbf6 19
nikitateggi 0:c47fb0c1bbf6 20
nikitateggi 0:c47fb0c1bbf6 21 int main(){
nikitateggi 0:c47fb0c1bbf6 22
nikitateggi 0:c47fb0c1bbf6 23
nikitateggi 3:9a06c2bed650 24 unsigned char state;
nikitateggi 3:9a06c2bed650 25 unsigned char state1;
nikitateggi 3:9a06c2bed650 26 unsigned char nstate;
nikitateggi 3:9a06c2bed650 27 unsigned char nstate1;
nikitateggi 3:9a06c2bed650 28 int pid=0; // patient ID
nikitateggi 3:9a06c2bed650 29 unsigned char flag=0;
nikitateggi 3:9a06c2bed650 30 unsigned char ecg_flag=0;
nikitateggi 3:9a06c2bed650 31 unsigned char glc_flag=0;
nikitateggi 1:8316c23ec6b9 32
nikitateggi 3:9a06c2bed650 33
nikitateggi 1:8316c23ec6b9 34 DisableTouch();
nikitateggi 1:8316c23ec6b9 35 gc.baud(115200);
nikitateggi 1:8316c23ec6b9 36
nikitateggi 1:8316c23ec6b9 37 init_screen(); //initialize lcd
nikitateggi 1:8316c23ec6b9 38 screen_main(); // display of main screen
nikitateggi 0:c47fb0c1bbf6 39 state=1;
nikitateggi 1:8316c23ec6b9 40 flag=0;
nikitateggi 1:8316c23ec6b9 41 nstate=state;
nikitateggi 0:c47fb0c1bbf6 42 EnableTouch(); // enable touch function
nikitateggi 0:c47fb0c1bbf6 43
nikitateggi 0:c47fb0c1bbf6 44 while(1)
nikitateggi 0:c47fb0c1bbf6 45 {
nikitateggi 3:9a06c2bed650 46
nikitateggi 4:6bd81bb1790d 47 detect_touch(); // determine the touch points
nikitateggi 1:8316c23ec6b9 48
nikitateggi 4:6bd81bb1790d 49 switch(state) // state for touch
nikitateggi 0:c47fb0c1bbf6 50 {
nikitateggi 0:c47fb0c1bbf6 51 case 1: state1=touch_main(); // determining the touch for main screen
nikitateggi 0:c47fb0c1bbf6 52 state=0;
nikitateggi 1:8316c23ec6b9 53 nstate1=state1;
nikitateggi 3:9a06c2bed650 54 break;
nikitateggi 0:c47fb0c1bbf6 55
nikitateggi 0:c47fb0c1bbf6 56 case 2:
nikitateggi 4:6bd81bb1790d 57 state1=touch_main_1(); // determining the touch for SYSTEM CONFIGURATION screen
nikitateggi 0:c47fb0c1bbf6 58 state=0;
nikitateggi 3:9a06c2bed650 59 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 60 break;
nikitateggi 0:c47fb0c1bbf6 61
nikitateggi 0:c47fb0c1bbf6 62 case 3:
nikitateggi 4:6bd81bb1790d 63 state1=touch_main_2(); //// determining the touch for TEST screen
nikitateggi 4:6bd81bb1790d 64
nikitateggi 0:c47fb0c1bbf6 65 state=0;
nikitateggi 1:8316c23ec6b9 66 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 67 break;
nikitateggi 0:c47fb0c1bbf6 68
nikitateggi 0:c47fb0c1bbf6 69 case 4:
nikitateggi 4:6bd81bb1790d 70 state1=touch_glc(); // determining the touch for GLC screen
nikitateggi 1:8316c23ec6b9 71 state=0;
nikitateggi 1:8316c23ec6b9 72 nstate1=state1;
nikitateggi 1:8316c23ec6b9 73 break;
nikitateggi 1:8316c23ec6b9 74
nikitateggi 1:8316c23ec6b9 75 case 5:
nikitateggi 4:6bd81bb1790d 76 state1=touch_ecg(); // determining the touch for ECG screen
nikitateggi 1:8316c23ec6b9 77 state=0;
nikitateggi 3:9a06c2bed650 78 nstate1=state1;
nikitateggi 3:9a06c2bed650 79 break;
nikitateggi 4:6bd81bb1790d 80 case 6:
nikitateggi 4:6bd81bb1790d 81 state1=touch_ret(); // determining the touch for returning back to the main screen
nikitateggi 0:c47fb0c1bbf6 82 state=0;
nikitateggi 3:9a06c2bed650 83 nstate1=state1;
nikitateggi 1:8316c23ec6b9 84 break;
nikitateggi 1:8316c23ec6b9 85
nikitateggi 4:6bd81bb1790d 86 case 7:
nikitateggi 4:6bd81bb1790d 87 state1=touch_again(); // determining the touch when readings are taken more than once screen
nikitateggi 1:8316c23ec6b9 88 state=0;
nikitateggi 1:8316c23ec6b9 89 nstate1=state1;
nikitateggi 1:8316c23ec6b9 90 break;
nikitateggi 0:c47fb0c1bbf6 91
nikitateggi 3:9a06c2bed650 92 case 8:
nikitateggi 4:6bd81bb1790d 93 state1=touch_bp(); // determining the touch for BP screen
nikitateggi 3:9a06c2bed650 94 state=0;
nikitateggi 3:9a06c2bed650 95 nstate1=state1;
nikitateggi 3:9a06c2bed650 96 break;
nikitateggi 3:9a06c2bed650 97
nikitateggi 3:9a06c2bed650 98
nikitateggi 3:9a06c2bed650 99
nikitateggi 1:8316c23ec6b9 100 case 10 : DisableTouch();
nikitateggi 1:8316c23ec6b9 101 wait_ms(300);
nikitateggi 1:8316c23ec6b9 102 EnableTouch();
nikitateggi 3:9a06c2bed650 103 state=nstate;
nikitateggi 3:9a06c2bed650 104 break;
nikitateggi 1:8316c23ec6b9 105
nikitateggi 4:6bd81bb1790d 106 default : DisableTouch();
nikitateggi 1:8316c23ec6b9 107 wait_ms(300);
nikitateggi 1:8316c23ec6b9 108 EnableTouch();
nikitateggi 3:9a06c2bed650 109 state=nstate;
nikitateggi 3:9a06c2bed650 110 break;
nikitateggi 1:8316c23ec6b9 111
nikitateggi 0:c47fb0c1bbf6 112 }
nikitateggi 0:c47fb0c1bbf6 113
nikitateggi 0:c47fb0c1bbf6 114
nikitateggi 0:c47fb0c1bbf6 115
nikitateggi 0:c47fb0c1bbf6 116
nikitateggi 0:c47fb0c1bbf6 117
nikitateggi 4:6bd81bb1790d 118 switch(state1) // state for display screens
nikitateggi 0:c47fb0c1bbf6 119 {
nikitateggi 4:6bd81bb1790d 120
nikitateggi 1:8316c23ec6b9 121
nikitateggi 3:9a06c2bed650 122 case 1: DisableTouch();
nikitateggi 4:6bd81bb1790d 123 screen_main(); // main screen
nikitateggi 1:8316c23ec6b9 124 state1=0;
nikitateggi 1:8316c23ec6b9 125 state=1;
nikitateggi 1:8316c23ec6b9 126 nstate=state;
nikitateggi 1:8316c23ec6b9 127 flag=0;
nikitateggi 4:6bd81bb1790d 128 ecg_flag=0; // ecg, glc flag to determine whether the readings are taken more than once
nikitateggi 1:8316c23ec6b9 129 glc_flag=0;
nikitateggi 3:9a06c2bed650 130 EnableTouch();
nikitateggi 1:8316c23ec6b9 131 break;
nikitateggi 1:8316c23ec6b9 132
nikitateggi 3:9a06c2bed650 133 case 2: DisableTouch();
nikitateggi 4:6bd81bb1790d 134 screen_main_1(); // System configration screen
nikitateggi 0:c47fb0c1bbf6 135 state1=0;
nikitateggi 0:c47fb0c1bbf6 136 state=2;
nikitateggi 1:8316c23ec6b9 137 nstate=state;
nikitateggi 3:9a06c2bed650 138 EnableTouch();
nikitateggi 0:c47fb0c1bbf6 139 break;
nikitateggi 0:c47fb0c1bbf6 140
nikitateggi 3:9a06c2bed650 141 case 3: DisableTouch();
nikitateggi 1:8316c23ec6b9 142 if (flag==0)
nikitateggi 1:8316c23ec6b9 143 {
nikitateggi 4:6bd81bb1790d 144 //pid=pid+1;
nikitateggi 4:6bd81bb1790d 145 pid=eprom_read(1); // reading the patient id from eeprom
nikitateggi 4:6bd81bb1790d 146 pid=pid+1;
nikitateggi 4:6bd81bb1790d 147 eprom_write(1,pid); // writing the patient id to eeprom
nikitateggi 1:8316c23ec6b9 148 screen_main_2(pid);
nikitateggi 4:6bd81bb1790d 149 sd_open_GLCfilee(pid); // only opening the glc,bp and ecg file
nikitateggi 1:8316c23ec6b9 150 sd_close();
nikitateggi 2:3b7b71bfc941 151 sd_open_ECGfilee(pid);
nikitateggi 1:8316c23ec6b9 152 sd_close();
nikitateggi 4:6bd81bb1790d 153 sd_open_BPfilee(pid);
nikitateggi 1:8316c23ec6b9 154 sd_close();
nikitateggi 1:8316c23ec6b9 155 flag=1;
nikitateggi 1:8316c23ec6b9 156 }
nikitateggi 1:8316c23ec6b9 157 else
nikitateggi 1:8316c23ec6b9 158 {
nikitateggi 4:6bd81bb1790d 159 screen_main_2(pid); // TEST screen
nikitateggi 1:8316c23ec6b9 160 }
nikitateggi 1:8316c23ec6b9 161
nikitateggi 1:8316c23ec6b9 162 state1=0;
nikitateggi 1:8316c23ec6b9 163 state=3;
nikitateggi 1:8316c23ec6b9 164 nstate=state;
nikitateggi 3:9a06c2bed650 165 EnableTouch();
nikitateggi 1:8316c23ec6b9 166 break;
nikitateggi 0:c47fb0c1bbf6 167
nikitateggi 3:9a06c2bed650 168 case 4: DisableTouch();
nikitateggi 4:6bd81bb1790d 169 if (glc_flag==1) // glc_flag=1 when already the reading has been taken
nikitateggi 1:8316c23ec6b9 170 {
nikitateggi 4:6bd81bb1790d 171 screen_again();
nikitateggi 1:8316c23ec6b9 172 state1=0;
nikitateggi 1:8316c23ec6b9 173 state=7;
nikitateggi 1:8316c23ec6b9 174 nstate=state;
nikitateggi 1:8316c23ec6b9 175 }
nikitateggi 1:8316c23ec6b9 176 else
nikitateggi 4:6bd81bb1790d 177 { screen_glc(); // glc screen
nikitateggi 0:c47fb0c1bbf6 178 state1=0;
nikitateggi 0:c47fb0c1bbf6 179 state=4;
nikitateggi 1:8316c23ec6b9 180 nstate=state;
nikitateggi 1:8316c23ec6b9 181 }
nikitateggi 3:9a06c2bed650 182 EnableTouch();
nikitateggi 3:9a06c2bed650 183
nikitateggi 0:c47fb0c1bbf6 184 break;
nikitateggi 1:8316c23ec6b9 185
nikitateggi 1:8316c23ec6b9 186
nikitateggi 3:9a06c2bed650 187 case 5: DisableTouch();
nikitateggi 1:8316c23ec6b9 188 if (ecg_flag==1)
nikitateggi 1:8316c23ec6b9 189 {
nikitateggi 1:8316c23ec6b9 190 screen_again();
nikitateggi 1:8316c23ec6b9 191 state1=0;
nikitateggi 1:8316c23ec6b9 192 state=7;
nikitateggi 1:8316c23ec6b9 193 nstate=state;
nikitateggi 1:8316c23ec6b9 194 }
nikitateggi 1:8316c23ec6b9 195
nikitateggi 1:8316c23ec6b9 196 else
nikitateggi 1:8316c23ec6b9 197 {
nikitateggi 4:6bd81bb1790d 198 screen_ecg(); //ecg main screen
nikitateggi 1:8316c23ec6b9 199 state1=0;
nikitateggi 1:8316c23ec6b9 200 state=5;
nikitateggi 1:8316c23ec6b9 201 nstate=state;
nikitateggi 1:8316c23ec6b9 202 }
nikitateggi 3:9a06c2bed650 203 EnableTouch();
nikitateggi 1:8316c23ec6b9 204 break;
nikitateggi 1:8316c23ec6b9 205
nikitateggi 3:9a06c2bed650 206 case 6: DisableTouch();
nikitateggi 4:6bd81bb1790d 207 screen_bp(); // bp main screen
nikitateggi 3:9a06c2bed650 208 EnableTouch();
nikitateggi 3:9a06c2bed650 209 state1=0;
nikitateggi 3:9a06c2bed650 210 state=8;
nikitateggi 3:9a06c2bed650 211 break;
nikitateggi 3:9a06c2bed650 212
nikitateggi 3:9a06c2bed650 213
nikitateggi 3:9a06c2bed650 214
nikitateggi 3:9a06c2bed650 215
nikitateggi 3:9a06c2bed650 216
nikitateggi 4:6bd81bb1790d 217 case 7: DisableTouch();
nikitateggi 4:6bd81bb1790d 218 glc(pid); // glc measurement
nikitateggi 1:8316c23ec6b9 219 glc_flag=1;
nikitateggi 1:8316c23ec6b9 220 wait(5);
nikitateggi 4:6bd81bb1790d 221 state1=0;
nikitateggi 4:6bd81bb1790d 222 screen_glc_2();
nikitateggi 4:6bd81bb1790d 223 state=6;;
nikitateggi 1:8316c23ec6b9 224 // gc.printf("%d", state);
nikitateggi 3:9a06c2bed650 225 EnableTouch();
nikitateggi 1:8316c23ec6b9 226 break;
nikitateggi 1:8316c23ec6b9 227
nikitateggi 3:9a06c2bed650 228 case 8: DisableTouch();
nikitateggi 4:6bd81bb1790d 229 ecg_countdown(); // countdown before ecg capture
nikitateggi 4:6bd81bb1790d 230 ecg(pid); // capturing ecg
nikitateggi 1:8316c23ec6b9 231 state1=0;
nikitateggi 1:8316c23ec6b9 232 screen_ecg_2();
nikitateggi 1:8316c23ec6b9 233 state=6;
nikitateggi 1:8316c23ec6b9 234 nstate=state;
nikitateggi 1:8316c23ec6b9 235 ecg_flag=1;
nikitateggi 4:6bd81bb1790d 236 // ble.printf("ecg");
nikitateggi 4:6bd81bb1790d 237 EnableTouch();
nikitateggi 1:8316c23ec6b9 238 break;
nikitateggi 1:8316c23ec6b9 239
nikitateggi 1:8316c23ec6b9 240
nikitateggi 4:6bd81bb1790d 241 /*case 9:
nikitateggi 3:9a06c2bed650 242 DisableTouch();
nikitateggi 4:6bd81bb1790d 243 screen_glc_2();
nikitateggi 4:6bd81bb1790d 244 state1=0;
nikitateggi 1:8316c23ec6b9 245 state=6;
nikitateggi 1:8316c23ec6b9 246 nstate=state;
nikitateggi 3:9a06c2bed650 247 EnableTouch();
nikitateggi 4:6bd81bb1790d 248 break;*/
nikitateggi 3:9a06c2bed650 249
nikitateggi 3:9a06c2bed650 250 case 11:
nikitateggi 3:9a06c2bed650 251 DisableTouch();
nikitateggi 4:6bd81bb1790d 252 screen_bp2(); // bp main screen
nikitateggi 4:6bd81bb1790d 253 bp(); // measuring bp
nikitateggi 3:9a06c2bed650 254 state1=0;
nikitateggi 3:9a06c2bed650 255 // wait(1);
nikitateggi 3:9a06c2bed650 256 state=6;
nikitateggi 3:9a06c2bed650 257 nstate=state;
nikitateggi 3:9a06c2bed650 258 EnableTouch();
nikitateggi 3:9a06c2bed650 259 break;
nikitateggi 3:9a06c2bed650 260
nikitateggi 3:9a06c2bed650 261
nikitateggi 3:9a06c2bed650 262
nikitateggi 1:8316c23ec6b9 263 default :
nikitateggi 3:9a06c2bed650 264
nikitateggi 1:8316c23ec6b9 265 state1=nstate1;
nikitateggi 1:8316c23ec6b9 266 break;
nikitateggi 1:8316c23ec6b9 267
nikitateggi 0:c47fb0c1bbf6 268
nikitateggi 0:c47fb0c1bbf6 269 }
nikitateggi 0:c47fb0c1bbf6 270
nikitateggi 0:c47fb0c1bbf6 271
nikitateggi 0:c47fb0c1bbf6 272
nikitateggi 0:c47fb0c1bbf6 273
nikitateggi 0:c47fb0c1bbf6 274
nikitateggi 0:c47fb0c1bbf6 275 }
nikitateggi 0:c47fb0c1bbf6 276
nikitateggi 0:c47fb0c1bbf6 277
nikitateggi 0:c47fb0c1bbf6 278 }
nikitateggi 0:c47fb0c1bbf6 279
nikitateggi 0:c47fb0c1bbf6 280
nikitateggi 0:c47fb0c1bbf6 281
nikitateggi 0:c47fb0c1bbf6 282
nikitateggi 0:c47fb0c1bbf6 283
nikitateggi 0:c47fb0c1bbf6 284
nikitateggi 1:8316c23ec6b9 285