created separate function for hex to char

Dependencies:   SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217

Fork of SS_SensePOC2P0_11Dec2017_USERPID by rashmi v

Committer:
nikitateggi
Date:
Tue Sep 12 10:08:04 2017 +0000
Revision:
45:067673dae242
Parent:
44:05dbea558c9a
Child:
46:162ed3f051b2
added bluetooth ack timeout, batterymonitoring and pid tracking in sd card

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
nikitateggi 0:c47fb0c1bbf6 2 #include "display_modules.h"
nikitateggi 0:c47fb0c1bbf6 3 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 4 #include "ecg_dec.h"
nikitateggi 1:8316c23ec6b9 5 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 6 #include "glc.h"
nikitateggi 3:9a06c2bed650 7 #include "bp.h"
nikitateggi 1:8316c23ec6b9 8 #include "sdcard.h"
nikitateggi 4:6bd81bb1790d 9 #include "eeprom_pgm.h"
nikitateggi 19:1650bbc923cc 10 #include "struct.h"
nikitateggi 22:ffa88619551d 11 #include "battery.h"
rashmivenkataramaiah 41:1141a75eacc4 12 #include "main.h"
nikitateggi 45:067673dae242 13
nikitateggi 45:067673dae242 14 #define TIMER_RXACK_BTCONNECTION 10000
nikitateggi 45:067673dae242 15 #define BATTERY_TIMER_VALUE 600000
nikitateggi 45:067673dae242 16 #define SERIAL_BAUD_RATE 115200
nikitateggi 45:067673dae242 17 #define BATTERY_SCREEN_NO_CHARGE_CONDITION 3
nikitateggi 24:d992ee8369f4 18
nikitateggi 0:c47fb0c1bbf6 19 Serial gc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 20 DigitalIn q1(PTB11);
nikitateggi 29:7edc76b15e3d 21 DigitalIn q(PTC5);
nikitateggi 29:7edc76b15e3d 22 DigitalIn q3(PTC12);
rashmivenkataramaiah 42:c81673b04b6a 23 DigitalIn BT(PTA5);
nikitateggi 44:05dbea558c9a 24 Serial blue1(PTC4,PTC3);
nikitateggi 44:05dbea558c9a 25 uint32_t get_timer_bluetooth();
nikitateggi 45:067673dae242 26 static void battery_status_monitoring(); //bluetooth status pin
nikitateggi 45:067673dae242 27 uint8_t touch(uint8_t state); // touch state
nikitateggi 45:067673dae242 28 uint8_t display(uint8_t state1); // display state
nikitateggi 45:067673dae242 29
rashmivenkataramaiah 42:c81673b04b6a 30 static uint8_t nstate=0;
rashmivenkataramaiah 42:c81673b04b6a 31 static uint8_t nstate1=0;
rashmivenkataramaiah 43:85a7f399cb9d 32 static uint32_t pid = 0; // patient ID
rashmivenkataramaiah 43:85a7f399cb9d 33 static bool file_created_status = false; //initialise file created to 0
rashmivenkataramaiah 43:85a7f399cb9d 34 static uint32_t filepid_btpid[2] = {};
nikitateggi 45:067673dae242 35 Timer timer_bt; // timer for bluetooth
nikitateggi 45:067673dae242 36 Timer timer_battery; // timer for battery
nikitateggi 44:05dbea558c9a 37
nikitateggi 44:05dbea558c9a 38
nikitateggi 0:c47fb0c1bbf6 39
rashmivenkataramaiah 41:1141a75eacc4 40 int main()
rashmivenkataramaiah 41:1141a75eacc4 41 {
rashmivenkataramaiah 41:1141a75eacc4 42 static uint8_t main_state=1;
rashmivenkataramaiah 41:1141a75eacc4 43 static uint8_t state_display = 0;
rashmivenkataramaiah 41:1141a75eacc4 44 static uint8_t state_touch = 1;
rashmivenkataramaiah 41:1141a75eacc4 45 static uint8_t state_t = 1; // state to transmit to bluetooth
rashmivenkataramaiah 41:1141a75eacc4 46 static uint8_t state_r = 0; // state to receive from bluetooth
nikitateggi 45:067673dae242 47
avp2417 37:92fcbf22bf91 48
avp2417 37:92fcbf22bf91 49
rashmivenkataramaiah 41:1141a75eacc4 50 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 51 gc.baud(115200);
rashmivenkataramaiah 41:1141a75eacc4 52 init_screen(); //initialize lcd
rashmivenkataramaiah 42:c81673b04b6a 53 pid = get_filepid();
rashmivenkataramaiah 41:1141a75eacc4 54 screen_main(); // display of main screen
nikitateggi 45:067673dae242 55 battery_monitor(); // monitor battery at the start only
nikitateggi 45:067673dae242 56 battery_status_display(); // display of main screen
nikitateggi 45:067673dae242 57 timer_battery.start();
avp2417 37:92fcbf22bf91 58
nikitateggi 0:c47fb0c1bbf6 59 while(1)
nikitateggi 0:c47fb0c1bbf6 60 {
nikitateggi 45:067673dae242 61 battery_status_monitoring(); // to monitior battery status after every 10 min.
nikitateggi 45:067673dae242 62
nikitateggi 45:067673dae242 63 if (get_battery_status() == BATTERY_SCREEN_NO_CHARGE_CONDITION) // to check battery status and take action
nikitateggi 45:067673dae242 64 {
nikitateggi 45:067673dae242 65 DisableTouch();
nikitateggi 45:067673dae242 66 }
nikitateggi 45:067673dae242 67 else
nikitateggi 45:067673dae242 68 {
nikitateggi 45:067673dae242 69
nikitateggi 45:067673dae242 70 EnableTouch();
nikitateggi 45:067673dae242 71 switch(main_state) // main state machine
nikitateggi 45:067673dae242 72 {
nikitateggi 45:067673dae242 73 case 1:
nikitateggi 45:067673dae242 74 state_display = touch(state_touch); // touch state
nikitateggi 45:067673dae242 75 if(state_display == 12)
nikitateggi 45:067673dae242 76 {
nikitateggi 45:067673dae242 77 main_state = 3;
nikitateggi 45:067673dae242 78 }
nikitateggi 45:067673dae242 79 else
nikitateggi 45:067673dae242 80 {
nikitateggi 45:067673dae242 81 main_state = 2;
nikitateggi 45:067673dae242 82 }
nikitateggi 45:067673dae242 83 break;
avp2417 37:92fcbf22bf91 84
nikitateggi 45:067673dae242 85 case 2:
nikitateggi 45:067673dae242 86 state_touch = display(state_display); //display state
nikitateggi 45:067673dae242 87 main_state = 1;
nikitateggi 45:067673dae242 88 break;
nikitateggi 19:1650bbc923cc 89
nikitateggi 19:1650bbc923cc 90
nikitateggi 45:067673dae242 91 case 3:
nikitateggi 45:067673dae242 92 DisableTouch(); // bluetooth send
nikitateggi 45:067673dae242 93 timer_bt.start();
nikitateggi 45:067673dae242 94 if(get_timer_bluetooth()<TIMER_RXACK_BTCONNECTION) // bluetooth connection timer 15 sec
nikitateggi 45:067673dae242 95 {
nikitateggi 44:05dbea558c9a 96
nikitateggi 45:067673dae242 97 if(BT==1) // checking for bluetooth connection
nikitateggi 45:067673dae242 98 {
nikitateggi 44:05dbea558c9a 99
nikitateggi 45:067673dae242 100 timer_bt.stop(); // stop the timer once connected to app
nikitateggi 45:067673dae242 101 timer_bt.reset();
nikitateggi 44:05dbea558c9a 102 BT_connection() ; // displaying connection on bluetooth
nikitateggi 44:05dbea558c9a 103 state_r=bt_send(state_t);
nikitateggi 45:067673dae242 104 timer_bt.start();
nikitateggi 44:05dbea558c9a 105
nikitateggi 44:05dbea558c9a 106 if (state_r==0) // if the state received is zero, then there is no new file to send
nikitateggi 45:067673dae242 107 {
nikitateggi 45:067673dae242 108 timer_bt.stop(); // stop the timer once connected to app
nikitateggi 45:067673dae242 109 timer_bt.reset();
nikitateggi 45:067673dae242 110 BT_finished(); // screen to display communication finished
nikitateggi 45:067673dae242 111 screen_BT_return(); //screen to return back
nikitateggi 45:067673dae242 112 EnableTouch();
nikitateggi 45:067673dae242 113 main_state=1;
nikitateggi 45:067673dae242 114 state_touch=12;
nikitateggi 45:067673dae242 115 break;
nikitateggi 44:05dbea558c9a 116 }
nikitateggi 44:05dbea558c9a 117
nikitateggi 44:05dbea558c9a 118 else
nikitateggi 44:05dbea558c9a 119 {
nikitateggi 44:05dbea558c9a 120 main_state=4; // move to receving stste of bluetooth
nikitateggi 44:05dbea558c9a 121 }
nikitateggi 44:05dbea558c9a 122
nikitateggi 45:067673dae242 123 }
nikitateggi 44:05dbea558c9a 124
nikitateggi 45:067673dae242 125 else
nikitateggi 45:067673dae242 126 {
nikitateggi 45:067673dae242 127 BT_no_connection(); // display screen to show that there is no connection
nikitateggi 45:067673dae242 128 }
nikitateggi 45:067673dae242 129 }
nikitateggi 44:05dbea558c9a 130
nikitateggi 45:067673dae242 131 else
nikitateggi 45:067673dae242 132 {
nikitateggi 45:067673dae242 133 BT_no_connection(); // display screen to show that there is no connection
nikitateggi 45:067673dae242 134 gc.printf("stopped");
nikitateggi 45:067673dae242 135 screen_BT_return(); // button to return
nikitateggi 45:067673dae242 136 EnableTouch();
nikitateggi 45:067673dae242 137 main_state=1;
nikitateggi 45:067673dae242 138 state_touch=12;
nikitateggi 45:067673dae242 139 timer_bt.stop();
nikitateggi 45:067673dae242 140 timer_bt.reset();
nikitateggi 45:067673dae242 141 }
nikitateggi 45:067673dae242 142 break;
nikitateggi 19:1650bbc923cc 143
nikitateggi 45:067673dae242 144 case 4:
nikitateggi 45:067673dae242 145 DisableTouch();
nikitateggi 44:05dbea558c9a 146
nikitateggi 45:067673dae242 147 if(get_timer_bluetooth()<TIMER_RXACK_BTCONNECTION)
nikitateggi 45:067673dae242 148 {
nikitateggi 45:067673dae242 149 if (blue1.readable()) // if there is data to receive enter the loop
nikitateggi 45:067673dae242 150 {
nikitateggi 45:067673dae242 151 timer_bt.stop();
nikitateggi 45:067673dae242 152 timer_bt.reset();
nikitateggi 45:067673dae242 153 state_t=bt_receive(state_r);
nikitateggi 45:067673dae242 154 if(state_t ==0) // if state_t is zero, there is no other file to send
nikitateggi 45:067673dae242 155 {
nikitateggi 45:067673dae242 156
nikitateggi 45:067673dae242 157 BT_finished();
nikitateggi 45:067673dae242 158 screen_BT_return();
nikitateggi 45:067673dae242 159 EnableTouch();
nikitateggi 45:067673dae242 160 main_state=1;
nikitateggi 45:067673dae242 161 state_touch=12; // jumping to touch case 12
nikitateggi 45:067673dae242 162 break;
nikitateggi 45:067673dae242 163 }
nikitateggi 45:067673dae242 164 else // move to bluetooth transmit if the states are 1,2,3,4
nikitateggi 45:067673dae242 165 {
nikitateggi 44:05dbea558c9a 166 main_state=3;
nikitateggi 45:067673dae242 167 }
nikitateggi 45:067673dae242 168 }
nikitateggi 45:067673dae242 169 }
nikitateggi 44:05dbea558c9a 170
nikitateggi 45:067673dae242 171 else
nikitateggi 45:067673dae242 172 {
nikitateggi 45:067673dae242 173 DisableTouch();
nikitateggi 45:067673dae242 174 BT_no_connection(); // display screen to show that there is no connection
nikitateggi 45:067673dae242 175 gc.printf("stopped");
nikitateggi 45:067673dae242 176 screen_BT_return(); // button to return
nikitateggi 45:067673dae242 177 EnableTouch();
nikitateggi 45:067673dae242 178 main_state=1;
nikitateggi 45:067673dae242 179 state_touch=12;
nikitateggi 45:067673dae242 180 timer_bt.stop();
nikitateggi 45:067673dae242 181 timer_bt.reset();
nikitateggi 45:067673dae242 182 }
nikitateggi 45:067673dae242 183 break;
nikitateggi 45:067673dae242 184 }
nikitateggi 45:067673dae242 185 }
nikitateggi 45:067673dae242 186 }
nikitateggi 45:067673dae242 187
nikitateggi 22:ffa88619551d 188 }
nikitateggi 19:1650bbc923cc 189 uint8_t touch(uint8_t state)
nikitateggi 19:1650bbc923cc 190 {
nikitateggi 19:1650bbc923cc 191 static uint8_t state1=0;
rashmivenkataramaiah 41:1141a75eacc4 192 detect_touch(state); // determine the touch points
nikitateggi 1:8316c23ec6b9 193
rashmivenkataramaiah 41:1141a75eacc4 194 switch(state) // state for touch
nikitateggi 0:c47fb0c1bbf6 195 {
rashmivenkataramaiah 41:1141a75eacc4 196 case 1:
rashmivenkataramaiah 41:1141a75eacc4 197 state1=touch_main(); // determining the touch for main screen
nikitateggi 0:c47fb0c1bbf6 198 state=0;
nikitateggi 1:8316c23ec6b9 199 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 200 break;
nikitateggi 0:c47fb0c1bbf6 201
nikitateggi 0:c47fb0c1bbf6 202 case 2:
rashmivenkataramaiah 41:1141a75eacc4 203 state1=touch_main_1(); // determining the touch for SYSTEM CONFIGURATION screen
nikitateggi 0:c47fb0c1bbf6 204 state=0;
nikitateggi 3:9a06c2bed650 205 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 206 break;
nikitateggi 0:c47fb0c1bbf6 207
nikitateggi 0:c47fb0c1bbf6 208 case 3:
rashmivenkataramaiah 41:1141a75eacc4 209 state1=touch_main_2(); // determining the touch for TEST screen
nikitateggi 0:c47fb0c1bbf6 210 state=0;
nikitateggi 1:8316c23ec6b9 211 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 212 break;
nikitateggi 0:c47fb0c1bbf6 213
nikitateggi 0:c47fb0c1bbf6 214 case 4:
rashmivenkataramaiah 41:1141a75eacc4 215 state1=touch_glc(); // determining the touch for GLC screen
nikitateggi 1:8316c23ec6b9 216 state=0;
nikitateggi 1:8316c23ec6b9 217 nstate1=state1;
nikitateggi 1:8316c23ec6b9 218 break;
nikitateggi 1:8316c23ec6b9 219
nikitateggi 1:8316c23ec6b9 220 case 5:
rashmivenkataramaiah 41:1141a75eacc4 221 state1=touch_ecg(); // determining the touch for ECG screen
nikitateggi 1:8316c23ec6b9 222 state=0;
nikitateggi 3:9a06c2bed650 223 nstate1=state1;
nikitateggi 3:9a06c2bed650 224 break;
nikitateggi 4:6bd81bb1790d 225 case 6:
rashmivenkataramaiah 41:1141a75eacc4 226 state1=touch_ret(); // determining the touch for returning back to the main screen
nikitateggi 0:c47fb0c1bbf6 227 state=0;
nikitateggi 3:9a06c2bed650 228 nstate1=state1;
nikitateggi 1:8316c23ec6b9 229 break;
nikitateggi 1:8316c23ec6b9 230
nikitateggi 4:6bd81bb1790d 231 case 7:
rashmivenkataramaiah 41:1141a75eacc4 232 state1=touch_again_ecg(); // determining the touch when readings are taken more than once screen
nikitateggi 1:8316c23ec6b9 233 state=0;
nikitateggi 1:8316c23ec6b9 234 nstate1=state1;
nikitateggi 1:8316c23ec6b9 235 break;
nikitateggi 0:c47fb0c1bbf6 236
nikitateggi 3:9a06c2bed650 237 case 8:
rashmivenkataramaiah 41:1141a75eacc4 238 state1=touch_bp(); // determining the touch for BP screen
nikitateggi 3:9a06c2bed650 239 state=0;
nikitateggi 3:9a06c2bed650 240 nstate1=state1;
nikitateggi 3:9a06c2bed650 241 break;
nikitateggi 3:9a06c2bed650 242
rashmivenkataramaiah 41:1141a75eacc4 243 case 9:
rashmivenkataramaiah 41:1141a75eacc4 244 state1=touch_again_glc();
suhasini 5:a3ea7c82b7e1 245 state=0;
suhasini 5:a3ea7c82b7e1 246 nstate1=state1;
suhasini 5:a3ea7c82b7e1 247 break;
nikitateggi 3:9a06c2bed650 248
rashmivenkataramaiah 41:1141a75eacc4 249 case 10 :
rashmivenkataramaiah 41:1141a75eacc4 250 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 251 wait_ms(300);
rashmivenkataramaiah 41:1141a75eacc4 252 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 253 state=nstate;
rashmivenkataramaiah 41:1141a75eacc4 254 break;
suhasini 5:a3ea7c82b7e1 255
suhasini 5:a3ea7c82b7e1 256
rashmivenkataramaiah 41:1141a75eacc4 257 case 11:
rashmivenkataramaiah 41:1141a75eacc4 258 state1=touch_again_bp();
rashmivenkataramaiah 41:1141a75eacc4 259 state=0;
rashmivenkataramaiah 41:1141a75eacc4 260 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 261 break;
suhasini 5:a3ea7c82b7e1 262
rashmivenkataramaiah 41:1141a75eacc4 263 case 12:
rashmivenkataramaiah 41:1141a75eacc4 264 state1=BT_return();
rashmivenkataramaiah 41:1141a75eacc4 265 state=0;
rashmivenkataramaiah 41:1141a75eacc4 266 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 267 break;
suhasini 5:a3ea7c82b7e1 268
rashmivenkataramaiah 41:1141a75eacc4 269 default :
rashmivenkataramaiah 41:1141a75eacc4 270 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 271 wait_ms(300);
rashmivenkataramaiah 41:1141a75eacc4 272 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 273 state=nstate;
rashmivenkataramaiah 41:1141a75eacc4 274 break;
nikitateggi 1:8316c23ec6b9 275
nikitateggi 0:c47fb0c1bbf6 276 }
nikitateggi 0:c47fb0c1bbf6 277
rashmivenkataramaiah 41:1141a75eacc4 278 return state1;
rashmivenkataramaiah 41:1141a75eacc4 279 }
nikitateggi 0:c47fb0c1bbf6 280
nikitateggi 0:c47fb0c1bbf6 281
nikitateggi 19:1650bbc923cc 282 uint8_t display(uint8_t state1)
nikitateggi 19:1650bbc923cc 283 {
rashmivenkataramaiah 41:1141a75eacc4 284 static uint8_t state=0;
rashmivenkataramaiah 41:1141a75eacc4 285 static uint8_t ecg_flag=0; // ecg_flag to indicate the ecg test is already done for the same pid
rashmivenkataramaiah 41:1141a75eacc4 286 static uint8_t glc_flag=0; // glc_flag to indicate the glc test is already done for the same pid
rashmivenkataramaiah 41:1141a75eacc4 287 uint16_t heart_rate=0;
rashmivenkataramaiah 41:1141a75eacc4 288
rashmivenkataramaiah 41:1141a75eacc4 289
rashmivenkataramaiah 41:1141a75eacc4 290 switch(state1) // state for display screens
rashmivenkataramaiah 41:1141a75eacc4 291 {
nikitateggi 4:6bd81bb1790d 292
nikitateggi 1:8316c23ec6b9 293
rashmivenkataramaiah 41:1141a75eacc4 294 case 1:
rashmivenkataramaiah 41:1141a75eacc4 295 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 296 screen_main(); // main screen
nikitateggi 1:8316c23ec6b9 297 state1=0;
nikitateggi 1:8316c23ec6b9 298 state=1;
nikitateggi 1:8316c23ec6b9 299 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 300 ecg_flag=0; // ecg, glc flag to determine whether the readings are taken more than once
nikitateggi 1:8316c23ec6b9 301 glc_flag=0;
rashmivenkataramaiah 41:1141a75eacc4 302 clear_filecreated_status();
rashmivenkataramaiah 42:c81673b04b6a 303 pid = get_filepid();
nikitateggi 45:067673dae242 304 battery_status_display(); //Display battery status on LCD
nikitateggi 3:9a06c2bed650 305 EnableTouch();
nikitateggi 1:8316c23ec6b9 306 break;
nikitateggi 1:8316c23ec6b9 307
rashmivenkataramaiah 41:1141a75eacc4 308 case 2:
rashmivenkataramaiah 41:1141a75eacc4 309 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 310 screen_main_1(); // System configration screen
nikitateggi 0:c47fb0c1bbf6 311 state1=0;
nikitateggi 0:c47fb0c1bbf6 312 state=2;
nikitateggi 1:8316c23ec6b9 313 nstate=state;
nikitateggi 45:067673dae242 314 battery_status_display(); //Display battery status on LCD
nikitateggi 3:9a06c2bed650 315 EnableTouch();
nikitateggi 0:c47fb0c1bbf6 316 break;
nikitateggi 0:c47fb0c1bbf6 317
rashmivenkataramaiah 41:1141a75eacc4 318 case 3:
rashmivenkataramaiah 41:1141a75eacc4 319 DisableTouch();
rashmivenkataramaiah 42:c81673b04b6a 320 //sd_read(pid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 321 //pid=pid_btpid[0]; //copy pid to a variable
nikitateggi 19:1650bbc923cc 322 gc.printf("pidinit=%d",pid);
rashmivenkataramaiah 41:1141a75eacc4 323 screen_main_2(pid);
rashmivenkataramaiah 41:1141a75eacc4 324 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 325 state=3;
rashmivenkataramaiah 41:1141a75eacc4 326 nstate=state;
nikitateggi 45:067673dae242 327 battery_status_display();
rashmivenkataramaiah 41:1141a75eacc4 328 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 329 break;
nikitateggi 0:c47fb0c1bbf6 330
rashmivenkataramaiah 41:1141a75eacc4 331 case 4:
rashmivenkataramaiah 41:1141a75eacc4 332 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 333 if (glc_flag==1) // glc_flag=1 when already the reading has been taken
rashmivenkataramaiah 41:1141a75eacc4 334 {
rashmivenkataramaiah 41:1141a75eacc4 335 screen_again();
rashmivenkataramaiah 41:1141a75eacc4 336 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 337 state=9;
rashmivenkataramaiah 41:1141a75eacc4 338 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 339 }
rashmivenkataramaiah 41:1141a75eacc4 340 else
nikitateggi 19:1650bbc923cc 341 {
rashmivenkataramaiah 41:1141a75eacc4 342 screen_glc(); // glc screen
rashmivenkataramaiah 41:1141a75eacc4 343 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 344 state=4;
rashmivenkataramaiah 41:1141a75eacc4 345 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 346 }
nikitateggi 3:9a06c2bed650 347 EnableTouch();
nikitateggi 3:9a06c2bed650 348
nikitateggi 0:c47fb0c1bbf6 349 break;
nikitateggi 1:8316c23ec6b9 350
nikitateggi 1:8316c23ec6b9 351
rashmivenkataramaiah 41:1141a75eacc4 352 case 5:
rashmivenkataramaiah 41:1141a75eacc4 353 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 354 if (ecg_flag==1)
rashmivenkataramaiah 41:1141a75eacc4 355 {
rashmivenkataramaiah 41:1141a75eacc4 356 screen_again();
rashmivenkataramaiah 41:1141a75eacc4 357 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 358 state=7;
nikitateggi 1:8316c23ec6b9 359 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 360 }
rashmivenkataramaiah 41:1141a75eacc4 361
rashmivenkataramaiah 41:1141a75eacc4 362 else
rashmivenkataramaiah 41:1141a75eacc4 363 {
rashmivenkataramaiah 41:1141a75eacc4 364 screen_ecg(); //ecg main screen
rashmivenkataramaiah 41:1141a75eacc4 365 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 366 state=5;
nikitateggi 1:8316c23ec6b9 367 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 368 }
rashmivenkataramaiah 41:1141a75eacc4 369 EnableTouch();
nikitateggi 1:8316c23ec6b9 370 break;
nikitateggi 1:8316c23ec6b9 371
rashmivenkataramaiah 41:1141a75eacc4 372 case 6:
rashmivenkataramaiah 41:1141a75eacc4 373 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 374 screen_bp(); // bp main screen
nikitateggi 3:9a06c2bed650 375 state1=0;
nikitateggi 3:9a06c2bed650 376 state=8;
rashmivenkataramaiah 41:1141a75eacc4 377 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 378 EnableTouch();
nikitateggi 3:9a06c2bed650 379 break;
nikitateggi 3:9a06c2bed650 380
rashmivenkataramaiah 41:1141a75eacc4 381 case 7:
rashmivenkataramaiah 41:1141a75eacc4 382 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 383 glc(pid); // glc measurement
nikitateggi 1:8316c23ec6b9 384 glc_flag=1;
avp2417 35:43133f017ed4 385 wait(1);
nikitateggi 4:6bd81bb1790d 386 state1=0;
nikitateggi 4:6bd81bb1790d 387 screen_glc_2();
rashmivenkataramaiah 41:1141a75eacc4 388 state=6;
rashmivenkataramaiah 41:1141a75eacc4 389 eprom_write_8(30,0);
rashmivenkataramaiah 41:1141a75eacc4 390 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 391 EnableTouch();
nikitateggi 1:8316c23ec6b9 392 break;
nikitateggi 1:8316c23ec6b9 393
nikitateggi 3:9a06c2bed650 394 case 8: DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 395 ecg_countdown(); // countdown before ecg capture
rashmivenkataramaiah 41:1141a75eacc4 396 heart_rate=ecg(pid); // capturing ecg
nikitateggi 1:8316c23ec6b9 397 state1=0;
nikitateggi 20:7c64e6ecad76 398 if (heart_rate==0)
nikitateggi 20:7c64e6ecad76 399 {
avp2417 34:8f6b0dc124e8 400
nikitateggi 20:7c64e6ecad76 401 screen_ecg_lead();
nikitateggi 20:7c64e6ecad76 402 }
rashmivenkataramaiah 41:1141a75eacc4 403 else if(heart_rate==1) // if heart rate goes above or below range display error // 10/7/17 nikita
nikitateggi 31:0f67acfc6236 404 {
nikitateggi 31:0f67acfc6236 405 screen_ecg_error();
nikitateggi 31:0f67acfc6236 406
nikitateggi 31:0f67acfc6236 407 }
avp2417 34:8f6b0dc124e8 408 else
avp2417 34:8f6b0dc124e8 409 {
avp2417 34:8f6b0dc124e8 410
nikitateggi 20:7c64e6ecad76 411 screen_ecg_2(heart_rate);
nikitateggi 20:7c64e6ecad76 412 ecg_flag=1;
rashmivenkataramaiah 43:85a7f399cb9d 413 }
nikitateggi 1:8316c23ec6b9 414 state=6;
nikitateggi 24:d992ee8369f4 415 eprom_write_8(30,1);
nikitateggi 20:7c64e6ecad76 416 nstate=state;
nikitateggi 20:7c64e6ecad76 417 screen_ecg_bp();
nikitateggi 4:6bd81bb1790d 418 EnableTouch();
nikitateggi 1:8316c23ec6b9 419 break;
rashmivenkataramaiah 41:1141a75eacc4 420
nikitateggi 19:1650bbc923cc 421 case 9:
nikitateggi 3:9a06c2bed650 422 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 423 screen_bp2(); // bp main screen
rashmivenkataramaiah 41:1141a75eacc4 424 bp_countdown(); // countdown for bp
rashmivenkataramaiah 41:1141a75eacc4 425 bp(pid); // measuring bp earlier bp() changed to bp(pid) 28/4/2017
nikitateggi 3:9a06c2bed650 426 state1=0;
nikitateggi 3:9a06c2bed650 427 state=6;
nikitateggi 24:d992ee8369f4 428 eprom_write_8(30,2);
nikitateggi 3:9a06c2bed650 429 nstate=state;
nikitateggi 3:9a06c2bed650 430 EnableTouch();
nikitateggi 3:9a06c2bed650 431 break;
nikitateggi 31:0f67acfc6236 432
nikitateggi 31:0f67acfc6236 433
nikitateggi 31:0f67acfc6236 434 case 10 : DisableTouch();
nikitateggi 31:0f67acfc6236 435 wait_ms(300);
nikitateggi 31:0f67acfc6236 436 EnableTouch();
nikitateggi 31:0f67acfc6236 437 state=nstate;
nikitateggi 31:0f67acfc6236 438 break;
nikitateggi 31:0f67acfc6236 439
rashmivenkataramaiah 41:1141a75eacc4 440 case 11 :
rashmivenkataramaiah 41:1141a75eacc4 441 DisableTouch();
rashmivenkataramaiah 42:c81673b04b6a 442 //sd_read(pid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 443 //current_test_pid=pid_btpid[0];
rashmivenkataramaiah 42:c81673b04b6a 444 //bt_file_sent_pid=pid_btpid[1];
rashmivenkataramaiah 42:c81673b04b6a 445 //screen_patient_info(current_test_pid, bt_file_sent_pid);
rashmivenkataramaiah 42:c81673b04b6a 446 screen_patient_info(get_filepid(), get_btpid());
rashmivenkataramaiah 41:1141a75eacc4 447 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 448 state=12;
rashmivenkataramaiah 41:1141a75eacc4 449 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 450 break;
nikitateggi 31:0f67acfc6236 451
nikitateggi 31:0f67acfc6236 452
nikitateggi 1:8316c23ec6b9 453 default :
nikitateggi 3:9a06c2bed650 454
nikitateggi 1:8316c23ec6b9 455 state1=nstate1;
nikitateggi 1:8316c23ec6b9 456 break;
nikitateggi 1:8316c23ec6b9 457
nikitateggi 0:c47fb0c1bbf6 458
nikitateggi 0:c47fb0c1bbf6 459 }
nikitateggi 0:c47fb0c1bbf6 460
nikitateggi 0:c47fb0c1bbf6 461
nikitateggi 0:c47fb0c1bbf6 462
rashmivenkataramaiah 41:1141a75eacc4 463 return state;
nikitateggi 0:c47fb0c1bbf6 464
rashmivenkataramaiah 41:1141a75eacc4 465 }
rashmivenkataramaiah 41:1141a75eacc4 466
rashmivenkataramaiah 41:1141a75eacc4 467
rashmivenkataramaiah 41:1141a75eacc4 468 bool get_filecreated_status(void) //function to get file created status
rashmivenkataramaiah 41:1141a75eacc4 469 {
rashmivenkataramaiah 41:1141a75eacc4 470 return file_created_status;
rashmivenkataramaiah 41:1141a75eacc4 471 }
rashmivenkataramaiah 41:1141a75eacc4 472
rashmivenkataramaiah 41:1141a75eacc4 473 void set_filecreated_status(void) //function to set file created status
rashmivenkataramaiah 41:1141a75eacc4 474 {
rashmivenkataramaiah 42:c81673b04b6a 475 file_created_status = true;
rashmivenkataramaiah 41:1141a75eacc4 476 }
rashmivenkataramaiah 41:1141a75eacc4 477
rashmivenkataramaiah 41:1141a75eacc4 478
rashmivenkataramaiah 41:1141a75eacc4 479 void clear_filecreated_status(void) //function to clear file created status
rashmivenkataramaiah 41:1141a75eacc4 480 {
rashmivenkataramaiah 42:c81673b04b6a 481 file_created_status = false;
rashmivenkataramaiah 42:c81673b04b6a 482 }
rashmivenkataramaiah 42:c81673b04b6a 483
rashmivenkataramaiah 43:85a7f399cb9d 484 void increment_filepid (void) //increment pid if a test is completed
rashmivenkataramaiah 42:c81673b04b6a 485 {
rashmivenkataramaiah 43:85a7f399cb9d 486 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 487
rashmivenkataramaiah 42:c81673b04b6a 488 //set_filecreated_status(); //set it to make it append mode
rashmivenkataramaiah 42:c81673b04b6a 489 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 490 filepid_btpid[0] = filepid_btpid[0] + 1; //increment it by 1
rashmivenkataramaiah 42:c81673b04b6a 491 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 492
rashmivenkataramaiah 42:c81673b04b6a 493 }
rashmivenkataramaiah 42:c81673b04b6a 494
rashmivenkataramaiah 43:85a7f399cb9d 495 void increment_btpid (void) //increment pid if a test is completed
rashmivenkataramaiah 43:85a7f399cb9d 496 {
rashmivenkataramaiah 43:85a7f399cb9d 497 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 43:85a7f399cb9d 498
rashmivenkataramaiah 43:85a7f399cb9d 499 //set_filecreated_status(); //set it to make it append mode
rashmivenkataramaiah 43:85a7f399cb9d 500 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 501 filepid_btpid[1] = filepid_btpid[1] + 1; //increment it by 1
rashmivenkataramaiah 43:85a7f399cb9d 502 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 43:85a7f399cb9d 503
rashmivenkataramaiah 43:85a7f399cb9d 504 }
rashmivenkataramaiah 43:85a7f399cb9d 505
rashmivenkataramaiah 42:c81673b04b6a 506 uint32_t get_filepid(void)
rashmivenkataramaiah 42:c81673b04b6a 507 {
rashmivenkataramaiah 42:c81673b04b6a 508 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 509 uint32_t filepid = 0;
rashmivenkataramaiah 42:c81673b04b6a 510
rashmivenkataramaiah 42:c81673b04b6a 511 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 512 filepid = filepid_btpid[0];
rashmivenkataramaiah 42:c81673b04b6a 513 return filepid;
rashmivenkataramaiah 42:c81673b04b6a 514
rashmivenkataramaiah 42:c81673b04b6a 515 }
rashmivenkataramaiah 42:c81673b04b6a 516
rashmivenkataramaiah 42:c81673b04b6a 517 void store_filepid(uint32_t pid)
rashmivenkataramaiah 42:c81673b04b6a 518 {
rashmivenkataramaiah 42:c81673b04b6a 519 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 520 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 521 filepid_btpid[0] = pid;
rashmivenkataramaiah 42:c81673b04b6a 522 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 523
rashmivenkataramaiah 42:c81673b04b6a 524 }
rashmivenkataramaiah 42:c81673b04b6a 525
rashmivenkataramaiah 42:c81673b04b6a 526 uint32_t get_btpid(void)
rashmivenkataramaiah 42:c81673b04b6a 527 {
rashmivenkataramaiah 42:c81673b04b6a 528 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 529 uint32_t btpid = 0;
rashmivenkataramaiah 42:c81673b04b6a 530
rashmivenkataramaiah 42:c81673b04b6a 531 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 532 btpid = filepid_btpid[1];
rashmivenkataramaiah 42:c81673b04b6a 533 return btpid;
rashmivenkataramaiah 42:c81673b04b6a 534
rashmivenkataramaiah 42:c81673b04b6a 535 }
rashmivenkataramaiah 42:c81673b04b6a 536
rashmivenkataramaiah 42:c81673b04b6a 537 void store_btpid(uint32_t bt_pid)
rashmivenkataramaiah 42:c81673b04b6a 538 {
rashmivenkataramaiah 42:c81673b04b6a 539 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 540
rashmivenkataramaiah 42:c81673b04b6a 541 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 542 filepid_btpid[1] = bt_pid;
rashmivenkataramaiah 42:c81673b04b6a 543 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 544
rashmivenkataramaiah 42:c81673b04b6a 545 }
rashmivenkataramaiah 42:c81673b04b6a 546
nikitateggi 45:067673dae242 547
nikitateggi 44:05dbea558c9a 548 uint32_t get_timer_bluetooth()
nikitateggi 44:05dbea558c9a 549 {
nikitateggi 45:067673dae242 550 return timer_bt.read_ms();
nikitateggi 44:05dbea558c9a 551 }
nikitateggi 45:067673dae242 552
nikitateggi 45:067673dae242 553 void battery_status_monitoring()
nikitateggi 45:067673dae242 554 {
nikitateggi 45:067673dae242 555 if(timer_battery.read_ms() > BATTERY_TIMER_VALUE )
nikitateggi 45:067673dae242 556 {
nikitateggi 45:067673dae242 557 battery_monitor();
nikitateggi 45:067673dae242 558 timer_battery.reset();
nikitateggi 45:067673dae242 559 }
nikitateggi 45:067673dae242 560 }