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 04:16:41 2017 +0000
Revision:
44:05dbea558c9a
Parent:
43:85a7f399cb9d
Child:
45:067673dae242
ack timeout

Who changed what in which revision?

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