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:
Fri Nov 17 12:08:45 2017 +0000
Revision:
65:8acfba0ce49a
Parent:
64:5a76653792e8
Child:
66:d7fc45e328d0
Modification in sending data to BT; Modified structure of Heartbeat message

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