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:
nidhinvarghese
Date:
Thu Jun 01 09:24:45 2017 +0000
Revision:
14:f5c62d30c6fc
Parent:
13:5d3b478ea9c7
Child:
19:1650bbc923cc
HR  code is running with Structure ; COMPILATION success; Results not accurate

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
nikitateggi 7:11f926351d8f 2 //#include "ili9325.h"
nikitateggi 7:11f926351d8f 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;
suhasini 13:5d3b478ea9c7 32 float heart_rate=0;
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:
suhasini 5:a3ea7c82b7e1 87 state1=touch_again_ecg(); // 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
suhasini 5:a3ea7c82b7e1 98 case 9: state1=touch_again_glc();
suhasini 5:a3ea7c82b7e1 99 state=0;
suhasini 5:a3ea7c82b7e1 100 nstate1=state1;
suhasini 5:a3ea7c82b7e1 101 break;
nikitateggi 3:9a06c2bed650 102
nikitateggi 1:8316c23ec6b9 103 case 10 : DisableTouch();
nikitateggi 1:8316c23ec6b9 104 wait_ms(300);
nikitateggi 1:8316c23ec6b9 105 EnableTouch();
nikitateggi 3:9a06c2bed650 106 state=nstate;
nikitateggi 3:9a06c2bed650 107 break;
suhasini 5:a3ea7c82b7e1 108
suhasini 5:a3ea7c82b7e1 109
suhasini 5:a3ea7c82b7e1 110 case 11: state1=touch_again_bp();
suhasini 5:a3ea7c82b7e1 111 state=0;
suhasini 5:a3ea7c82b7e1 112 nstate1=state1;
suhasini 5:a3ea7c82b7e1 113 break;
suhasini 5:a3ea7c82b7e1 114
suhasini 5:a3ea7c82b7e1 115
nikitateggi 4:6bd81bb1790d 116 default : DisableTouch();
nikitateggi 1:8316c23ec6b9 117 wait_ms(300);
nikitateggi 1:8316c23ec6b9 118 EnableTouch();
nikitateggi 3:9a06c2bed650 119 state=nstate;
nikitateggi 3:9a06c2bed650 120 break;
nikitateggi 1:8316c23ec6b9 121
nikitateggi 0:c47fb0c1bbf6 122 }
nikitateggi 0:c47fb0c1bbf6 123
nikitateggi 0:c47fb0c1bbf6 124
nikitateggi 0:c47fb0c1bbf6 125
nikitateggi 0:c47fb0c1bbf6 126
nikitateggi 0:c47fb0c1bbf6 127
nikitateggi 4:6bd81bb1790d 128 switch(state1) // state for display screens
nikitateggi 0:c47fb0c1bbf6 129 {
nikitateggi 4:6bd81bb1790d 130
nikitateggi 1:8316c23ec6b9 131
nikitateggi 3:9a06c2bed650 132 case 1: DisableTouch();
nikitateggi 4:6bd81bb1790d 133 screen_main(); // main screen
nikitateggi 1:8316c23ec6b9 134 state1=0;
nikitateggi 1:8316c23ec6b9 135 state=1;
nikitateggi 1:8316c23ec6b9 136 nstate=state;
nikitateggi 1:8316c23ec6b9 137 flag=0;
nikitateggi 4:6bd81bb1790d 138 ecg_flag=0; // ecg, glc flag to determine whether the readings are taken more than once
nikitateggi 1:8316c23ec6b9 139 glc_flag=0;
nikitateggi 3:9a06c2bed650 140 EnableTouch();
nikitateggi 1:8316c23ec6b9 141 break;
nikitateggi 1:8316c23ec6b9 142
nikitateggi 3:9a06c2bed650 143 case 2: DisableTouch();
nikitateggi 4:6bd81bb1790d 144 screen_main_1(); // System configration screen
nikitateggi 0:c47fb0c1bbf6 145 state1=0;
nikitateggi 0:c47fb0c1bbf6 146 state=2;
nikitateggi 1:8316c23ec6b9 147 nstate=state;
nikitateggi 3:9a06c2bed650 148 EnableTouch();
nikitateggi 0:c47fb0c1bbf6 149 break;
nikitateggi 0:c47fb0c1bbf6 150
nikitateggi 3:9a06c2bed650 151 case 3: DisableTouch();
nikitateggi 1:8316c23ec6b9 152 if (flag==0)
nikitateggi 1:8316c23ec6b9 153 {
nikitateggi 4:6bd81bb1790d 154 //pid=pid+1;
nikitateggi 4:6bd81bb1790d 155 pid=eprom_read(1); // reading the patient id from eeprom
nikitateggi 4:6bd81bb1790d 156 pid=pid+1;
nikitateggi 4:6bd81bb1790d 157 eprom_write(1,pid); // writing the patient id to eeprom
nikitateggi 1:8316c23ec6b9 158 screen_main_2(pid);
nidhinvarghese 14:f5c62d30c6fc 159
nidhinvarghese 14:f5c62d30c6fc 160 sd_open_mainfile(pid); //ADDED on 1/6/2017 - NIDHIN
nidhinvarghese 14:f5c62d30c6fc 161 sd_close();
nidhinvarghese 14:f5c62d30c6fc 162
nidhinvarghese 14:f5c62d30c6fc 163
nidhinvarghese 14:f5c62d30c6fc 164 /*sd_open_GLCfilee(pid); // only opening the glc,bp and ecg file // COMMENTED Nidhin 1/6/17
nikitateggi 1:8316c23ec6b9 165 sd_close();
nikitateggi 2:3b7b71bfc941 166 sd_open_ECGfilee(pid);
nikitateggi 1:8316c23ec6b9 167 sd_close();
nikitateggi 4:6bd81bb1790d 168 sd_open_BPfilee(pid);
nidhinvarghese 14:f5c62d30c6fc 169 sd_close();*/
nikitateggi 1:8316c23ec6b9 170 flag=1;
nikitateggi 1:8316c23ec6b9 171 }
nikitateggi 1:8316c23ec6b9 172 else
nikitateggi 1:8316c23ec6b9 173 {
nikitateggi 4:6bd81bb1790d 174 screen_main_2(pid); // TEST screen
nikitateggi 1:8316c23ec6b9 175 }
nikitateggi 1:8316c23ec6b9 176
nikitateggi 1:8316c23ec6b9 177 state1=0;
nikitateggi 1:8316c23ec6b9 178 state=3;
nikitateggi 1:8316c23ec6b9 179 nstate=state;
nikitateggi 3:9a06c2bed650 180 EnableTouch();
nikitateggi 1:8316c23ec6b9 181 break;
nikitateggi 0:c47fb0c1bbf6 182
nikitateggi 3:9a06c2bed650 183 case 4: DisableTouch();
nikitateggi 4:6bd81bb1790d 184 if (glc_flag==1) // glc_flag=1 when already the reading has been taken
nikitateggi 1:8316c23ec6b9 185 {
nikitateggi 4:6bd81bb1790d 186 screen_again();
nikitateggi 1:8316c23ec6b9 187 state1=0;
suhasini 5:a3ea7c82b7e1 188 state=9;
nikitateggi 1:8316c23ec6b9 189 nstate=state;
nikitateggi 1:8316c23ec6b9 190 }
nikitateggi 1:8316c23ec6b9 191 else
nikitateggi 4:6bd81bb1790d 192 { screen_glc(); // glc screen
nikitateggi 0:c47fb0c1bbf6 193 state1=0;
nikitateggi 0:c47fb0c1bbf6 194 state=4;
nikitateggi 1:8316c23ec6b9 195 nstate=state;
nikitateggi 1:8316c23ec6b9 196 }
nikitateggi 3:9a06c2bed650 197 EnableTouch();
nikitateggi 3:9a06c2bed650 198
nikitateggi 0:c47fb0c1bbf6 199 break;
nikitateggi 1:8316c23ec6b9 200
nikitateggi 1:8316c23ec6b9 201
nikitateggi 3:9a06c2bed650 202 case 5: DisableTouch();
nikitateggi 1:8316c23ec6b9 203 if (ecg_flag==1)
nikitateggi 1:8316c23ec6b9 204 {
nikitateggi 1:8316c23ec6b9 205 screen_again();
nikitateggi 1:8316c23ec6b9 206 state1=0;
nikitateggi 1:8316c23ec6b9 207 state=7;
nikitateggi 1:8316c23ec6b9 208 nstate=state;
nikitateggi 1:8316c23ec6b9 209 }
nikitateggi 1:8316c23ec6b9 210
nikitateggi 1:8316c23ec6b9 211 else
nikitateggi 1:8316c23ec6b9 212 {
nikitateggi 4:6bd81bb1790d 213 screen_ecg(); //ecg main screen
nikitateggi 1:8316c23ec6b9 214 state1=0;
nikitateggi 1:8316c23ec6b9 215 state=5;
nikitateggi 1:8316c23ec6b9 216 nstate=state;
nikitateggi 1:8316c23ec6b9 217 }
nikitateggi 3:9a06c2bed650 218 EnableTouch();
nikitateggi 1:8316c23ec6b9 219 break;
nikitateggi 1:8316c23ec6b9 220
nikitateggi 3:9a06c2bed650 221 case 6: DisableTouch();
nikitateggi 4:6bd81bb1790d 222 screen_bp(); // bp main screen
suhasini 6:5e33a0f01476 223 //EnableTouch();
nikitateggi 3:9a06c2bed650 224 state1=0;
nikitateggi 3:9a06c2bed650 225 state=8;
suhasini 6:5e33a0f01476 226 nstate=state; ///////
suhasini 6:5e33a0f01476 227 EnableTouch(); ///////
nikitateggi 3:9a06c2bed650 228 break;
nikitateggi 3:9a06c2bed650 229
nikitateggi 3:9a06c2bed650 230
nikitateggi 3:9a06c2bed650 231
nikitateggi 3:9a06c2bed650 232
nikitateggi 3:9a06c2bed650 233
nikitateggi 4:6bd81bb1790d 234 case 7: DisableTouch();
nikitateggi 4:6bd81bb1790d 235 glc(pid); // glc measurement
nikitateggi 1:8316c23ec6b9 236 glc_flag=1;
nikitateggi 1:8316c23ec6b9 237 wait(5);
nikitateggi 4:6bd81bb1790d 238 state1=0;
nikitateggi 4:6bd81bb1790d 239 screen_glc_2();
nikitateggi 4:6bd81bb1790d 240 state=6;;
nikitateggi 1:8316c23ec6b9 241 // gc.printf("%d", state);
suhasini 6:5e33a0f01476 242 nstate=state; //////////////
nikitateggi 3:9a06c2bed650 243 EnableTouch();
nikitateggi 1:8316c23ec6b9 244 break;
nikitateggi 1:8316c23ec6b9 245
nikitateggi 3:9a06c2bed650 246 case 8: DisableTouch();
nikitateggi 4:6bd81bb1790d 247 ecg_countdown(); // countdown before ecg capture
suhasini 13:5d3b478ea9c7 248 heart_rate=ecg(pid); // capturing ecg
nikitateggi 1:8316c23ec6b9 249 state1=0;
suhasini 13:5d3b478ea9c7 250 screen_ecg_2(heart_rate);
nikitateggi 1:8316c23ec6b9 251 state=6;
nikitateggi 1:8316c23ec6b9 252 nstate=state;
nikitateggi 1:8316c23ec6b9 253 ecg_flag=1;
nikitateggi 4:6bd81bb1790d 254 // ble.printf("ecg");
nikitateggi 4:6bd81bb1790d 255 EnableTouch();
nikitateggi 1:8316c23ec6b9 256 break;
nikitateggi 1:8316c23ec6b9 257
nikitateggi 1:8316c23ec6b9 258
nikitateggi 4:6bd81bb1790d 259 /*case 9:
nikitateggi 3:9a06c2bed650 260 DisableTouch();
nikitateggi 4:6bd81bb1790d 261 screen_glc_2();
nikitateggi 4:6bd81bb1790d 262 state1=0;
nikitateggi 1:8316c23ec6b9 263 state=6;
nikitateggi 1:8316c23ec6b9 264 nstate=state;
nikitateggi 3:9a06c2bed650 265 EnableTouch();
nikitateggi 4:6bd81bb1790d 266 break;*/
nikitateggi 3:9a06c2bed650 267
suhasini 5:a3ea7c82b7e1 268 case 9:
nikitateggi 3:9a06c2bed650 269 DisableTouch();
nikitateggi 4:6bd81bb1790d 270 screen_bp2(); // bp main screen
suhasini 6:5e33a0f01476 271 bp_countdown(); // countdown for bp
nidhinvarghese 8:adf2ba7e6412 272 bp(pid); // measuring bp earlier bp() changed to bp(pid) 28/4/2017
nikitateggi 3:9a06c2bed650 273 state1=0;
nikitateggi 3:9a06c2bed650 274 // wait(1);
nikitateggi 3:9a06c2bed650 275 state=6;
nikitateggi 3:9a06c2bed650 276 nstate=state;
nikitateggi 3:9a06c2bed650 277 EnableTouch();
nikitateggi 3:9a06c2bed650 278 break;
nikitateggi 3:9a06c2bed650 279
nikitateggi 3:9a06c2bed650 280
nikitateggi 3:9a06c2bed650 281
nikitateggi 1:8316c23ec6b9 282 default :
nikitateggi 3:9a06c2bed650 283
nikitateggi 1:8316c23ec6b9 284 state1=nstate1;
nikitateggi 1:8316c23ec6b9 285 break;
nikitateggi 1:8316c23ec6b9 286
nikitateggi 0:c47fb0c1bbf6 287
nikitateggi 0:c47fb0c1bbf6 288 }
nikitateggi 0:c47fb0c1bbf6 289
nikitateggi 0:c47fb0c1bbf6 290
nikitateggi 0:c47fb0c1bbf6 291
nikitateggi 0:c47fb0c1bbf6 292
nikitateggi 0:c47fb0c1bbf6 293
nikitateggi 0:c47fb0c1bbf6 294 }
nikitateggi 0:c47fb0c1bbf6 295
nikitateggi 0:c47fb0c1bbf6 296
nikitateggi 0:c47fb0c1bbf6 297 }
nikitateggi 0:c47fb0c1bbf6 298
nikitateggi 0:c47fb0c1bbf6 299
nikitateggi 0:c47fb0c1bbf6 300
nikitateggi 0:c47fb0c1bbf6 301
nikitateggi 0:c47fb0c1bbf6 302
nikitateggi 0:c47fb0c1bbf6 303
nikitateggi 1:8316c23ec6b9 304