Changes done in ECG and BT
Dependencies: SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217
Fork of merged_code2_20sept_2017_4th_oct_2017 by
Diff: main.cpp
- Revision:
- 19:1650bbc923cc
- Parent:
- 14:f5c62d30c6fc
- Child:
- 20:7c64e6ecad76
diff -r 20679eaa54d1 -r 1650bbc923cc main.cpp --- a/main.cpp Fri Jun 09 09:22:32 2017 +0000 +++ b/main.cpp Fri Jun 09 17:12:21 2017 +0000 @@ -1,6 +1,7 @@ +// changed the pid in all to int32_t; +//added bt + #include "mbed.h" -//#include "ili9325.h" -//#include "lcd_base.h" #include "display_modules.h" #include "touch_modules.h" #include "ecg_dec.h" @@ -9,42 +10,99 @@ #include "bp.h" #include "sdcard.h" #include "eeprom_pgm.h" - +#include "struct.h" Serial gc(USBTX, USBRX); DigitalIn q1(PTB11); DigitalIn q(PTB8); -//Serial ble(PTC4,PTC3); +DigitalIn BT(PTA5); //bluetooth status pin +uint8_t touch(uint8_t state); // touch state +uint8_t display(uint8_t state1); // display state +int pid=0; // patient ID +static uint8_t nstate=0; +static uint8_t nstate1=0; +static uint8_t flag=0; //flag to indicate not to update pid as it is already done +static uint8_t ecg_flag=0; // ecg_flag to indicate the ecg test is already done for the same pid +static uint8_t glc_flag=0; // glc_flag to indicate the glc test is already done for the same pid +uint8_t state_r=0; // state to receive from bluetooth +uint8_t state_t=1; // state to transmit to bluetooth +float heart_rate=0; int main(){ - unsigned char state; - unsigned char state1; - unsigned char nstate; - unsigned char nstate1; - int pid=0; // patient ID - unsigned char flag=0; - unsigned char ecg_flag=0; - unsigned char glc_flag=0; -float heart_rate=0; + DisableTouch(); gc.baud(115200); init_screen(); //initialize lcd screen_main(); // display of main screen - state=1; + //state=10; flag=0; - nstate=state; + //nstate=state; EnableTouch(); // enable touch function +static uint8_t main_state=1; +static uint8_t state_display=0; +static uint8_t state_touch=1; +static uint8_t state_t=1; +static uint8_t state_r=0; while(1) { - - detect_touch(); // determine the touch points + switch(main_state) // main state machine + { + case 1: state_display=touch(state_touch); // touch state + + + if(state_display==10) + main_state=3; + + else + main_state=2; + break; + + case 2: state_touch=display(state_display); //display state + main_state=1; + break; + + + case 3: DisableTouch(); // bluetooth send + if(BT==1) + { + state_r=bt_send(state_t); + main_state=4; + } + else + gc.printf("timeout"); + break; + + case 4: + state_t=bt_receive(state_r); // bluetooth receive + main_state=3; + // gc.printf("statet=%d",state_t); + if(state_t ==0) + { + EnableTouch(); + main_state=1; + } + break; + + + } + + +} + +} + + +uint8_t touch(uint8_t state) +{ + static uint8_t state1=0; + detect_touch(); // determine the touch points switch(state) // state for touch { @@ -121,9 +179,13 @@ } - +return state1; + } +uint8_t display(uint8_t state1) +{ + static uint8_t state=0; switch(state1) // state for display screens { @@ -141,6 +203,7 @@ break; case 2: DisableTouch(); + // bt(); screen_main_1(); // System configration screen state1=0; state=2; @@ -153,15 +216,12 @@ { //pid=pid+1; pid=eprom_read(1); // reading the patient id from eeprom + gc.printf("pidinit=%d",pid); pid=pid+1; + gc.printf("pid+1=%d",pid); eprom_write(1,pid); // writing the patient id to eeprom screen_main_2(pid); - - sd_open_mainfile(pid); //ADDED on 1/6/2017 - NIDHIN - sd_close(); - - - /*sd_open_GLCfilee(pid); // only opening the glc,bp and ecg file // COMMENTED Nidhin 1/6/17 + /* sd_open_GLCfilee(pid); // only opening the glc,bp and ecg file sd_close(); sd_open_ECGfilee(pid); sd_close(); @@ -189,7 +249,8 @@ nstate=state; } else - { screen_glc(); // glc screen + { + screen_glc(); // glc screen state1=0; state=4; nstate=state; @@ -233,6 +294,7 @@ case 7: DisableTouch(); glc(pid); // glc measurement + // bt(); glc_flag=1; wait(5); state1=0; @@ -265,7 +327,7 @@ EnableTouch(); break;*/ - case 9: + case 9: DisableTouch(); screen_bp2(); // bp main screen bp_countdown(); // countdown for bp @@ -277,8 +339,8 @@ EnableTouch(); break; - - + + default : state1=nstate1; @@ -289,16 +351,9 @@ - + return state; - } - - } - - - -