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 Nov 23 12:11:46 2017 +0000
Revision:
69:128e3b467820
Parent:
68:41da0a3ba038
Child:
70:f2e544a5645b
Modification in ASCII to hex conversion in main.cpp

Who changed what in which revision?

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