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:
rashmivenkataramaiah
Date:
Thu Dec 07 07:30:46 2017 +0000
Revision:
73:22e4f398a2a6
Parent:
72:1f990fa8c516
Child:
74:9ba8a7101036
Updated 6th_Dec_code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
rashmivenkataramaiah 72:1f990fa8c516 2 //#include "display_modules.h"
rashmivenkataramaiah 72:1f990fa8c516 3 //#include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 4 #include "ecg_dec.h"
rashmivenkataramaiah 72:1f990fa8c516 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 57:e82d4bd6b2c0 12 #include "rtc.h"
rashmivenkataramaiah 41:1141a75eacc4 13 #include "main.h"
rashmivenkataramaiah 72:1f990fa8c516 14 #include "SDFileSystem.h"
nikitateggi 45:067673dae242 15
nikitateggi 45:067673dae242 16 #define TIMER_RXACK_BTCONNECTION 10000
nikitateggi 45:067673dae242 17 #define BATTERY_TIMER_VALUE 600000
nikitateggi 45:067673dae242 18 #define SERIAL_BAUD_RATE 115200
nikitateggi 45:067673dae242 19 #define BATTERY_SCREEN_NO_CHARGE_CONDITION 3
nikitateggi 49:3ff80c4bc1be 20 #define TIMER_ENTER_DEBUG_MODE 10000
rashmivenkataramaiah 57:e82d4bd6b2c0 21 #define HEARTBEAT_DATA_LEN 0x0Du
rashmivenkataramaiah 57:e82d4bd6b2c0 22 #define DEVICE_RESULT_DATA_LEN 0x04u
rashmivenkataramaiah 57:e82d4bd6b2c0 23 #define ZERO_DATA_LEN 0x00u
rashmivenkataramaiah 72:1f990fa8c516 24
nikitateggi 24:d992ee8369f4 25
rashmivenkataramaiah 57:e82d4bd6b2c0 26 typedef enum
rashmivenkataramaiah 57:e82d4bd6b2c0 27 {
rashmivenkataramaiah 66:d7fc45e328d0 28 HOME_SCREEN = 0x01U,
rashmivenkataramaiah 66:d7fc45e328d0 29 TEST_SCREEN
rashmivenkataramaiah 66:d7fc45e328d0 30 }DEVICE_STATE;
rashmivenkataramaiah 66:d7fc45e328d0 31 typedef enum
rashmivenkataramaiah 66:d7fc45e328d0 32 {
rashmivenkataramaiah 57:e82d4bd6b2c0 33 GET_TOUCH_DISP_STATE = 0x00U,
rashmivenkataramaiah 57:e82d4bd6b2c0 34 BT_TX_STATE,
rashmivenkataramaiah 57:e82d4bd6b2c0 35 BT_RX_STATE
nikitateggi 51:1a4693774b60 36
rashmivenkataramaiah 57:e82d4bd6b2c0 37 }DEVICE_MAIN_STATE;
rashmivenkataramaiah 57:e82d4bd6b2c0 38
rashmivenkataramaiah 57:e82d4bd6b2c0 39 // this helps to respond various status during test cycle, error condition and simple ack or nack
rashmivenkataramaiah 57:e82d4bd6b2c0 40 typedef struct __attribute__((__packed__))
rashmivenkataramaiah 57:e82d4bd6b2c0 41 {
rashmivenkataramaiah 57:e82d4bd6b2c0 42 uint8_t sos;
rashmivenkataramaiah 57:e82d4bd6b2c0 43 uint8_t cmd; // this contains error response
rashmivenkataramaiah 57:e82d4bd6b2c0 44 uint8_t length;
rashmivenkataramaiah 57:e82d4bd6b2c0 45 uint8_t eos;
rashmivenkataramaiah 57:e82d4bd6b2c0 46 uint8_t chksum;
rashmivenkataramaiah 57:e82d4bd6b2c0 47
rashmivenkataramaiah 57:e82d4bd6b2c0 48 }poc2p0_device_msg_response;
rashmivenkataramaiah 57:e82d4bd6b2c0 49
rashmivenkataramaiah 57:e82d4bd6b2c0 50 typedef struct __attribute__((__packed__))
rashmivenkataramaiah 57:e82d4bd6b2c0 51 {
rashmivenkataramaiah 57:e82d4bd6b2c0 52 uint8_t sos;
rashmivenkataramaiah 57:e82d4bd6b2c0 53 uint8_t cmd;
rashmivenkataramaiah 57:e82d4bd6b2c0 54 uint8_t length;
rashmivenkataramaiah 57:e82d4bd6b2c0 55 uint32_t test_result;
rashmivenkataramaiah 57:e82d4bd6b2c0 56 uint8_t eos;
rashmivenkataramaiah 57:e82d4bd6b2c0 57 uint8_t chksum;
rashmivenkataramaiah 57:e82d4bd6b2c0 58
rashmivenkataramaiah 57:e82d4bd6b2c0 59 }poc2p0_device_tst_result_response;
rashmivenkataramaiah 57:e82d4bd6b2c0 60
rashmivenkataramaiah 57:e82d4bd6b2c0 61 // this will be used for responding heart beat message
rashmivenkataramaiah 57:e82d4bd6b2c0 62 typedef struct __attribute__((__packed__))
rashmivenkataramaiah 57:e82d4bd6b2c0 63 {
rashmivenkataramaiah 57:e82d4bd6b2c0 64 uint8_t sos;
rashmivenkataramaiah 57:e82d4bd6b2c0 65 uint8_t cmd; // this contains error response
rashmivenkataramaiah 57:e82d4bd6b2c0 66 uint8_t length;
rashmivenkataramaiah 65:8acfba0ce49a 67 uint8_t did;
rashmivenkataramaiah 68:41da0a3ba038 68 char pid[10];
rashmivenkataramaiah 72:1f990fa8c516 69 //uint32_t pid;
rashmivenkataramaiah 65:8acfba0ce49a 70 DateTime_info date_time;
rashmivenkataramaiah 57:e82d4bd6b2c0 71 uint8_t device_state; //changed POC2P0_DEVICE_STATE to uint8_t
rashmivenkataramaiah 57:e82d4bd6b2c0 72 uint8_t battery_status;
rashmivenkataramaiah 57:e82d4bd6b2c0 73 uint8_t eos;
rashmivenkataramaiah 57:e82d4bd6b2c0 74 uint8_t chksum;
rashmivenkataramaiah 57:e82d4bd6b2c0 75
rashmivenkataramaiah 57:e82d4bd6b2c0 76 }poc2p0_device_heartbeat_response;
nikitateggi 51:1a4693774b60 77
rashmivenkataramaiah 72:1f990fa8c516 78 SDFileSystem sd(PTE1, PTE3, PTE2, PTE4, "sd");
nikitateggi 0:c47fb0c1bbf6 79 Serial gc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 80 DigitalIn q1(PTB11);
nikitateggi 29:7edc76b15e3d 81 DigitalIn q(PTC5);
nikitateggi 29:7edc76b15e3d 82 DigitalIn q3(PTC12);
rashmivenkataramaiah 42:c81673b04b6a 83 DigitalIn BT(PTA5);
rashmivenkataramaiah 65:8acfba0ce49a 84 Serial blue1(PTC4,PTC3);
rashmivenkataramaiah 65:8acfba0ce49a 85
nikitateggi 44:05dbea558c9a 86 uint32_t get_timer_bluetooth();
nikitateggi 45:067673dae242 87 static void battery_status_monitoring(); //bluetooth status pin
nikitateggi 45:067673dae242 88 uint8_t touch(uint8_t state); // touch state
nikitateggi 45:067673dae242 89 uint8_t display(uint8_t state1); // display state
rashmivenkataramaiah 68:41da0a3ba038 90 static void set_userpid(char *user_pid);
rashmivenkataramaiah 72:1f990fa8c516 91 static void ecg_bp_countdown(void);
rashmivenkataramaiah 72:1f990fa8c516 92 static void read_device_id(void);
rashmivenkataramaiah 72:1f990fa8c516 93 void sd_card_status(void);
nikitateggi 45:067673dae242 94
rashmivenkataramaiah 42:c81673b04b6a 95 static uint8_t nstate=0;
nikitateggi 53:cc6e65480a67 96 static uint8_t nstate1=0;
rashmivenkataramaiah 43:85a7f399cb9d 97 static bool file_created_status = false; //initialise file created to 0
rashmivenkataramaiah 43:85a7f399cb9d 98 static uint32_t filepid_btpid[2] = {};
nikitateggi 45:067673dae242 99 Timer timer_bt; // timer for bluetooth
rashmivenkataramaiah 57:e82d4bd6b2c0 100 Timer timer_battery; // timer for battery
nikitateggi 51:1a4693774b60 101 Timer timer_debug; // timer for entering the debug mode
nikitateggi 54:f2a413d5dffd 102 static bool debug_mode=false; // holds the status of the debug mode "1" indicates the device is in debug mode
nikitateggi 51:1a4693774b60 103 char debug_message_rx[6]; // buffer to receive the debug message data
nikitateggi 51:1a4693774b60 104 char debug_message[6]={"debug"}; //debug message to be received
nikitateggi 51:1a4693774b60 105 void debug_status_monitoring(); // debug status monitoring
nikitateggi 54:f2a413d5dffd 106 static uint32_t pid = 0; // patient ID
rashmivenkataramaiah 65:8acfba0ce49a 107 static uint8_t state_touch = 1; //added on 16-NOV rashmi
rashmivenkataramaiah 69:128e3b467820 108 uint8_t buffer_pointer = 0x00u;
rashmivenkataramaiah 69:128e3b467820 109 static char user_pid[10];
rashmivenkataramaiah 72:1f990fa8c516 110 static uint8_t device_id = 0;
rashmivenkataramaiah 68:41da0a3ba038 111
rashmivenkataramaiah 41:1141a75eacc4 112 int main()
rashmivenkataramaiah 41:1141a75eacc4 113 {
rashmivenkataramaiah 57:e82d4bd6b2c0 114 static DEVICE_MAIN_STATE main_state = GET_TOUCH_DISP_STATE;
rashmivenkataramaiah 41:1141a75eacc4 115 static uint8_t state_display = 0;
rashmivenkataramaiah 64:5a76653792e8 116 //static uint8_t state_touch = 1; //commented on 16-NOV rashmi
nikitateggi 47:3716dd41dba6 117 uint8_t state_t = 1; // state to transmit to bluetooth
nikitateggi 47:3716dd41dba6 118 uint8_t state_r = 0; // state to receive from bluetooth
avp2417 37:92fcbf22bf91 119
rashmivenkataramaiah 72:1f990fa8c516 120 //DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 121 gc.baud(115200);
nikitateggi 47:3716dd41dba6 122 blue1.baud(115200);
rashmivenkataramaiah 72:1f990fa8c516 123 sd.disk_initialize();
rashmivenkataramaiah 72:1f990fa8c516 124 sd_card_status();
nikitateggi 54:f2a413d5dffd 125 pid = get_filepid() + 1; //added on 22/09/2017 nikita
rashmivenkataramaiah 72:1f990fa8c516 126 //screen_main(); // display of main screen
nikitateggi 45:067673dae242 127 battery_monitor(); // monitor battery at the start only
rashmivenkataramaiah 72:1f990fa8c516 128 //battery_status_display(); // display of main screen
nikitateggi 45:067673dae242 129 timer_battery.start();
nikitateggi 51:1a4693774b60 130 timer_debug.start();
nikitateggi 51:1a4693774b60 131 gc.printf("enter message to go into debug mode\n");
rashmivenkataramaiah 72:1f990fa8c516 132 read_device_id();
nikitateggi 0:c47fb0c1bbf6 133 while(1)
nikitateggi 0:c47fb0c1bbf6 134 {
nikitateggi 51:1a4693774b60 135
nikitateggi 54:f2a413d5dffd 136 if (read_debug_status() == false) // checking the debug_mode status
nikitateggi 51:1a4693774b60 137 {
nikitateggi 51:1a4693774b60 138 if(timer_debug.read_ms()<TIMER_ENTER_DEBUG_MODE)
nikitateggi 51:1a4693774b60 139 {
nikitateggi 51:1a4693774b60 140 debug_status_monitoring();
nikitateggi 51:1a4693774b60 141 }
nikitateggi 51:1a4693774b60 142 }
nikitateggi 51:1a4693774b60 143
nikitateggi 45:067673dae242 144 battery_status_monitoring(); // to monitior battery status after every 10 min.
nikitateggi 45:067673dae242 145
nikitateggi 45:067673dae242 146 if (get_battery_status() == BATTERY_SCREEN_NO_CHARGE_CONDITION) // to check battery status and take action
nikitateggi 45:067673dae242 147 {
rashmivenkataramaiah 72:1f990fa8c516 148 //DisableTouch();
nikitateggi 45:067673dae242 149 }
nikitateggi 45:067673dae242 150 else
nikitateggi 45:067673dae242 151 {
rashmivenkataramaiah 72:1f990fa8c516 152 //EnableTouch();
rashmivenkataramaiah 58:b75255e6e4c3 153 //gc.printf("c");
rashmivenkataramaiah 57:e82d4bd6b2c0 154 switch(main_state) // main state machine
nikitateggi 45:067673dae242 155 {
rashmivenkataramaiah 57:e82d4bd6b2c0 156 case GET_TOUCH_DISP_STATE:
rashmivenkataramaiah 57:e82d4bd6b2c0 157
rashmivenkataramaiah 57:e82d4bd6b2c0 158 state_display = poc2p0_bt_receive(state_touch);
rashmivenkataramaiah 57:e82d4bd6b2c0 159 //state_display = touch(state_touch); // touch state
rashmivenkataramaiah 72:1f990fa8c516 160 //gc.printf(" state_display = %d\n", state_display);
rashmivenkataramaiah 57:e82d4bd6b2c0 161 display(state_display); //display state
rashmivenkataramaiah 72:1f990fa8c516 162
rashmivenkataramaiah 73:22e4f398a2a6 163 if(state_display == 15)
rashmivenkataramaiah 73:22e4f398a2a6 164 {
rashmivenkataramaiah 73:22e4f398a2a6 165 main_state = GET_TOUCH_DISP_STATE;
rashmivenkataramaiah 73:22e4f398a2a6 166 }
rashmivenkataramaiah 57:e82d4bd6b2c0 167 if(state_display == 12)
rashmivenkataramaiah 57:e82d4bd6b2c0 168 {
rashmivenkataramaiah 57:e82d4bd6b2c0 169 main_state = BT_TX_STATE;
rashmivenkataramaiah 57:e82d4bd6b2c0 170 }
rashmivenkataramaiah 72:1f990fa8c516 171 // else
rashmivenkataramaiah 72:1f990fa8c516 172 // display(state_display);
rashmivenkataramaiah 57:e82d4bd6b2c0 173
rashmivenkataramaiah 57:e82d4bd6b2c0 174 break;
avp2417 37:92fcbf22bf91 175
rashmivenkataramaiah 57:e82d4bd6b2c0 176 case BT_TX_STATE:
rashmivenkataramaiah 72:1f990fa8c516 177 //DisableTouch(); // bluetooth send
nikitateggi 45:067673dae242 178 timer_bt.start();
nikitateggi 45:067673dae242 179 if(get_timer_bluetooth()<TIMER_RXACK_BTCONNECTION) // bluetooth connection timer 15 sec
nikitateggi 45:067673dae242 180 {
nikitateggi 44:05dbea558c9a 181
nikitateggi 45:067673dae242 182 if(BT==1) // checking for bluetooth connection
nikitateggi 45:067673dae242 183 {
nikitateggi 44:05dbea558c9a 184
nikitateggi 45:067673dae242 185 timer_bt.stop(); // stop the timer once connected to app
nikitateggi 45:067673dae242 186 timer_bt.reset();
rashmivenkataramaiah 72:1f990fa8c516 187 //BT_connection() ; // displaying connection on bluetooth
rashmivenkataramaiah 72:1f990fa8c516 188 gc.printf(" BT Connected\n");
nikitateggi 44:05dbea558c9a 189 state_r=bt_send(state_t);
nikitateggi 45:067673dae242 190 timer_bt.start();
nikitateggi 47:3716dd41dba6 191 //gc.printf(" state_t = %d\n", state_t);
nikitateggi 48:f90edb35a20e 192 // gc.printf(" state_r = %d\n", state_r);
nikitateggi 44:05dbea558c9a 193 if (state_r==0) // if the state received is zero, then there is no new file to send
nikitateggi 45:067673dae242 194 {
nikitateggi 45:067673dae242 195 timer_bt.stop(); // stop the timer once connected to app
nikitateggi 45:067673dae242 196 timer_bt.reset();
rashmivenkataramaiah 72:1f990fa8c516 197 //BT_finished(); // screen to display communication finished
rashmivenkataramaiah 72:1f990fa8c516 198 //screen_BT_return(); //screen to return back
rashmivenkataramaiah 72:1f990fa8c516 199 gc.printf("BT Transfer Complete\n");
rashmivenkataramaiah 72:1f990fa8c516 200 //EnableTouch();
rashmivenkataramaiah 57:e82d4bd6b2c0 201 main_state=GET_TOUCH_DISP_STATE;
nikitateggi 45:067673dae242 202 state_touch=12;
nikitateggi 45:067673dae242 203 break;
nikitateggi 44:05dbea558c9a 204 }
nikitateggi 44:05dbea558c9a 205
nikitateggi 44:05dbea558c9a 206 else
nikitateggi 44:05dbea558c9a 207 {
rashmivenkataramaiah 57:e82d4bd6b2c0 208 main_state=BT_RX_STATE; // move to receving stste of bluetooth
nikitateggi 44:05dbea558c9a 209 }
nikitateggi 44:05dbea558c9a 210
nikitateggi 45:067673dae242 211 }
nikitateggi 44:05dbea558c9a 212
nikitateggi 45:067673dae242 213 else
nikitateggi 45:067673dae242 214 {
rashmivenkataramaiah 72:1f990fa8c516 215 //BT_no_connection(); // display screen to show that there is no connection
rashmivenkataramaiah 72:1f990fa8c516 216 gc.printf("BT No Connection\n");
nikitateggi 45:067673dae242 217 }
nikitateggi 45:067673dae242 218 }
nikitateggi 44:05dbea558c9a 219
nikitateggi 45:067673dae242 220 else
rashmivenkataramaiah 60:3bb9e9ba3205 221 {
rashmivenkataramaiah 60:3bb9e9ba3205 222 poc2p0_send_device_msg_res(MSG_REJECTED_RES); //added on 14-Nov by rashmi
rashmivenkataramaiah 72:1f990fa8c516 223 //BT_no_connection(); // display screen to show that there is no connection
nikitateggi 45:067673dae242 224 gc.printf("stopped");
rashmivenkataramaiah 72:1f990fa8c516 225 //screen_BT_return(); // button to return
rashmivenkataramaiah 72:1f990fa8c516 226 //EnableTouch();
rashmivenkataramaiah 57:e82d4bd6b2c0 227 main_state=GET_TOUCH_DISP_STATE;
nikitateggi 45:067673dae242 228 state_touch=12;
nikitateggi 49:3ff80c4bc1be 229 //sd_close();
nikitateggi 45:067673dae242 230 timer_bt.stop();
nikitateggi 45:067673dae242 231 timer_bt.reset();
nikitateggi 45:067673dae242 232 }
nikitateggi 45:067673dae242 233 break;
nikitateggi 19:1650bbc923cc 234
rashmivenkataramaiah 57:e82d4bd6b2c0 235 case BT_RX_STATE:
rashmivenkataramaiah 72:1f990fa8c516 236 //DisableTouch();
nikitateggi 44:05dbea558c9a 237
nikitateggi 45:067673dae242 238 if(get_timer_bluetooth()<TIMER_RXACK_BTCONNECTION)
nikitateggi 45:067673dae242 239 {
nikitateggi 45:067673dae242 240 if (blue1.readable()) // if there is data to receive enter the loop
nikitateggi 45:067673dae242 241 {
nikitateggi 46:162ed3f051b2 242
nikitateggi 46:162ed3f051b2 243 state_t=bt_receive(state_r);
nikitateggi 48:f90edb35a20e 244 // gc.printf(" state_t = %d\n", state_t);
nikitateggi 47:3716dd41dba6 245 // gc.printf(" state_r = %d\n", state_r);
nikitateggi 45:067673dae242 246 timer_bt.stop();
nikitateggi 45:067673dae242 247 timer_bt.reset();
nikitateggi 45:067673dae242 248 if(state_t ==0) // if state_t is zero, there is no other file to send
nikitateggi 45:067673dae242 249 {
nikitateggi 45:067673dae242 250
rashmivenkataramaiah 72:1f990fa8c516 251 //BT_finished();
rashmivenkataramaiah 72:1f990fa8c516 252 //screen_BT_return();
rashmivenkataramaiah 72:1f990fa8c516 253 gc.printf("BT Transfer Complete\n");
rashmivenkataramaiah 72:1f990fa8c516 254 //EnableTouch();
rashmivenkataramaiah 57:e82d4bd6b2c0 255 main_state=GET_TOUCH_DISP_STATE;
nikitateggi 45:067673dae242 256 state_touch=12; // jumping to touch case 12
nikitateggi 45:067673dae242 257 break;
nikitateggi 45:067673dae242 258 }
nikitateggi 45:067673dae242 259 else // move to bluetooth transmit if the states are 1,2,3,4
nikitateggi 45:067673dae242 260 {
rashmivenkataramaiah 57:e82d4bd6b2c0 261 main_state=BT_TX_STATE;
nikitateggi 45:067673dae242 262 }
nikitateggi 45:067673dae242 263 }
nikitateggi 45:067673dae242 264 }
nikitateggi 44:05dbea558c9a 265
nikitateggi 45:067673dae242 266 else
nikitateggi 45:067673dae242 267 {
rashmivenkataramaiah 72:1f990fa8c516 268 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 269 //BT_no_connection(); // display screen to show that there is no connection
nikitateggi 45:067673dae242 270 gc.printf("stopped");
rashmivenkataramaiah 72:1f990fa8c516 271 //screen_BT_return(); // button to return
rashmivenkataramaiah 72:1f990fa8c516 272 gc.printf("BT No Connection\n");
rashmivenkataramaiah 72:1f990fa8c516 273 //EnableTouch();
rashmivenkataramaiah 57:e82d4bd6b2c0 274 main_state=GET_TOUCH_DISP_STATE;
nikitateggi 45:067673dae242 275 state_touch=12;
nikitateggi 47:3716dd41dba6 276 state_t = 1; // state to transmit to bluetooth
nikitateggi 48:f90edb35a20e 277 state_r = 0; // state to receive from bluetooth
nikitateggi 46:162ed3f051b2 278 sd_close(); ///close the opened file which was used for bluetooth
nikitateggi 45:067673dae242 279 timer_bt.stop();
nikitateggi 45:067673dae242 280 timer_bt.reset();
nikitateggi 45:067673dae242 281 }
rashmivenkataramaiah 57:e82d4bd6b2c0 282 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 283 default:
rashmivenkataramaiah 57:e82d4bd6b2c0 284 break;
nikitateggi 45:067673dae242 285 }
nikitateggi 45:067673dae242 286 }
nikitateggi 45:067673dae242 287 }
nikitateggi 45:067673dae242 288
nikitateggi 22:ffa88619551d 289 }
rashmivenkataramaiah 72:1f990fa8c516 290 /*uint8_t touch(uint8_t state)
nikitateggi 19:1650bbc923cc 291 {
nikitateggi 19:1650bbc923cc 292 static uint8_t state1=0;
rashmivenkataramaiah 41:1141a75eacc4 293 detect_touch(state); // determine the touch points
nikitateggi 1:8316c23ec6b9 294
rashmivenkataramaiah 41:1141a75eacc4 295 switch(state) // state for touch
nikitateggi 0:c47fb0c1bbf6 296 {
rashmivenkataramaiah 41:1141a75eacc4 297 case 1:
rashmivenkataramaiah 41:1141a75eacc4 298 state1=touch_main(); // determining the touch for main screen
nikitateggi 0:c47fb0c1bbf6 299 state=0;
nikitateggi 1:8316c23ec6b9 300 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 301 break;
nikitateggi 0:c47fb0c1bbf6 302
nikitateggi 0:c47fb0c1bbf6 303 case 2:
rashmivenkataramaiah 41:1141a75eacc4 304 state1=touch_main_1(); // determining the touch for SYSTEM CONFIGURATION screen
nikitateggi 0:c47fb0c1bbf6 305 state=0;
nikitateggi 3:9a06c2bed650 306 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 307 break;
nikitateggi 0:c47fb0c1bbf6 308
nikitateggi 0:c47fb0c1bbf6 309 case 3:
rashmivenkataramaiah 41:1141a75eacc4 310 state1=touch_main_2(); // determining the touch for TEST screen
nikitateggi 0:c47fb0c1bbf6 311 state=0;
nikitateggi 1:8316c23ec6b9 312 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 313 break;
nikitateggi 0:c47fb0c1bbf6 314
nikitateggi 0:c47fb0c1bbf6 315 case 4:
rashmivenkataramaiah 41:1141a75eacc4 316 state1=touch_glc(); // determining the touch for GLC screen
nikitateggi 1:8316c23ec6b9 317 state=0;
nikitateggi 1:8316c23ec6b9 318 nstate1=state1;
nikitateggi 1:8316c23ec6b9 319 break;
nikitateggi 1:8316c23ec6b9 320
nikitateggi 1:8316c23ec6b9 321 case 5:
rashmivenkataramaiah 41:1141a75eacc4 322 state1=touch_ecg(); // determining the touch for ECG screen
nikitateggi 1:8316c23ec6b9 323 state=0;
nikitateggi 3:9a06c2bed650 324 nstate1=state1;
nikitateggi 3:9a06c2bed650 325 break;
nikitateggi 4:6bd81bb1790d 326 case 6:
rashmivenkataramaiah 41:1141a75eacc4 327 state1=touch_ret(); // determining the touch for returning back to the main screen
nikitateggi 0:c47fb0c1bbf6 328 state=0;
nikitateggi 3:9a06c2bed650 329 nstate1=state1;
nikitateggi 1:8316c23ec6b9 330 break;
nikitateggi 1:8316c23ec6b9 331
nikitateggi 4:6bd81bb1790d 332 case 7:
rashmivenkataramaiah 41:1141a75eacc4 333 state1=touch_again_ecg(); // determining the touch when readings are taken more than once screen
nikitateggi 1:8316c23ec6b9 334 state=0;
nikitateggi 1:8316c23ec6b9 335 nstate1=state1;
nikitateggi 1:8316c23ec6b9 336 break;
nikitateggi 0:c47fb0c1bbf6 337
nikitateggi 3:9a06c2bed650 338 case 8:
rashmivenkataramaiah 41:1141a75eacc4 339 state1=touch_bp(); // determining the touch for BP screen
nikitateggi 3:9a06c2bed650 340 state=0;
nikitateggi 3:9a06c2bed650 341 nstate1=state1;
nikitateggi 3:9a06c2bed650 342 break;
nikitateggi 3:9a06c2bed650 343
rashmivenkataramaiah 41:1141a75eacc4 344 case 9:
rashmivenkataramaiah 41:1141a75eacc4 345 state1=touch_again_glc();
suhasini 5:a3ea7c82b7e1 346 state=0;
suhasini 5:a3ea7c82b7e1 347 nstate1=state1;
suhasini 5:a3ea7c82b7e1 348 break;
nikitateggi 3:9a06c2bed650 349
rashmivenkataramaiah 41:1141a75eacc4 350 case 10 :
rashmivenkataramaiah 41:1141a75eacc4 351 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 352 wait_ms(300);
rashmivenkataramaiah 41:1141a75eacc4 353 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 354 state=nstate;
rashmivenkataramaiah 41:1141a75eacc4 355 break;
suhasini 5:a3ea7c82b7e1 356
rashmivenkataramaiah 57:e82d4bd6b2c0 357
rashmivenkataramaiah 41:1141a75eacc4 358 case 11:
rashmivenkataramaiah 41:1141a75eacc4 359 state1=touch_again_bp();
rashmivenkataramaiah 41:1141a75eacc4 360 state=0;
rashmivenkataramaiah 41:1141a75eacc4 361 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 362 break;
suhasini 5:a3ea7c82b7e1 363
rashmivenkataramaiah 41:1141a75eacc4 364 case 12:
rashmivenkataramaiah 41:1141a75eacc4 365 state1=BT_return();
rashmivenkataramaiah 41:1141a75eacc4 366 state=0;
rashmivenkataramaiah 41:1141a75eacc4 367 nstate1=state1;
rashmivenkataramaiah 41:1141a75eacc4 368 break;
nikitateggi 49:3ff80c4bc1be 369
nikitateggi 49:3ff80c4bc1be 370 case 13:
nikitateggi 49:3ff80c4bc1be 371 state1 = touch_debug(); //touch state for debug
nikitateggi 49:3ff80c4bc1be 372 //state=0;
nikitateggi 49:3ff80c4bc1be 373 nstate1=state1;
nikitateggi 49:3ff80c4bc1be 374 break;
rashmivenkataramaiah 41:1141a75eacc4 375 default :
rashmivenkataramaiah 41:1141a75eacc4 376 DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 377 wait_ms(300);
rashmivenkataramaiah 41:1141a75eacc4 378 EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 379 state=nstate;
rashmivenkataramaiah 41:1141a75eacc4 380 break;
nikitateggi 1:8316c23ec6b9 381
nikitateggi 0:c47fb0c1bbf6 382 }
nikitateggi 0:c47fb0c1bbf6 383
rashmivenkataramaiah 41:1141a75eacc4 384 return state1;
rashmivenkataramaiah 72:1f990fa8c516 385 }*/
nikitateggi 0:c47fb0c1bbf6 386
nikitateggi 0:c47fb0c1bbf6 387
nikitateggi 19:1650bbc923cc 388 uint8_t display(uint8_t state1)
nikitateggi 19:1650bbc923cc 389 {
rashmivenkataramaiah 41:1141a75eacc4 390 static uint8_t state=0;
rashmivenkataramaiah 41:1141a75eacc4 391 static uint8_t ecg_flag=0; // ecg_flag to indicate the ecg test is already done for the same pid
rashmivenkataramaiah 41:1141a75eacc4 392 static uint8_t glc_flag=0; // glc_flag to indicate the glc test is already done for the same pid
rashmivenkataramaiah 61:ce5ad0838227 393 //uint16_t heart_rate=0;
rashmivenkataramaiah 67:7e07cdb1b150 394
rashmivenkataramaiah 64:5a76653792e8 395 switch(state1) // state for display screens
rashmivenkataramaiah 41:1141a75eacc4 396 {
nikitateggi 4:6bd81bb1790d 397
nikitateggi 1:8316c23ec6b9 398
rashmivenkataramaiah 41:1141a75eacc4 399 case 1:
rashmivenkataramaiah 72:1f990fa8c516 400 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 401 //screen_main(); // main screen
nikitateggi 1:8316c23ec6b9 402 state1=0;
nikitateggi 1:8316c23ec6b9 403 state=1;
nikitateggi 1:8316c23ec6b9 404 nstate=state;
rashmivenkataramaiah 64:5a76653792e8 405 ecg_flag=0; // ecg, glc flag to determine whether the readings are taken more than once
nikitateggi 1:8316c23ec6b9 406 glc_flag=0;
rashmivenkataramaiah 41:1141a75eacc4 407 clear_filecreated_status();
rashmivenkataramaiah 72:1f990fa8c516 408 //battery_status_display(); //Display battery status on LCD
nikitateggi 53:cc6e65480a67 409 pid = get_filepid() + 1;
rashmivenkataramaiah 64:5a76653792e8 410 state_touch = TOUCH_STATE_HOME_SCREEN; //added on 16-Nov rashmi
rashmivenkataramaiah 72:1f990fa8c516 411 //EnableTouch();
nikitateggi 1:8316c23ec6b9 412 break;
nikitateggi 1:8316c23ec6b9 413
rashmivenkataramaiah 41:1141a75eacc4 414 case 2:
rashmivenkataramaiah 72:1f990fa8c516 415 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 416 //screen_main_1(); // System configration screen
nikitateggi 0:c47fb0c1bbf6 417 state1=0;
nikitateggi 0:c47fb0c1bbf6 418 state=2;
nikitateggi 1:8316c23ec6b9 419 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 420 //battery_status_display(); //Display battery status on LCD
rashmivenkataramaiah 72:1f990fa8c516 421 //EnableTouch();
nikitateggi 51:1a4693774b60 422 // timer_debug.stop();
nikitateggi 0:c47fb0c1bbf6 423 break;
nikitateggi 0:c47fb0c1bbf6 424
rashmivenkataramaiah 41:1141a75eacc4 425 case 3:
rashmivenkataramaiah 72:1f990fa8c516 426 //DisableTouch();
nikitateggi 19:1650bbc923cc 427 gc.printf("pidinit=%d",pid);
rashmivenkataramaiah 72:1f990fa8c516 428 //screen_main_2(pid);
rashmivenkataramaiah 41:1141a75eacc4 429 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 430 state=3;
rashmivenkataramaiah 41:1141a75eacc4 431 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 432 //battery_status_display();
rashmivenkataramaiah 64:5a76653792e8 433 state_touch = TOUCH_STATE_TEST_SCREEN; //added on 16-Nov rashmi
rashmivenkataramaiah 72:1f990fa8c516 434 //EnableTouch();
rashmivenkataramaiah 41:1141a75eacc4 435 break;
nikitateggi 0:c47fb0c1bbf6 436
rashmivenkataramaiah 41:1141a75eacc4 437 case 4:
rashmivenkataramaiah 72:1f990fa8c516 438 //DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 439 if (glc_flag==1) // glc_flag=1 when already the reading has been taken
rashmivenkataramaiah 41:1141a75eacc4 440 {
rashmivenkataramaiah 72:1f990fa8c516 441 //screen_again();
rashmivenkataramaiah 41:1141a75eacc4 442 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 443 state=9;
rashmivenkataramaiah 41:1141a75eacc4 444 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 445 }
rashmivenkataramaiah 41:1141a75eacc4 446 else
nikitateggi 19:1650bbc923cc 447 {
rashmivenkataramaiah 72:1f990fa8c516 448 //screen_glc(); // glc screen
rashmivenkataramaiah 41:1141a75eacc4 449 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 450 state=4;
rashmivenkataramaiah 41:1141a75eacc4 451 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 452 }
rashmivenkataramaiah 72:1f990fa8c516 453 //EnableTouch();
nikitateggi 3:9a06c2bed650 454
nikitateggi 0:c47fb0c1bbf6 455 break;
nikitateggi 1:8316c23ec6b9 456
nikitateggi 1:8316c23ec6b9 457
rashmivenkataramaiah 41:1141a75eacc4 458 case 5:
rashmivenkataramaiah 72:1f990fa8c516 459 // DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 460 if (ecg_flag==1)
rashmivenkataramaiah 41:1141a75eacc4 461 {
rashmivenkataramaiah 72:1f990fa8c516 462 //screen_again();
rashmivenkataramaiah 41:1141a75eacc4 463 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 464 state=7;
nikitateggi 1:8316c23ec6b9 465 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 466 }
rashmivenkataramaiah 41:1141a75eacc4 467
rashmivenkataramaiah 41:1141a75eacc4 468 else
rashmivenkataramaiah 41:1141a75eacc4 469 {
rashmivenkataramaiah 72:1f990fa8c516 470 //screen_ecg(); //ecg main screen
rashmivenkataramaiah 41:1141a75eacc4 471 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 472 state=5;
nikitateggi 1:8316c23ec6b9 473 nstate=state;
rashmivenkataramaiah 41:1141a75eacc4 474 }
rashmivenkataramaiah 72:1f990fa8c516 475 //EnableTouch();
nikitateggi 1:8316c23ec6b9 476 break;
nikitateggi 1:8316c23ec6b9 477
rashmivenkataramaiah 41:1141a75eacc4 478 case 6:
rashmivenkataramaiah 72:1f990fa8c516 479 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 480 //screen_bp(); // bp main screen
nikitateggi 3:9a06c2bed650 481 state1=0;
nikitateggi 3:9a06c2bed650 482 state=8;
rashmivenkataramaiah 41:1141a75eacc4 483 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 484 //EnableTouch();
nikitateggi 3:9a06c2bed650 485 break;
nikitateggi 3:9a06c2bed650 486
rashmivenkataramaiah 41:1141a75eacc4 487 case 7:
rashmivenkataramaiah 72:1f990fa8c516 488 //DisableTouch();
rashmivenkataramaiah 41:1141a75eacc4 489 glc(pid); // glc measurement
nikitateggi 1:8316c23ec6b9 490 glc_flag=1;
nikitateggi 4:6bd81bb1790d 491 state1=0;
rashmivenkataramaiah 72:1f990fa8c516 492 //screen_glc_2();
rashmivenkataramaiah 41:1141a75eacc4 493 state=6;
rashmivenkataramaiah 41:1141a75eacc4 494 eprom_write_8(30,0);
rashmivenkataramaiah 62:7d2a844ed639 495 nstate=state;
rashmivenkataramaiah 66:d7fc45e328d0 496 //wait(2); //added on 16-NOV rashmi
rashmivenkataramaiah 72:1f990fa8c516 497 //screen_main_2(pid); //added on 20-NOV rashmi
rashmivenkataramaiah 64:5a76653792e8 498 state_touch = TOUCH_STATE_TEST_SCREEN; //added on 16-Nov rashmi
rashmivenkataramaiah 72:1f990fa8c516 499 //EnableTouch();
nikitateggi 1:8316c23ec6b9 500 break;
nikitateggi 1:8316c23ec6b9 501
rashmivenkataramaiah 72:1f990fa8c516 502 case 8: // DisableTouch();
rashmivenkataramaiah 57:e82d4bd6b2c0 503 // send ECG test in progress messages to mobile application
rashmivenkataramaiah 57:e82d4bd6b2c0 504 poc2p0_send_device_msg_res(ECG_TEST_IN_PROGRESS_RES);
rashmivenkataramaiah 72:1f990fa8c516 505 //ecg_countdown(); // countdown before ecg capture
rashmivenkataramaiah 72:1f990fa8c516 506 ecg_bp_countdown();
rashmivenkataramaiah 61:ce5ad0838227 507 ecg(pid); // capturing ecg
nikitateggi 1:8316c23ec6b9 508 state1=0;
rashmivenkataramaiah 61:ce5ad0838227 509 ecg_flag=1;
nikitateggi 1:8316c23ec6b9 510 state=6;
nikitateggi 24:d992ee8369f4 511 eprom_write_8(30,1);
nikitateggi 20:7c64e6ecad76 512 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 513 //screen_ecg_bp();
rashmivenkataramaiah 66:d7fc45e328d0 514 //wait(2); //added on 16-NOV rashmi
rashmivenkataramaiah 72:1f990fa8c516 515 //screen_main_2(pid); //added on 20-NOV rashmi
rashmivenkataramaiah 64:5a76653792e8 516 state_touch = TOUCH_STATE_TEST_SCREEN; //added on 16-Nov rashmi
rashmivenkataramaiah 72:1f990fa8c516 517 //EnableTouch();
nikitateggi 1:8316c23ec6b9 518 break;
rashmivenkataramaiah 41:1141a75eacc4 519
rashmivenkataramaiah 57:e82d4bd6b2c0 520 case 9:
rashmivenkataramaiah 72:1f990fa8c516 521 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 522 //screen_bp2(); // bp main screen
rashmivenkataramaiah 66:d7fc45e328d0 523
rashmivenkataramaiah 57:e82d4bd6b2c0 524 // send BP test in progress response to mobile application
rashmivenkataramaiah 57:e82d4bd6b2c0 525 poc2p0_send_device_msg_res(BP_TEST_IN_PROGRESS_RES);
rashmivenkataramaiah 57:e82d4bd6b2c0 526
rashmivenkataramaiah 72:1f990fa8c516 527 //bp_countdown(); // countdown for bp
rashmivenkataramaiah 72:1f990fa8c516 528 ecg_bp_countdown();
rashmivenkataramaiah 41:1141a75eacc4 529 bp(pid); // measuring bp earlier bp() changed to bp(pid) 28/4/2017
nikitateggi 3:9a06c2bed650 530 state1=0;
nikitateggi 3:9a06c2bed650 531 state=6;
nikitateggi 24:d992ee8369f4 532 eprom_write_8(30,2);
nikitateggi 3:9a06c2bed650 533 nstate=state;
rashmivenkataramaiah 66:d7fc45e328d0 534 //wait(2); //added on 16-NOV rashmi
rashmivenkataramaiah 72:1f990fa8c516 535 //screen_main_2(pid); //added on 20-NOV rashmi
rashmivenkataramaiah 64:5a76653792e8 536 state_touch = TOUCH_STATE_TEST_SCREEN; //added on 16-Nov rashmi
rashmivenkataramaiah 72:1f990fa8c516 537 //EnableTouch();
nikitateggi 3:9a06c2bed650 538 break;
nikitateggi 31:0f67acfc6236 539
nikitateggi 31:0f67acfc6236 540
rashmivenkataramaiah 72:1f990fa8c516 541 case 10 : //DisableTouch();
nikitateggi 31:0f67acfc6236 542 wait_ms(300);
rashmivenkataramaiah 72:1f990fa8c516 543 //EnableTouch();
nikitateggi 31:0f67acfc6236 544 state=nstate;
nikitateggi 31:0f67acfc6236 545 break;
nikitateggi 31:0f67acfc6236 546
rashmivenkataramaiah 41:1141a75eacc4 547 case 11 :
rashmivenkataramaiah 72:1f990fa8c516 548 //DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 549 //screen_patient_info(get_filepid(), get_btpid());
rashmivenkataramaiah 41:1141a75eacc4 550 state1=0;
rashmivenkataramaiah 41:1141a75eacc4 551 state=12;
rashmivenkataramaiah 72:1f990fa8c516 552 //EnableTouch();
nikitateggi 49:3ff80c4bc1be 553 break;
nikitateggi 49:3ff80c4bc1be 554
nikitateggi 49:3ff80c4bc1be 555 case 13 : //display screen for debug
rashmivenkataramaiah 72:1f990fa8c516 556 // DisableTouch();
rashmivenkataramaiah 72:1f990fa8c516 557 //screen_debug();
nikitateggi 49:3ff80c4bc1be 558 state1=0;
nikitateggi 49:3ff80c4bc1be 559 state=13;
nikitateggi 49:3ff80c4bc1be 560 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 561 // EnableTouch();
nikitateggi 49:3ff80c4bc1be 562 break;
nikitateggi 49:3ff80c4bc1be 563
nikitateggi 49:3ff80c4bc1be 564 case 14 :
rashmivenkataramaiah 72:1f990fa8c516 565 //DisableTouch(); //state to delete SD card
nikitateggi 49:3ff80c4bc1be 566 delete_sdcard();
rashmivenkataramaiah 72:1f990fa8c516 567 //screen_sdcard_delete();
nikitateggi 49:3ff80c4bc1be 568 state1=0;
nikitateggi 49:3ff80c4bc1be 569 state= 12;
nikitateggi 49:3ff80c4bc1be 570 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 571 //EnableTouch();
nikitateggi 49:3ff80c4bc1be 572 break;
nikitateggi 49:3ff80c4bc1be 573
nikitateggi 49:3ff80c4bc1be 574 case 15 :
rashmivenkataramaiah 72:1f990fa8c516 575 // DisableTouch();
nikitateggi 51:1a4693774b60 576 gc.printf("Total Patients' data available : %d\n",get_filepid()); //state to read SD card
nikitateggi 50:b42238e7f46d 577 gc.printf("Enter the PID number");
nikitateggi 50:b42238e7f46d 578 read_sdcard_file();
rashmivenkataramaiah 72:1f990fa8c516 579 //screen_sdcard_read();
nikitateggi 49:3ff80c4bc1be 580 state1=0;
nikitateggi 49:3ff80c4bc1be 581 state= 12;
nikitateggi 49:3ff80c4bc1be 582 nstate=state;
rashmivenkataramaiah 72:1f990fa8c516 583 // EnableTouch();
nikitateggi 49:3ff80c4bc1be 584 break;
nikitateggi 31:0f67acfc6236 585
nikitateggi 1:8316c23ec6b9 586 default :
rashmivenkataramaiah 57:e82d4bd6b2c0 587
nikitateggi 1:8316c23ec6b9 588 state1=nstate1;
rashmivenkataramaiah 57:e82d4bd6b2c0 589 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 590
rashmivenkataramaiah 57:e82d4bd6b2c0 591
nikitateggi 0:c47fb0c1bbf6 592 }
rashmivenkataramaiah 57:e82d4bd6b2c0 593
rashmivenkataramaiah 57:e82d4bd6b2c0 594
rashmivenkataramaiah 57:e82d4bd6b2c0 595
rashmivenkataramaiah 41:1141a75eacc4 596 return state;
rashmivenkataramaiah 57:e82d4bd6b2c0 597
rashmivenkataramaiah 41:1141a75eacc4 598 }
rashmivenkataramaiah 41:1141a75eacc4 599
rashmivenkataramaiah 41:1141a75eacc4 600
rashmivenkataramaiah 41:1141a75eacc4 601 bool get_filecreated_status(void) //function to get file created status
rashmivenkataramaiah 41:1141a75eacc4 602 {
rashmivenkataramaiah 41:1141a75eacc4 603 return file_created_status;
rashmivenkataramaiah 41:1141a75eacc4 604 }
rashmivenkataramaiah 41:1141a75eacc4 605
rashmivenkataramaiah 41:1141a75eacc4 606 void set_filecreated_status(void) //function to set file created status
rashmivenkataramaiah 41:1141a75eacc4 607 {
rashmivenkataramaiah 42:c81673b04b6a 608 file_created_status = true;
rashmivenkataramaiah 41:1141a75eacc4 609 }
rashmivenkataramaiah 41:1141a75eacc4 610
rashmivenkataramaiah 41:1141a75eacc4 611
rashmivenkataramaiah 41:1141a75eacc4 612 void clear_filecreated_status(void) //function to clear file created status
rashmivenkataramaiah 41:1141a75eacc4 613 {
rashmivenkataramaiah 42:c81673b04b6a 614 file_created_status = false;
rashmivenkataramaiah 42:c81673b04b6a 615 }
rashmivenkataramaiah 42:c81673b04b6a 616
rashmivenkataramaiah 43:85a7f399cb9d 617 void increment_filepid (void) //increment pid if a test is completed
rashmivenkataramaiah 42:c81673b04b6a 618 {
rashmivenkataramaiah 43:85a7f399cb9d 619 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 620
rashmivenkataramaiah 42:c81673b04b6a 621 //set_filecreated_status(); //set it to make it append mode
rashmivenkataramaiah 42:c81673b04b6a 622 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 623 filepid_btpid[0] = filepid_btpid[0] + 1; //increment it by 1
rashmivenkataramaiah 42:c81673b04b6a 624 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 625
rashmivenkataramaiah 42:c81673b04b6a 626 }
rashmivenkataramaiah 42:c81673b04b6a 627
rashmivenkataramaiah 43:85a7f399cb9d 628 void increment_btpid (void) //increment pid if a test is completed
rashmivenkataramaiah 43:85a7f399cb9d 629 {
rashmivenkataramaiah 43:85a7f399cb9d 630 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 43:85a7f399cb9d 631
rashmivenkataramaiah 43:85a7f399cb9d 632 //set_filecreated_status(); //set it to make it append mode
rashmivenkataramaiah 43:85a7f399cb9d 633 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 634 filepid_btpid[1] = filepid_btpid[1] + 1; //increment it by 1
rashmivenkataramaiah 43:85a7f399cb9d 635 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 43:85a7f399cb9d 636
rashmivenkataramaiah 43:85a7f399cb9d 637 }
rashmivenkataramaiah 43:85a7f399cb9d 638
rashmivenkataramaiah 42:c81673b04b6a 639 uint32_t get_filepid(void)
rashmivenkataramaiah 42:c81673b04b6a 640 {
rashmivenkataramaiah 42:c81673b04b6a 641 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 642 uint32_t filepid = 0;
rashmivenkataramaiah 42:c81673b04b6a 643
rashmivenkataramaiah 42:c81673b04b6a 644 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 645 filepid = filepid_btpid[0];
rashmivenkataramaiah 42:c81673b04b6a 646 return filepid;
rashmivenkataramaiah 42:c81673b04b6a 647
rashmivenkataramaiah 42:c81673b04b6a 648 }
rashmivenkataramaiah 42:c81673b04b6a 649
rashmivenkataramaiah 42:c81673b04b6a 650 void store_filepid(uint32_t pid)
rashmivenkataramaiah 42:c81673b04b6a 651 {
rashmivenkataramaiah 42:c81673b04b6a 652 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 653 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 654 filepid_btpid[0] = pid;
rashmivenkataramaiah 42:c81673b04b6a 655 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 656
rashmivenkataramaiah 42:c81673b04b6a 657 }
rashmivenkataramaiah 42:c81673b04b6a 658
rashmivenkataramaiah 42:c81673b04b6a 659 uint32_t get_btpid(void)
rashmivenkataramaiah 42:c81673b04b6a 660 {
rashmivenkataramaiah 42:c81673b04b6a 661 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 662 uint32_t btpid = 0;
rashmivenkataramaiah 42:c81673b04b6a 663
rashmivenkataramaiah 42:c81673b04b6a 664 sd_read(filepid_btpid); //read pid from sd card
nikitateggi 45:067673dae242 665 btpid = filepid_btpid[1];
rashmivenkataramaiah 42:c81673b04b6a 666 return btpid;
rashmivenkataramaiah 42:c81673b04b6a 667
rashmivenkataramaiah 42:c81673b04b6a 668 }
rashmivenkataramaiah 42:c81673b04b6a 669
rashmivenkataramaiah 42:c81673b04b6a 670 void store_btpid(uint32_t bt_pid)
rashmivenkataramaiah 42:c81673b04b6a 671 {
rashmivenkataramaiah 42:c81673b04b6a 672 //uint32_t filepid_btpid[2] = {};
rashmivenkataramaiah 42:c81673b04b6a 673
rashmivenkataramaiah 42:c81673b04b6a 674 sd_read(filepid_btpid); //read pid from sd card
rashmivenkataramaiah 42:c81673b04b6a 675 filepid_btpid[1] = bt_pid;
rashmivenkataramaiah 42:c81673b04b6a 676 sd_write(filepid_btpid); //write it back to sd card
rashmivenkataramaiah 42:c81673b04b6a 677
rashmivenkataramaiah 42:c81673b04b6a 678 }
rashmivenkataramaiah 42:c81673b04b6a 679
nikitateggi 45:067673dae242 680
nikitateggi 44:05dbea558c9a 681 uint32_t get_timer_bluetooth()
nikitateggi 44:05dbea558c9a 682 {
nikitateggi 45:067673dae242 683 return timer_bt.read_ms();
nikitateggi 44:05dbea558c9a 684 }
nikitateggi 45:067673dae242 685
nikitateggi 45:067673dae242 686 void battery_status_monitoring()
nikitateggi 45:067673dae242 687 {
nikitateggi 45:067673dae242 688 if(timer_battery.read_ms() > BATTERY_TIMER_VALUE )
nikitateggi 45:067673dae242 689 {
nikitateggi 45:067673dae242 690 battery_monitor();
nikitateggi 45:067673dae242 691 timer_battery.reset();
nikitateggi 45:067673dae242 692 }
nikitateggi 49:3ff80c4bc1be 693 }
nikitateggi 49:3ff80c4bc1be 694
nikitateggi 51:1a4693774b60 695 bool read_debug_status()
nikitateggi 51:1a4693774b60 696 {
nikitateggi 52:7d9ff7781bdc 697 // gc.printf("debug_mode=%d\n",debug_mode);
nikitateggi 51:1a4693774b60 698 return debug_mode;
nikitateggi 51:1a4693774b60 699 }
nikitateggi 51:1a4693774b60 700
nikitateggi 51:1a4693774b60 701 void debug_status_monitoring()
nikitateggi 51:1a4693774b60 702 {
nikitateggi 51:1a4693774b60 703 if (gc.readable()) // check for the user input
nikitateggi 51:1a4693774b60 704 {
nikitateggi 51:1a4693774b60 705
nikitateggi 51:1a4693774b60 706 while (gc.readable()!= '\n') // read till the newline
nikitateggi 51:1a4693774b60 707 {
nikitateggi 51:1a4693774b60 708
nikitateggi 51:1a4693774b60 709 gc.scanf("%s", debug_message_rx); // store the message typed in buffer
nikitateggi 51:1a4693774b60 710 gc.printf("%s", debug_message_rx);
nikitateggi 51:1a4693774b60 711 break;
nikitateggi 51:1a4693774b60 712 }
nikitateggi 51:1a4693774b60 713
nikitateggi 51:1a4693774b60 714
nikitateggi 51:1a4693774b60 715 if (strcmp(debug_message_rx, debug_message) == 0) // compare the message with the required one
nikitateggi 51:1a4693774b60 716 {
nikitateggi 54:f2a413d5dffd 717 debug_mode = true; // enable the debug mode status
nikitateggi 51:1a4693774b60 718 gc.printf("entered into debug mode\n");
nikitateggi 51:1a4693774b60 719 timer_debug.reset();
nikitateggi 51:1a4693774b60 720 timer_debug.start(); // timer is started in orede
nikitateggi 51:1a4693774b60 721 }
nikitateggi 51:1a4693774b60 722 }
nikitateggi 51:1a4693774b60 723
nikitateggi 51:1a4693774b60 724 }
nikitateggi 51:1a4693774b60 725
nikitateggi 51:1a4693774b60 726 uint32_t get_timer_debug() // timer for enabling debug option
nikitateggi 51:1a4693774b60 727 {
nikitateggi 51:1a4693774b60 728 if(timer_debug.read_ms()>TIMER_ENABLE_DEBUG_MODE)
nikitateggi 51:1a4693774b60 729 {
nikitateggi 51:1a4693774b60 730 timer_debug.stop();
nikitateggi 51:1a4693774b60 731 }
nikitateggi 51:1a4693774b60 732 return timer_debug.read_ms();
nikitateggi 51:1a4693774b60 733 }
nikitateggi 51:1a4693774b60 734
rashmivenkataramaiah 57:e82d4bd6b2c0 735 // this command response to all the remaining command which doesn't have any data in response
rashmivenkataramaiah 57:e82d4bd6b2c0 736 void poc2p0_send_device_msg_res(uint8_t response_cmd)
rashmivenkataramaiah 57:e82d4bd6b2c0 737 {
rashmivenkataramaiah 72:1f990fa8c516 738
rashmivenkataramaiah 57:e82d4bd6b2c0 739 poc2p0_device_msg_response poc2p0_device_msg_res = {0x00u};
nikitateggi 51:1a4693774b60 740
rashmivenkataramaiah 57:e82d4bd6b2c0 741 poc2p0_device_msg_res.sos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 742 poc2p0_device_msg_res.cmd = response_cmd;
rashmivenkataramaiah 57:e82d4bd6b2c0 743 poc2p0_device_msg_res.length = ZERO_DATA_LEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 744
rashmivenkataramaiah 57:e82d4bd6b2c0 745 poc2p0_device_msg_res.eos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 746
rashmivenkataramaiah 59:dadb88794375 747 poc2p0_device_msg_res.chksum = checksum_struct((uint8_t *)&poc2p0_device_msg_res.cmd, (sizeof(poc2p0_device_msg_res)-1));
rashmivenkataramaiah 72:1f990fa8c516 748
rashmivenkataramaiah 70:f2e544a5645b 749 blue1.printf("%02x",poc2p0_device_msg_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 750 blue1.printf("%02x",poc2p0_device_msg_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 751 blue1.printf("%02x",poc2p0_device_msg_res.length);
rashmivenkataramaiah 70:f2e544a5645b 752 blue1.printf("%02x",poc2p0_device_msg_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 753 blue1.printf("%02x",poc2p0_device_msg_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 754 blue1.printf("\n");
rashmivenkataramaiah 65:8acfba0ce49a 755
rashmivenkataramaiah 70:f2e544a5645b 756 gc.printf("%02x",poc2p0_device_msg_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 757 gc.printf("%02x",poc2p0_device_msg_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 758 gc.printf("%02x",poc2p0_device_msg_res.length);
rashmivenkataramaiah 70:f2e544a5645b 759 gc.printf("%02x",poc2p0_device_msg_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 760 gc.printf("%02x",poc2p0_device_msg_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 761 gc.printf("\n");
rashmivenkataramaiah 57:e82d4bd6b2c0 762 }
rashmivenkataramaiah 57:e82d4bd6b2c0 763
rashmivenkataramaiah 57:e82d4bd6b2c0 764 // this command response to heartbeat message request send by bluetooth device
rashmivenkataramaiah 57:e82d4bd6b2c0 765 void poc2p0_send_device_heartbeat_msg_res(uint8_t curr_touch_state)
rashmivenkataramaiah 72:1f990fa8c516 766 {
rashmivenkataramaiah 57:e82d4bd6b2c0 767 poc2p0_device_heartbeat_response poc2p0_device_heartbeat_res = {0x00u};
rashmivenkataramaiah 65:8acfba0ce49a 768
rashmivenkataramaiah 57:e82d4bd6b2c0 769 // RTC operations
rashmivenkataramaiah 57:e82d4bd6b2c0 770 time_t epoch_time_glc; //A copy of time_t by name epoch_time_bp is created
rashmivenkataramaiah 57:e82d4bd6b2c0 771 struct tm * ptr_time_info_glc; // Sturucture copy of tm is created
rashmivenkataramaiah 57:e82d4bd6b2c0 772
rashmivenkataramaiah 57:e82d4bd6b2c0 773 epoch_time_glc = rtc_read(); // time is got from get epoch function.
rashmivenkataramaiah 57:e82d4bd6b2c0 774 ptr_time_info_glc = localtime(&epoch_time_glc); // Structure accepts the time in local format from "time_t" type.
rashmivenkataramaiah 57:e82d4bd6b2c0 775
rashmivenkataramaiah 57:e82d4bd6b2c0 776 poc2p0_device_heartbeat_res.sos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 777 poc2p0_device_heartbeat_res.cmd = HEARTBEAT_SYNC_MSG_ACCEPTED_RES;
rashmivenkataramaiah 57:e82d4bd6b2c0 778 poc2p0_device_heartbeat_res.length = HEARTBEAT_DATA_LEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 779
rashmivenkataramaiah 57:e82d4bd6b2c0 780 // device ID
rashmivenkataramaiah 57:e82d4bd6b2c0 781 poc2p0_device_heartbeat_res.did = eprom_read_8(12);
rashmivenkataramaiah 57:e82d4bd6b2c0 782
rashmivenkataramaiah 57:e82d4bd6b2c0 783 // patient ID
rashmivenkataramaiah 57:e82d4bd6b2c0 784 if (curr_touch_state == TOUCH_STATE_TEST_SCREEN)
rashmivenkataramaiah 57:e82d4bd6b2c0 785 {
rashmivenkataramaiah 69:128e3b467820 786 memcpy(poc2p0_device_heartbeat_res.pid,get_userpid(),sizeof(poc2p0_device_heartbeat_res.pid));
rashmivenkataramaiah 68:41da0a3ba038 787 gc.printf("poc2p0_device_heartbeat_res.pid = %s\n",poc2p0_device_heartbeat_res.pid);
rashmivenkataramaiah 69:128e3b467820 788
rashmivenkataramaiah 70:f2e544a5645b 789 //ascii_to_hex((const char *)poc2p0_device_heartbeat_res.pid, sizeof(poc2p0_device_heartbeat_res.pid));
rashmivenkataramaiah 69:128e3b467820 790 //gc.printf("poc2p0_device_heartbeat_res.pid = %2x\n",poc2p0_device_heartbeat_res.pid);
rashmivenkataramaiah 70:f2e544a5645b 791 //gc.printf("\n");
rashmivenkataramaiah 69:128e3b467820 792
rashmivenkataramaiah 70:f2e544a5645b 793 //for (uint8_t i = 0; i < sizeof(poc2p0_device_heartbeat_res.pid); i++)
rashmivenkataramaiah 70:f2e544a5645b 794 //{
rashmivenkataramaiah 70:f2e544a5645b 795 // gc.printf("%02x",poc2p0_device_heartbeat_res.pid[i]);
rashmivenkataramaiah 70:f2e544a5645b 796 //}
rashmivenkataramaiah 70:f2e544a5645b 797 //gc.printf("\n");
rashmivenkataramaiah 57:e82d4bd6b2c0 798 }
rashmivenkataramaiah 71:8f1851c556d6 799 else
rashmivenkataramaiah 57:e82d4bd6b2c0 800 {
rashmivenkataramaiah 71:8f1851c556d6 801 memset(poc2p0_device_heartbeat_res.pid,'0',sizeof(poc2p0_device_heartbeat_res.pid));
rashmivenkataramaiah 71:8f1851c556d6 802 gc.printf("poc2p0_device_heartbeat_res.pid = %s\n",poc2p0_device_heartbeat_res.pid);
rashmivenkataramaiah 71:8f1851c556d6 803
rashmivenkataramaiah 57:e82d4bd6b2c0 804 }
rashmivenkataramaiah 57:e82d4bd6b2c0 805
rashmivenkataramaiah 57:e82d4bd6b2c0 806 // device current date and time
rashmivenkataramaiah 57:e82d4bd6b2c0 807 poc2p0_device_heartbeat_res.date_time.date = (uint8_t)(*ptr_time_info_glc).tm_mday;
rashmivenkataramaiah 57:e82d4bd6b2c0 808 poc2p0_device_heartbeat_res.date_time.month = (uint8_t)(*ptr_time_info_glc).tm_mon+1;
rashmivenkataramaiah 57:e82d4bd6b2c0 809 poc2p0_device_heartbeat_res.date_time.year = (uint8_t)(*ptr_time_info_glc).tm_year-100;
rashmivenkataramaiah 57:e82d4bd6b2c0 810 poc2p0_device_heartbeat_res.date_time.hour = (uint8_t)(*ptr_time_info_glc).tm_hour;
rashmivenkataramaiah 57:e82d4bd6b2c0 811 poc2p0_device_heartbeat_res.date_time.mins = (uint8_t)(*ptr_time_info_glc).tm_min;
rashmivenkataramaiah 57:e82d4bd6b2c0 812 poc2p0_device_heartbeat_res.date_time.sec = (uint8_t)(*ptr_time_info_glc).tm_sec;
rashmivenkataramaiah 57:e82d4bd6b2c0 813
rashmivenkataramaiah 57:e82d4bd6b2c0 814 // device state
rashmivenkataramaiah 66:d7fc45e328d0 815 if (curr_touch_state == TOUCH_STATE_HOME_SCREEN)
rashmivenkataramaiah 57:e82d4bd6b2c0 816 {
rashmivenkataramaiah 66:d7fc45e328d0 817 poc2p0_device_heartbeat_res.device_state = HOME_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 818 }
rashmivenkataramaiah 57:e82d4bd6b2c0 819 else
rashmivenkataramaiah 57:e82d4bd6b2c0 820 {
rashmivenkataramaiah 66:d7fc45e328d0 821 poc2p0_device_heartbeat_res.device_state = TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 822 }
rashmivenkataramaiah 57:e82d4bd6b2c0 823
rashmivenkataramaiah 57:e82d4bd6b2c0 824 //poc2p0_device_heartbeat_res.device_state = device_state;
rashmivenkataramaiah 57:e82d4bd6b2c0 825
rashmivenkataramaiah 57:e82d4bd6b2c0 826 // device battery status
rashmivenkataramaiah 57:e82d4bd6b2c0 827 poc2p0_device_heartbeat_res.battery_status = get_battery_status();
rashmivenkataramaiah 57:e82d4bd6b2c0 828
rashmivenkataramaiah 57:e82d4bd6b2c0 829 poc2p0_device_heartbeat_res.eos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 830
rashmivenkataramaiah 57:e82d4bd6b2c0 831 // calculate chksum
rashmivenkataramaiah 59:dadb88794375 832 poc2p0_device_heartbeat_res.chksum = checksum_struct((uint8_t *)&poc2p0_device_heartbeat_res.cmd, (sizeof(poc2p0_device_heartbeat_res)-1));
rashmivenkataramaiah 65:8acfba0ce49a 833
rashmivenkataramaiah 70:f2e544a5645b 834 blue1.printf("%02x",poc2p0_device_heartbeat_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 835 blue1.printf("%02x",poc2p0_device_heartbeat_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 836 blue1.printf("%02x",poc2p0_device_heartbeat_res.length);
rashmivenkataramaiah 70:f2e544a5645b 837 blue1.printf("%02x",poc2p0_device_heartbeat_res.did);
rashmivenkataramaiah 71:8f1851c556d6 838 //blue1.printf("%010x",poc2p0_device_heartbeat_res.pid);
rashmivenkataramaiah 71:8f1851c556d6 839 for (uint8_t i = 0; i < sizeof(poc2p0_device_heartbeat_res.pid); i++)
rashmivenkataramaiah 71:8f1851c556d6 840 {
rashmivenkataramaiah 71:8f1851c556d6 841 blue1.printf("%02x",poc2p0_device_heartbeat_res.pid[i]);
rashmivenkataramaiah 71:8f1851c556d6 842 }
rashmivenkataramaiah 70:f2e544a5645b 843 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.date);
rashmivenkataramaiah 70:f2e544a5645b 844 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.month);
rashmivenkataramaiah 70:f2e544a5645b 845 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.year);
rashmivenkataramaiah 70:f2e544a5645b 846 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.hour);
rashmivenkataramaiah 70:f2e544a5645b 847 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.mins);
rashmivenkataramaiah 70:f2e544a5645b 848 blue1.printf("%02x",poc2p0_device_heartbeat_res.date_time.sec);
rashmivenkataramaiah 70:f2e544a5645b 849 blue1.printf("%02x",poc2p0_device_heartbeat_res.device_state);
rashmivenkataramaiah 70:f2e544a5645b 850 blue1.printf("%02x",poc2p0_device_heartbeat_res.battery_status);
rashmivenkataramaiah 70:f2e544a5645b 851 blue1.printf("%02x",poc2p0_device_heartbeat_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 852 blue1.printf("%02x",poc2p0_device_heartbeat_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 853 blue1.printf("\n");
rashmivenkataramaiah 65:8acfba0ce49a 854
rashmivenkataramaiah 70:f2e544a5645b 855 gc.printf("%02x",poc2p0_device_heartbeat_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 856 gc.printf("%02x",poc2p0_device_heartbeat_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 857 gc.printf("%02x",poc2p0_device_heartbeat_res.length);
rashmivenkataramaiah 70:f2e544a5645b 858 gc.printf("%02x",poc2p0_device_heartbeat_res.did);
rashmivenkataramaiah 71:8f1851c556d6 859 //gc.printf("%010x",poc2p0_device_heartbeat_res.pid);
rashmivenkataramaiah 71:8f1851c556d6 860 for (uint8_t i = 0; i < sizeof(poc2p0_device_heartbeat_res.pid); i++)
rashmivenkataramaiah 71:8f1851c556d6 861 {
rashmivenkataramaiah 71:8f1851c556d6 862 gc.printf("%02x",poc2p0_device_heartbeat_res.pid[i]);
rashmivenkataramaiah 71:8f1851c556d6 863 }
rashmivenkataramaiah 70:f2e544a5645b 864 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.date);
rashmivenkataramaiah 70:f2e544a5645b 865 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.month);
rashmivenkataramaiah 70:f2e544a5645b 866 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.year);
rashmivenkataramaiah 70:f2e544a5645b 867 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.hour);
rashmivenkataramaiah 70:f2e544a5645b 868 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.mins);
rashmivenkataramaiah 70:f2e544a5645b 869 gc.printf("%02x",poc2p0_device_heartbeat_res.date_time.sec);
rashmivenkataramaiah 70:f2e544a5645b 870 gc.printf("%02x",poc2p0_device_heartbeat_res.device_state);
rashmivenkataramaiah 70:f2e544a5645b 871 gc.printf("%02x",poc2p0_device_heartbeat_res.battery_status);
rashmivenkataramaiah 70:f2e544a5645b 872 gc.printf("%02x",poc2p0_device_heartbeat_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 873 gc.printf("%02x",poc2p0_device_heartbeat_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 874 gc.printf("\n");
rashmivenkataramaiah 57:e82d4bd6b2c0 875 }
rashmivenkataramaiah 57:e82d4bd6b2c0 876
rashmivenkataramaiah 57:e82d4bd6b2c0 877 // this command send final test result response to bluetooth device
rashmivenkataramaiah 57:e82d4bd6b2c0 878 void poc2p0_send_device_test_result_res(uint8_t response_cmd, uint32_t result)
rashmivenkataramaiah 72:1f990fa8c516 879 {
rashmivenkataramaiah 57:e82d4bd6b2c0 880 poc2p0_device_tst_result_response poc2p0_device_tst_result_res = {0x00u};
rashmivenkataramaiah 57:e82d4bd6b2c0 881
rashmivenkataramaiah 57:e82d4bd6b2c0 882 poc2p0_device_tst_result_res.sos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 883 poc2p0_device_tst_result_res.cmd = response_cmd;
rashmivenkataramaiah 57:e82d4bd6b2c0 884 poc2p0_device_tst_result_res.length = DEVICE_RESULT_DATA_LEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 885
rashmivenkataramaiah 57:e82d4bd6b2c0 886 // device result provided by device
rashmivenkataramaiah 57:e82d4bd6b2c0 887 poc2p0_device_tst_result_res.test_result = result;
rashmivenkataramaiah 57:e82d4bd6b2c0 888
rashmivenkataramaiah 57:e82d4bd6b2c0 889 poc2p0_device_tst_result_res.eos = SOS_EOS;
rashmivenkataramaiah 57:e82d4bd6b2c0 890
rashmivenkataramaiah 59:dadb88794375 891 poc2p0_device_tst_result_res.chksum = checksum_struct((uint8_t *)&poc2p0_device_tst_result_res.cmd, (sizeof(poc2p0_device_tst_result_res)-1));
rashmivenkataramaiah 70:f2e544a5645b 892
rashmivenkataramaiah 70:f2e544a5645b 893 blue1.printf("%02x",poc2p0_device_tst_result_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 894 blue1.printf("%02x",poc2p0_device_tst_result_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 895 blue1.printf("%02x",poc2p0_device_tst_result_res.length);
rashmivenkataramaiah 70:f2e544a5645b 896 blue1.printf("%08x",poc2p0_device_tst_result_res.test_result);
rashmivenkataramaiah 70:f2e544a5645b 897 blue1.printf("%02x",poc2p0_device_tst_result_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 898 blue1.printf("%02x",poc2p0_device_tst_result_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 899 blue1.printf("\n");
rashmivenkataramaiah 70:f2e544a5645b 900
rashmivenkataramaiah 70:f2e544a5645b 901 gc.printf("%02x",poc2p0_device_tst_result_res.sos);
rashmivenkataramaiah 70:f2e544a5645b 902 gc.printf("%02x",poc2p0_device_tst_result_res.cmd);
rashmivenkataramaiah 70:f2e544a5645b 903 gc.printf("%02x",poc2p0_device_tst_result_res.length);
rashmivenkataramaiah 70:f2e544a5645b 904 gc.printf("%08x",poc2p0_device_tst_result_res.test_result);
rashmivenkataramaiah 70:f2e544a5645b 905 gc.printf("%02x",poc2p0_device_tst_result_res.eos);
rashmivenkataramaiah 70:f2e544a5645b 906 gc.printf("%02x",poc2p0_device_tst_result_res.chksum);
rashmivenkataramaiah 70:f2e544a5645b 907 gc.printf("\n");
rashmivenkataramaiah 57:e82d4bd6b2c0 908 }
rashmivenkataramaiah 65:8acfba0ce49a 909
rashmivenkataramaiah 67:7e07cdb1b150 910
rashmivenkataramaiah 68:41da0a3ba038 911 void set_userpid(char *user_pid)
rashmivenkataramaiah 68:41da0a3ba038 912 {
rashmivenkataramaiah 72:1f990fa8c516 913 char pid_buffer[20];
rashmivenkataramaiah 72:1f990fa8c516 914 char test_screen_chk[3];
rashmivenkataramaiah 72:1f990fa8c516 915
rashmivenkataramaiah 68:41da0a3ba038 916 //char user_pid_buffer[10] = {0};
rashmivenkataramaiah 68:41da0a3ba038 917 if (gc.readable()!= '\n') // reading string from putty
rashmivenkataramaiah 68:41da0a3ba038 918 //if (blue.readable()!= NULL) // reading string from bluetooth
rashmivenkataramaiah 68:41da0a3ba038 919 {
rashmivenkataramaiah 68:41da0a3ba038 920 //blue.scanf("%10s",user_pid);
rashmivenkataramaiah 72:1f990fa8c516 921 gc.scanf("%20s",pid_buffer);
rashmivenkataramaiah 72:1f990fa8c516 922 }
rashmivenkataramaiah 72:1f990fa8c516 923 memcpy(test_screen_chk,pid_buffer+1,2);
rashmivenkataramaiah 72:1f990fa8c516 924 //if(test_screen_chk == "73")
rashmivenkataramaiah 72:1f990fa8c516 925 memcpy(user_pid,pid_buffer+6,10);
rashmivenkataramaiah 72:1f990fa8c516 926 //else
rashmivenkataramaiah 72:1f990fa8c516 927 // gc.printf("Not a valid PID\n");
rashmivenkataramaiah 68:41da0a3ba038 928 }
rashmivenkataramaiah 68:41da0a3ba038 929
rashmivenkataramaiah 69:128e3b467820 930
rashmivenkataramaiah 71:8f1851c556d6 931
rashmivenkataramaiah 68:41da0a3ba038 932
rashmivenkataramaiah 69:128e3b467820 933
rashmivenkataramaiah 69:128e3b467820 934
rashmivenkataramaiah 68:41da0a3ba038 935 void ascii_to_hex(const char *input_buf, uint8_t len)
rashmivenkataramaiah 68:41da0a3ba038 936 {
rashmivenkataramaiah 68:41da0a3ba038 937 uint8_t i = 0;
rashmivenkataramaiah 68:41da0a3ba038 938 uint8_t j = 0;
rashmivenkataramaiah 68:41da0a3ba038 939 uint8_t temp_ms_nibble = 0;
rashmivenkataramaiah 68:41da0a3ba038 940 uint8_t temp_ls_nibble = 0;
rashmivenkataramaiah 68:41da0a3ba038 941 uint8_t temp_buf[len];
rashmivenkataramaiah 69:128e3b467820 942 gc.printf("\n\r len = %d", len);
rashmivenkataramaiah 69:128e3b467820 943 for (i = 0,j = 0; i < len; i+=1, ++j)
rashmivenkataramaiah 68:41da0a3ba038 944 {
rashmivenkataramaiah 68:41da0a3ba038 945 temp_ms_nibble = input_buf[i] > '9' ? (input_buf[i]|32) - 'a' + 10 : input_buf[i] - '0';
rashmivenkataramaiah 69:128e3b467820 946
rashmivenkataramaiah 71:8f1851c556d6 947 //gc.printf("\n\r temp_ms_nibble = %2x", temp_ms_nibble);
rashmivenkataramaiah 69:128e3b467820 948
rashmivenkataramaiah 69:128e3b467820 949 //temp_ls_nibble = input_buf[i+1] > '9' ? (input_buf[i+1]|32) - 'a' + 10 : input_buf[i+1] - '0';
rashmivenkataramaiah 69:128e3b467820 950 //gc.printf("\n\r temp_ls_nibble = %2x", temp_ls_nibble);
rashmivenkataramaiah 69:128e3b467820 951
rashmivenkataramaiah 69:128e3b467820 952 //temp_buf[j] = ((temp_ms_nibble << 4)) | temp_ls_nibble;
rashmivenkataramaiah 69:128e3b467820 953 temp_buf[j] = temp_ms_nibble ;
rashmivenkataramaiah 71:8f1851c556d6 954 //gc.printf("\n\r msg_SOS = %02x", temp_buf[j]);
rashmivenkataramaiah 68:41da0a3ba038 955 }
rashmivenkataramaiah 68:41da0a3ba038 956
rashmivenkataramaiah 68:41da0a3ba038 957 memcpy((void *)input_buf,&temp_buf, len);
rashmivenkataramaiah 68:41da0a3ba038 958
rashmivenkataramaiah 69:128e3b467820 959
rashmivenkataramaiah 68:41da0a3ba038 960 return;
rashmivenkataramaiah 68:41da0a3ba038 961 }
rashmivenkataramaiah 69:128e3b467820 962
rashmivenkataramaiah 72:1f990fa8c516 963 static void ecg_bp_countdown(void)
rashmivenkataramaiah 72:1f990fa8c516 964 {
rashmivenkataramaiah 72:1f990fa8c516 965 for(uint8_t i = 5; i <= 0; i--)
rashmivenkataramaiah 72:1f990fa8c516 966 {
rashmivenkataramaiah 72:1f990fa8c516 967 wait(1);
rashmivenkataramaiah 72:1f990fa8c516 968 }
rashmivenkataramaiah 72:1f990fa8c516 969 }
rashmivenkataramaiah 69:128e3b467820 970
rashmivenkataramaiah 72:1f990fa8c516 971 static void read_device_id(void) // reading device id from eeprom
rashmivenkataramaiah 72:1f990fa8c516 972 {
rashmivenkataramaiah 72:1f990fa8c516 973
rashmivenkataramaiah 72:1f990fa8c516 974 device_id = eprom_read_8(12); // reading from eeprom location
rashmivenkataramaiah 72:1f990fa8c516 975 gc.printf("device_id = %d\n", device_id); //read did from eeprom
rashmivenkataramaiah 72:1f990fa8c516 976 if((get_Error()!= 0) || (device_id == 0xFF)) // checking for error
rashmivenkataramaiah 72:1f990fa8c516 977 {
rashmivenkataramaiah 72:1f990fa8c516 978 device_id = eprom_read_8(12) ;
rashmivenkataramaiah 72:1f990fa8c516 979 if(get_Error()!= 0 || (device_id == 0xFF))
rashmivenkataramaiah 72:1f990fa8c516 980 {
rashmivenkataramaiah 72:1f990fa8c516 981 gc.printf("database error!\n"); // database error
rashmivenkataramaiah 72:1f990fa8c516 982 //return did;
rashmivenkataramaiah 72:1f990fa8c516 983 }
rashmivenkataramaiah 72:1f990fa8c516 984 }
rashmivenkataramaiah 72:1f990fa8c516 985
rashmivenkataramaiah 72:1f990fa8c516 986 }
rashmivenkataramaiah 72:1f990fa8c516 987
rashmivenkataramaiah 72:1f990fa8c516 988 uint8_t get_did()
rashmivenkataramaiah 72:1f990fa8c516 989 {
rashmivenkataramaiah 72:1f990fa8c516 990 return device_id;
rashmivenkataramaiah 72:1f990fa8c516 991 }
rashmivenkataramaiah 72:1f990fa8c516 992
rashmivenkataramaiah 72:1f990fa8c516 993 void sd_card_status(void) // checking the status of the sd card initialization
rashmivenkataramaiah 72:1f990fa8c516 994 {
rashmivenkataramaiah 72:1f990fa8c516 995 uint8_t error_sd= 0;
rashmivenkataramaiah 72:1f990fa8c516 996 error_sd = dummy_file_create_delete(); // creating the dummy file
rashmivenkataramaiah 72:1f990fa8c516 997
rashmivenkataramaiah 72:1f990fa8c516 998 if( error_sd == 1) // if error = 1 // error in opening file
rashmivenkataramaiah 72:1f990fa8c516 999 {
rashmivenkataramaiah 72:1f990fa8c516 1000 error_sd = dummy_file_create_delete();
rashmivenkataramaiah 72:1f990fa8c516 1001 if( error_sd == 1)
rashmivenkataramaiah 72:1f990fa8c516 1002 {
rashmivenkataramaiah 72:1f990fa8c516 1003 gc.printf("database error!\n"); // dispaly data base error
rashmivenkataramaiah 72:1f990fa8c516 1004 //database_error();
rashmivenkataramaiah 72:1f990fa8c516 1005
rashmivenkataramaiah 72:1f990fa8c516 1006 }
rashmivenkataramaiah 72:1f990fa8c516 1007 }
rashmivenkataramaiah 72:1f990fa8c516 1008
rashmivenkataramaiah 72:1f990fa8c516 1009 }
rashmivenkataramaiah 72:1f990fa8c516 1010