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:
Tue Dec 12 11:13:10 2017 +0000
Revision:
76:611154b3b597
Parent:
75:0feb6f993562
made separate function for hex to char

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 19:1650bbc923cc 1 #include "mbed.h"
nikitateggi 19:1650bbc923cc 2 #include "sdcard.h"
nikitateggi 19:1650bbc923cc 3 #include "struct.h"
nikitateggi 44:05dbea558c9a 4 #include "eeprom_pgm.h"
nikitateggi 44:05dbea558c9a 5 #include "main.h"
nikitateggi 52:7d9ff7781bdc 6
nikitateggi 45:067673dae242 7 #define ACK 0x00 /// changed //16/06 #define all the values removing structure
nikitateggi 45:067673dae242 8 #define START_OF_FILE 0x01
nikitateggi 45:067673dae242 9 #define END_OF_FILE 0x02
nikitateggi 45:067673dae242 10 #define DATA_TRFR 0x03
nikitateggi 45:067673dae242 11 #define NACK 0xFF
nikitateggi 45:067673dae242 12 #define SOS 0xc0
nikitateggi 45:067673dae242 13 #define EOS 0xc0
nikitateggi 45:067673dae242 14 #define NO_OF_SAMPLES 600 //changed the buffer size from 150- 22/7/17- suhasini
nikitateggi 45:067673dae242 15 #define CHKSUM 0x80
nikitateggi 45:067673dae242 16 #define STRUCTURE_LENGTH 26
rashmivenkataramaiah 57:e82d4bd6b2c0 17 #define POC2P0_BT_RX_MSG_LEN 0x05U
rashmivenkataramaiah 57:e82d4bd6b2c0 18
rashmivenkataramaiah 57:e82d4bd6b2c0 19 typedef struct __attribute__((__packed__))
rashmivenkataramaiah 57:e82d4bd6b2c0 20 {
rashmivenkataramaiah 57:e82d4bd6b2c0 21 uint8_t sos;
rashmivenkataramaiah 57:e82d4bd6b2c0 22 uint8_t cmd;
rashmivenkataramaiah 57:e82d4bd6b2c0 23 uint8_t length;
rashmivenkataramaiah 57:e82d4bd6b2c0 24 uint8_t eos;
rashmivenkataramaiah 57:e82d4bd6b2c0 25 uint8_t chksum;
rashmivenkataramaiah 57:e82d4bd6b2c0 26
rashmivenkataramaiah 57:e82d4bd6b2c0 27 }poc2p0_bluetooth_msg_request;
rashmivenkataramaiah 57:e82d4bd6b2c0 28
rashmivenkataramaiah 59:dadb88794375 29 poc2p0_bluetooth_msg_request poc2p0_bt_msg_req = {0};
rashmivenkataramaiah 76:611154b3b597 30 //static void poc2p0_ascii_to_hex(const uint8_t input_buffer[], uint8_t len);
rashmivenkataramaiah 76:611154b3b597 31 static void poc2p0_ascii_to_hex(const uint8_t input_buf[], uint8_t len_ip_buf, uint8_t output_buf[], uint8_t len_op_buf);
rashmivenkataramaiah 76:611154b3b597 32 static void hex_to_char(const char input_buffer[]);
rashmivenkataramaiah 59:dadb88794375 33
rashmivenkataramaiah 67:7e07cdb1b150 34
nikitateggi 22:ffa88619551d 35 BLEMsg_info *bt_file;
nikitateggi 22:ffa88619551d 36 Point *myBleMsg;
nikitateggi 52:7d9ff7781bdc 37
nikitateggi 27:907f8ce0025e 38 Serial mc(USBTX,USBRX); // serial terminal
nikitateggi 27:907f8ce0025e 39 Serial blue(PTC4,PTC3); // communicating bluetooth through serial
nikitateggi 27:907f8ce0025e 40
rashmivenkataramaiah 59:dadb88794375 41 static uint32_t total_samples=0; // variable to hold total number of samples
rashmivenkataramaiah 59:dadb88794375 42 Point b; // structure copy
rashmivenkataramaiah 59:dadb88794375 43 BLEMsg_info bt_file1; // structure copy
rashmivenkataramaiah 59:dadb88794375 44 static uint32_t total_file_size=0; // to determine the size of the file
nikitateggi 44:05dbea558c9a 45 static uint32_t total_file_size_sent=0;
nikitateggi 28:65f2d80b7eb7 46 static uint32_t file_start=0; // variable for 'for loop'
nikitateggi 44:05dbea558c9a 47 //static uint32_t j=0;
nikitateggi 27:907f8ce0025e 48 uint8_t count_send=0;
nikitateggi 28:65f2d80b7eb7 49 static uint32_t file_pointer_position=0;
nikitateggi 28:65f2d80b7eb7 50 static uint32_t counter=0;
nikitateggi 44:05dbea558c9a 51 static uint32_t v1[NO_OF_SAMPLES];
nikitateggi 27:907f8ce0025e 52 uint8_t file=0;
nikitateggi 54:f2a413d5dffd 53 static uint32_t bt_pid = 0;
rashmivenkataramaiah 75:0feb6f993562 54 static char user_pid[10] = {0};
rashmivenkataramaiah 75:0feb6f993562 55
rashmivenkataramaiah 59:dadb88794375 56
nikitateggi 52:7d9ff7781bdc 57
nikitateggi 19:1650bbc923cc 58 uint8_t bt_send(uint8_t state_tx)
nikitateggi 19:1650bbc923cc 59 {
rashmivenkataramaiah 59:dadb88794375 60 mc.format();
rashmivenkataramaiah 59:dadb88794375 61 mc.baud(115200);
nikitateggi 44:05dbea558c9a 62 blue.baud(115200); // baud rate of bluetooth
nikitateggi 44:05dbea558c9a 63 bt_file=&bt_file1;
nikitateggi 44:05dbea558c9a 64 myBleMsg=&b;
nikitateggi 44:05dbea558c9a 65 int8_t check_sum=0;
nikitateggi 44:05dbea558c9a 66 uint8_t state_rx =0;
nikitateggi 27:907f8ce0025e 67
nikitateggi 45:067673dae242 68 switch(state_tx)
nikitateggi 19:1650bbc923cc 69 {
nikitateggi 19:1650bbc923cc 70
nikitateggi 27:907f8ce0025e 71 case 1:
nikitateggi 44:05dbea558c9a 72 state_tx =0;
nikitateggi 27:907f8ce0025e 73 counter=0;
nikitateggi 44:05dbea558c9a 74 total_file_size_sent=0;
nikitateggi 45:067673dae242 75 file_start=0;
nikitateggi 45:067673dae242 76 count_send=0; total_samples=0;
nikitateggi 27:907f8ce0025e 77 file_pointer_position=0;
nikitateggi 54:f2a413d5dffd 78 bt_pid = get_btpid()+1; //added on 22/09/2017 nikita
rashmivenkataramaiah 59:dadb88794375 79 //mc.printf("bt_pid = %d\n",get_btpid());
nikitateggi 56:89eb9a977641 80 if(get_filepid()>=bt_pid) //check for pid and bluetooth pid by reading from file// modified to send till the current pid, 3rd nov//
nikitateggi 44:05dbea558c9a 81 {
nikitateggi 44:05dbea558c9a 82 send_initial_string();
nikitateggi 44:05dbea558c9a 83 blue.printf("\n");
nikitateggi 54:f2a413d5dffd 84 file=sd_open_read(bt_pid); // open the file for reading
nikitateggi 48:f90edb35a20e 85 total_file_size=file_size(); // determined the file size
nikitateggi 47:3716dd41dba6 86 state_rx = 1;
nikitateggi 44:05dbea558c9a 87 }
nikitateggi 44:05dbea558c9a 88
nikitateggi 44:05dbea558c9a 89 else
nikitateggi 44:05dbea558c9a 90 {
nikitateggi 45:067673dae242 91 state_rx =0; //no files to send
rashmivenkataramaiah 59:dadb88794375 92 //mc.printf("no file to send\n");
nikitateggi 44:05dbea558c9a 93 }
nikitateggi 44:05dbea558c9a 94 break;
nikitateggi 44:05dbea558c9a 95
nikitateggi 19:1650bbc923cc 96
nikitateggi 44:05dbea558c9a 97 case 2: total_samples=0;
nikitateggi 47:3716dd41dba6 98 //file=sd_open_read(get_btpid());
nikitateggi 48:f90edb35a20e 99 // total_file_size=file_size() ; // determined the file size
nikitateggi 45:067673dae242 100 sd_read1(bt_file1); // read the sd card file
rashmivenkataramaiah 59:dadb88794375 101 //mc.printf("sd file opened to read data in it\n");
nikitateggi 45:067673dae242 102 myBleMsg->bt_msg=bt_file1; //copy the contents to the structure
nikitateggi 45:067673dae242 103 send_structure(); // send the structure string
avp2417 36:00d96aa14658 104 blue.printf("\n");
rashmivenkataramaiah 59:dadb88794375 105 //mc.printf("sent initial string\n");
nikitateggi 27:907f8ce0025e 106 total_samples= myBleMsg->bt_msg.num_samples.num_sample_ppg_dummy+myBleMsg->bt_msg.num_samples.num_sample_ecg_OTtyp;
nikitateggi 19:1650bbc923cc 107 state_tx =0;
nikitateggi 19:1650bbc923cc 108 state_rx =2;
nikitateggi 27:907f8ce0025e 109 count_send=0;
nikitateggi 44:05dbea558c9a 110 total_file_size_sent=file_size1();
nikitateggi 19:1650bbc923cc 111 break;
nikitateggi 19:1650bbc923cc 112
nikitateggi 19:1650bbc923cc 113
nikitateggi 44:05dbea558c9a 114 case 3:
nikitateggi 44:05dbea558c9a 115 counter=0;
nikitateggi 44:05dbea558c9a 116 if(count_send<(total_samples/NO_OF_SAMPLES))
nikitateggi 44:05dbea558c9a 117 {
nikitateggi 44:05dbea558c9a 118 sd_read(v1,NO_OF_SAMPLES);
nikitateggi 44:05dbea558c9a 119 counter=NO_OF_SAMPLES; //read 1500 samples
nikitateggi 44:05dbea558c9a 120 send_data_str1();
nikitateggi 44:05dbea558c9a 121 for(file_start=0;file_start<(NO_OF_SAMPLES);file_start++)
nikitateggi 44:05dbea558c9a 122 {
nikitateggi 19:1650bbc923cc 123
nikitateggi 44:05dbea558c9a 124 blue.printf("%08x", v1[file_start]);
nikitateggi 27:907f8ce0025e 125
nikitateggi 44:05dbea558c9a 126 }
avp2417 36:00d96aa14658 127
nikitateggi 44:05dbea558c9a 128 check_sum=checksum_rawdata((uint8_t *)v1,counter); // calculating checksum // calculating checksum
nikitateggi 44:05dbea558c9a 129 state_tx =0;
nikitateggi 44:05dbea558c9a 130 state_rx =3;
nikitateggi 44:05dbea558c9a 131 send_data_str2(check_sum); // send the remaining part of the string
nikitateggi 19:1650bbc923cc 132
nikitateggi 44:05dbea558c9a 133 }
nikitateggi 19:1650bbc923cc 134
nikitateggi 44:05dbea558c9a 135 else
nikitateggi 44:05dbea558c9a 136 {
nikitateggi 44:05dbea558c9a 137 for(uint16_t l=0;l<NO_OF_SAMPLES;l++)
nikitateggi 44:05dbea558c9a 138 {
nikitateggi 44:05dbea558c9a 139 v1[l]=NULL;
nikitateggi 44:05dbea558c9a 140 }
nikitateggi 44:05dbea558c9a 141 counter=(total_samples-( NO_OF_SAMPLES*count_send));
nikitateggi 27:907f8ce0025e 142 send_data_str1();
nikitateggi 44:05dbea558c9a 143 sd_read(v1,(total_samples-( NO_OF_SAMPLES*count_send)));
nikitateggi 44:05dbea558c9a 144
nikitateggi 44:05dbea558c9a 145 for(file_start=0;file_start<(total_samples-( NO_OF_SAMPLES*count_send));file_start++)
nikitateggi 19:1650bbc923cc 146 {
nikitateggi 24:d992ee8369f4 147 blue.printf("%08x", v1[file_start]);
nikitateggi 27:907f8ce0025e 148
nikitateggi 19:1650bbc923cc 149 }
nikitateggi 27:907f8ce0025e 150
nikitateggi 19:1650bbc923cc 151 state_tx=0;
nikitateggi 19:1650bbc923cc 152 state_rx=4;
nikitateggi 44:05dbea558c9a 153 check_sum=checksum_rawdata((uint8_t *)v1,counter); // calculating checksum
nikitateggi 22:ffa88619551d 154 send_data_str2(check_sum);
nikitateggi 19:1650bbc923cc 155 }
nikitateggi 19:1650bbc923cc 156
nikitateggi 45:067673dae242 157 total_file_size_sent=file_size1();
nikitateggi 27:907f8ce0025e 158 blue.printf("\n");
nikitateggi 27:907f8ce0025e 159 break;
nikitateggi 19:1650bbc923cc 160
nikitateggi 19:1650bbc923cc 161
nikitateggi 48:f90edb35a20e 162 case 4: // total_file_size_sent=file_size1();
nikitateggi 44:05dbea558c9a 163 if(total_file_size_sent==total_file_size) // if the total file size is same as total file size
nikitateggi 27:907f8ce0025e 164 { // then there is no more data to send in that particular file
nikitateggi 19:1650bbc923cc 165
nikitateggi 44:05dbea558c9a 166 state_rx=5;
nikitateggi 44:05dbea558c9a 167 send_last_string();
nikitateggi 24:d992ee8369f4 168 blue.printf("\n");
nikitateggi 44:05dbea558c9a 169
nikitateggi 19:1650bbc923cc 170 }
nikitateggi 19:1650bbc923cc 171 else
nikitateggi 19:1650bbc923cc 172 {
nikitateggi 44:05dbea558c9a 173
nikitateggi 44:05dbea558c9a 174 total_samples=0;
nikitateggi 44:05dbea558c9a 175 sd_read1(bt_file1); // read the sd card file
nikitateggi 46:162ed3f051b2 176 // mc.printf("sd file opened to read data in it\n");
nikitateggi 44:05dbea558c9a 177 myBleMsg->bt_msg=bt_file1; //copy the contents to the structure
nikitateggi 44:05dbea558c9a 178 send_structure(); // send the initial string
nikitateggi 44:05dbea558c9a 179 blue.printf("\n");
nikitateggi 46:162ed3f051b2 180 // mc.printf("sent initial string\n");
nikitateggi 44:05dbea558c9a 181 total_samples= myBleMsg->bt_msg.num_samples.num_sample_ppg_dummy+myBleMsg->bt_msg.num_samples.num_sample_ecg_OTtyp;
nikitateggi 44:05dbea558c9a 182 state_tx =0;
nikitateggi 44:05dbea558c9a 183 state_rx =2;
nikitateggi 44:05dbea558c9a 184 count_send=0;
nikitateggi 44:05dbea558c9a 185 total_file_size_sent=file_size1();
nikitateggi 44:05dbea558c9a 186
nikitateggi 19:1650bbc923cc 187 }
nikitateggi 19:1650bbc923cc 188
nikitateggi 19:1650bbc923cc 189
nikitateggi 52:7d9ff7781bdc 190
nikitateggi 52:7d9ff7781bdc 191
nikitateggi 19:1650bbc923cc 192 }
nikitateggi 52:7d9ff7781bdc 193
nikitateggi 19:1650bbc923cc 194 return state_rx;
nikitateggi 19:1650bbc923cc 195
nikitateggi 19:1650bbc923cc 196 }
nikitateggi 19:1650bbc923cc 197
nikitateggi 19:1650bbc923cc 198
nikitateggi 19:1650bbc923cc 199
nikitateggi 19:1650bbc923cc 200
nikitateggi 19:1650bbc923cc 201 uint8_t bt_receive (uint8_t state_rx)
nikitateggi 19:1650bbc923cc 202 {
nikitateggi 19:1650bbc923cc 203
nikitateggi 52:7d9ff7781bdc 204 unsigned char state_tx =1; //state for transmitting
nikitateggi 52:7d9ff7781bdc 205 uint8_t string_length_rx=0;
nikitateggi 52:7d9ff7781bdc 206 char ack_rx[2]; // varibale to receive ack from the bluetooth
nikitateggi 52:7d9ff7781bdc 207 char chksum_rx[3];
nikitateggi 52:7d9ff7781bdc 208 char btdata_received[17];
nikitateggi 52:7d9ff7781bdc 209
nikitateggi 44:05dbea558c9a 210
nikitateggi 52:7d9ff7781bdc 211 while (blue.readable()!= NULL) // reading string from bluetooth app
nikitateggi 52:7d9ff7781bdc 212 {
nikitateggi 52:7d9ff7781bdc 213 blue.scanf("%17s", btdata_received);
rashmivenkataramaiah 59:dadb88794375 214 //mc.printf("%s\r\n", btdata_received);
nikitateggi 52:7d9ff7781bdc 215
nikitateggi 52:7d9ff7781bdc 216 }
nikitateggi 52:7d9ff7781bdc 217
nikitateggi 52:7d9ff7781bdc 218 string_length_rx = strlen(btdata_received); // storing the length of the string received
nikitateggi 52:7d9ff7781bdc 219 memcpy(ack_rx, btdata_received+1, 2); // reading the ack received
nikitateggi 52:7d9ff7781bdc 220 memcpy(chksum_rx, btdata_received+(string_length_rx-2), 3); // reading the checksum received
rashmivenkataramaiah 59:dadb88794375 221 //mc.printf("%s\r\n",ack_rx);
rashmivenkataramaiah 59:dadb88794375 222 //mc.printf("%s\r\n",chksum_rx);
nikitateggi 44:05dbea558c9a 223
nikitateggi 19:1650bbc923cc 224 switch(state_rx)
nikitateggi 19:1650bbc923cc 225 {
nikitateggi 19:1650bbc923cc 226
nikitateggi 52:7d9ff7781bdc 227 case 1: // wait for the ack
nikitateggi 22:ffa88619551d 228 state_rx=0;
nikitateggi 19:1650bbc923cc 229 myBleMsg->proto=ACK;
nikitateggi 52:7d9ff7781bdc 230 if ((strcmp(ack_rx ,"00") == NULL ) && (strcmp(chksum_rx ,"80" ) == NULL)) // check for ack and checksum
nikitateggi 44:05dbea558c9a 231
nikitateggi 19:1650bbc923cc 232 {
nikitateggi 19:1650bbc923cc 233
nikitateggi 19:1650bbc923cc 234 state_tx=2;
nikitateggi 19:1650bbc923cc 235 }
nikitateggi 19:1650bbc923cc 236
nikitateggi 22:ffa88619551d 237 else
nikitateggi 19:1650bbc923cc 238
nikitateggi 19:1650bbc923cc 239 {
nikitateggi 19:1650bbc923cc 240
nikitateggi 19:1650bbc923cc 241 state_tx=1;
nikitateggi 48:f90edb35a20e 242 sd_close();
nikitateggi 19:1650bbc923cc 243 }
nikitateggi 19:1650bbc923cc 244 break;
nikitateggi 19:1650bbc923cc 245
nikitateggi 19:1650bbc923cc 246 case 2: state_rx =0; //wait for the ack
nikitateggi 44:05dbea558c9a 247
nikitateggi 52:7d9ff7781bdc 248 if ((strcmp(ack_rx ,"00") == NULL ) && (strcmp(chksum_rx ,"80" ) == NULL))
nikitateggi 19:1650bbc923cc 249 {
nikitateggi 19:1650bbc923cc 250
nikitateggi 19:1650bbc923cc 251 state_tx=3;
nikitateggi 44:05dbea558c9a 252 file_pointer_position=total_file_size_sent;
nikitateggi 19:1650bbc923cc 253 }
nikitateggi 19:1650bbc923cc 254
nikitateggi 19:1650bbc923cc 255 else
nikitateggi 19:1650bbc923cc 256
nikitateggi 19:1650bbc923cc 257 {
nikitateggi 19:1650bbc923cc 258
nikitateggi 19:1650bbc923cc 259 state_tx=2;
nikitateggi 22:ffa88619551d 260 setpos1(file_pointer_position);
nikitateggi 47:3716dd41dba6 261 //sd_close(); //file closed which was opened earlier because it opens again in bt_send case 1
nikitateggi 27:907f8ce0025e 262
nikitateggi 19:1650bbc923cc 263 }
nikitateggi 27:907f8ce0025e 264 //blue.scanf("%02x%02x%08x%02x",&sos_rx,&ack_rx,&eos_rx,&chksum_rx);
nikitateggi 19:1650bbc923cc 265 break;
nikitateggi 52:7d9ff7781bdc 266
nikitateggi 19:1650bbc923cc 267
nikitateggi 19:1650bbc923cc 268 case 3:
nikitateggi 19:1650bbc923cc 269 state_rx =0;
nikitateggi 52:7d9ff7781bdc 270 if ((strcmp(ack_rx ,"00") == NULL ) && (strcmp(chksum_rx ,"80" ) == NULL))
nikitateggi 19:1650bbc923cc 271 {
nikitateggi 19:1650bbc923cc 272
nikitateggi 45:067673dae242 273 state_tx=3;
nikitateggi 27:907f8ce0025e 274 count_send=count_send+1;
nikitateggi 45:067673dae242 275 file_pointer_position=total_file_size_sent;
nikitateggi 19:1650bbc923cc 276 }
nikitateggi 19:1650bbc923cc 277
nikitateggi 19:1650bbc923cc 278 else
nikitateggi 19:1650bbc923cc 279
nikitateggi 19:1650bbc923cc 280 {
nikitateggi 27:907f8ce0025e 281
nikitateggi 19:1650bbc923cc 282 state_tx=3;
nikitateggi 44:05dbea558c9a 283 file_start=file_start- NO_OF_SAMPLES;
nikitateggi 44:05dbea558c9a 284 setpos1(file_pointer_position);
nikitateggi 44:05dbea558c9a 285 }
nikitateggi 44:05dbea558c9a 286
nikitateggi 44:05dbea558c9a 287 break;
nikitateggi 44:05dbea558c9a 288
nikitateggi 44:05dbea558c9a 289 case 4:
nikitateggi 44:05dbea558c9a 290 state_rx =0;
nikitateggi 52:7d9ff7781bdc 291 if ((strcmp(ack_rx ,"00") == NULL ) && (strcmp(chksum_rx ,"80" ) == NULL))
nikitateggi 44:05dbea558c9a 292 {
nikitateggi 45:067673dae242 293 state_tx=4;
nikitateggi 44:05dbea558c9a 294 count_send=count_send+1;
nikitateggi 45:067673dae242 295 file_pointer_position=total_file_size_sent;
nikitateggi 44:05dbea558c9a 296 }
nikitateggi 44:05dbea558c9a 297
nikitateggi 44:05dbea558c9a 298 else
nikitateggi 44:05dbea558c9a 299
nikitateggi 44:05dbea558c9a 300 {
nikitateggi 44:05dbea558c9a 301
nikitateggi 44:05dbea558c9a 302 state_tx=3;
nikitateggi 44:05dbea558c9a 303 file_start=file_start- NO_OF_SAMPLES;
nikitateggi 19:1650bbc923cc 304 setpos1(file_pointer_position);
nikitateggi 19:1650bbc923cc 305 }
nikitateggi 19:1650bbc923cc 306 break;
nikitateggi 19:1650bbc923cc 307
nikitateggi 52:7d9ff7781bdc 308
nikitateggi 44:05dbea558c9a 309 case 5: state_rx = 0;
nikitateggi 52:7d9ff7781bdc 310 if ((strcmp(ack_rx ,"00") == NULL ) && (strcmp(chksum_rx ,"80" ) == NULL))
nikitateggi 44:05dbea558c9a 311 {
nikitateggi 44:05dbea558c9a 312 sd_close();
nikitateggi 45:067673dae242 313 increment_btpid(); // increment the bluetooth pid and write in the file
rashmivenkataramaiah 59:dadb88794375 314 //mc.printf("next file");
rashmivenkataramaiah 59:dadb88794375 315 //mc.printf("bt_pid = %d\n",get_btpid());
nikitateggi 44:05dbea558c9a 316 state_tx=1;
nikitateggi 44:05dbea558c9a 317
nikitateggi 44:05dbea558c9a 318 }
nikitateggi 27:907f8ce0025e 319
nikitateggi 44:05dbea558c9a 320 else
nikitateggi 44:05dbea558c9a 321 {
nikitateggi 44:05dbea558c9a 322 state_tx = 4;
nikitateggi 27:907f8ce0025e 323
nikitateggi 44:05dbea558c9a 324 }
nikitateggi 44:05dbea558c9a 325 break;
nikitateggi 52:7d9ff7781bdc 326
nikitateggi 19:1650bbc923cc 327 }
nikitateggi 52:7d9ff7781bdc 328
nikitateggi 19:1650bbc923cc 329 return state_tx;
nikitateggi 19:1650bbc923cc 330 }
nikitateggi 19:1650bbc923cc 331
nikitateggi 19:1650bbc923cc 332
nikitateggi 19:1650bbc923cc 333
nikitateggi 19:1650bbc923cc 334
nikitateggi 19:1650bbc923cc 335
nikitateggi 19:1650bbc923cc 336
nikitateggi 19:1650bbc923cc 337
nikitateggi 44:05dbea558c9a 338 void send_structure() // function to send the structure to bluetooth
nikitateggi 19:1650bbc923cc 339 {
nikitateggi 45:067673dae242 340 myBleMsg->start_of_string=SOS;
nikitateggi 45:067673dae242 341 myBleMsg->length_file = STRUCTURE_LENGTH;
nikitateggi 45:067673dae242 342 myBleMsg->proto=DATA_TRFR; // data transfer mode
nikitateggi 45:067673dae242 343 blue.printf("%02x",myBleMsg->start_of_string);
nikitateggi 45:067673dae242 344 blue.printf("%02x",myBleMsg->proto);
nikitateggi 45:067673dae242 345 blue.printf("%08x",myBleMsg->length_file); //changed the sequence
nikitateggi 45:067673dae242 346 blue.printf("%08x",myBleMsg->bt_msg.length);
nikitateggi 45:067673dae242 347 blue.printf("%02x",myBleMsg->bt_msg.device_id);
rashmivenkataramaiah 71:8f1851c556d6 348 //blue.printf("%08x",myBleMsg->bt_msg.patient_id); //changed to 10
rashmivenkataramaiah 71:8f1851c556d6 349 for (uint8_t i = 0; i < sizeof(myBleMsg->bt_msg.patient_id); i++)
rashmivenkataramaiah 71:8f1851c556d6 350 {
rashmivenkataramaiah 71:8f1851c556d6 351 blue.printf("%02x",myBleMsg->bt_msg.patient_id[i]);
rashmivenkataramaiah 71:8f1851c556d6 352 mc.printf("%02x",myBleMsg->bt_msg.patient_id[i]);
rashmivenkataramaiah 71:8f1851c556d6 353 }
nikitateggi 45:067673dae242 354 blue.printf("%02x",myBleMsg->bt_msg.date_time.date);
nikitateggi 45:067673dae242 355 blue.printf("%02x",myBleMsg->bt_msg.date_time.month);
nikitateggi 45:067673dae242 356 blue.printf("%02x",myBleMsg->bt_msg.date_time.year);
nikitateggi 45:067673dae242 357 blue.printf("%02x",myBleMsg->bt_msg.date_time.hour);
nikitateggi 45:067673dae242 358 blue.printf("%02x",myBleMsg->bt_msg.date_time.mins);
nikitateggi 45:067673dae242 359 blue.printf("%02x",myBleMsg->bt_msg.date_time.sec);
nikitateggi 45:067673dae242 360 blue.printf("%02x",myBleMsg->bt_msg.test_type);
nikitateggi 45:067673dae242 361 blue.printf("%04x",myBleMsg->bt_msg.sampling_freq);
nikitateggi 45:067673dae242 362 blue.printf("%04x",myBleMsg->bt_msg.num_samples. num_sample_ppg_dummy);
nikitateggi 45:067673dae242 363 blue.printf("%04x",myBleMsg->bt_msg.num_samples.num_sample_ecg_OTtyp);
nikitateggi 45:067673dae242 364 blue.printf("%04x",myBleMsg->bt_msg.cal_data.cal_sbp_dummy);
nikitateggi 45:067673dae242 365 blue.printf("%04x",myBleMsg->bt_msg.cal_data.cal_dbp_OTtyp);
nikitateggi 45:067673dae242 366 myBleMsg->end_of_string=EOS;
nikitateggi 45:067673dae242 367 myBleMsg->chk_sum = checksum_struct((uint8_t *)myBleMsg, sizeof(Point));
nikitateggi 45:067673dae242 368 blue.printf("%02x",myBleMsg->end_of_string);
nikitateggi 45:067673dae242 369 blue.printf("%02x",myBleMsg->chk_sum);
nikitateggi 44:05dbea558c9a 370
nikitateggi 19:1650bbc923cc 371
nikitateggi 19:1650bbc923cc 372 }
nikitateggi 19:1650bbc923cc 373
nikitateggi 44:05dbea558c9a 374 void send_initial_string() // function to send the initial string at the start f communication to bluetooth
nikitateggi 22:ffa88619551d 375 {
nikitateggi 52:7d9ff7781bdc 376
nikitateggi 45:067673dae242 377 uint8_t sum_init=0 ;
nikitateggi 45:067673dae242 378 myBleMsg->start_of_string=SOS;
nikitateggi 45:067673dae242 379 myBleMsg->length_file=0;
nikitateggi 45:067673dae242 380 myBleMsg->proto=START_OF_FILE;
nikitateggi 45:067673dae242 381 sum_init=checksum_init();
nikitateggi 45:067673dae242 382 myBleMsg->chk_sum=sum_init;
nikitateggi 45:067673dae242 383 blue.printf("%02x",myBleMsg->start_of_string);
nikitateggi 45:067673dae242 384 blue.printf("%02x",myBleMsg->proto);
nikitateggi 45:067673dae242 385 blue.printf("%08x",myBleMsg->length_file); // chnged
nikitateggi 45:067673dae242 386 myBleMsg->end_of_string=EOS;
nikitateggi 45:067673dae242 387 blue.printf("%02x",myBleMsg->end_of_string);
nikitateggi 45:067673dae242 388 blue.printf("%02x",myBleMsg->chk_sum);
nikitateggi 19:1650bbc923cc 389
nikitateggi 19:1650bbc923cc 390 }
nikitateggi 22:ffa88619551d 391
nikitateggi 22:ffa88619551d 392
nikitateggi 27:907f8ce0025e 393 uint8_t checksum_init() // function to calculate the checksum for the initial string
nikitateggi 22:ffa88619551d 394 {
nikitateggi 22:ffa88619551d 395
nikitateggi 45:067673dae242 396 uint32_t sum = 0;
nikitateggi 45:067673dae242 397 uint8_t chksum_init = 0;
nikitateggi 44:05dbea558c9a 398 sum=SOS+EOS+START_OF_FILE;
nikitateggi 45:067673dae242 399 chksum_init = sum & 0x000000FF;
nikitateggi 22:ffa88619551d 400 return chksum_init;
nikitateggi 22:ffa88619551d 401 }
nikitateggi 52:7d9ff7781bdc 402
nikitateggi 27:907f8ce0025e 403 uint8_t checksum_last() // function to calculate the checksum for the last string
nikitateggi 22:ffa88619551d 404 {
nikitateggi 22:ffa88619551d 405
nikitateggi 45:067673dae242 406 uint32_t sum = 0;
nikitateggi 45:067673dae242 407 uint8_t chksum_last = 0;
nikitateggi 44:05dbea558c9a 408 sum=SOS+EOS+END_OF_FILE; // changed //16/06 #define all the values removing structure
nikitateggi 22:ffa88619551d 409 chksum_last=sum & 0x000000FF;
nikitateggi 22:ffa88619551d 410 return chksum_last;
nikitateggi 22:ffa88619551d 411 }
nikitateggi 22:ffa88619551d 412
nikitateggi 45:067673dae242 413 void send_last_string() // function to send the last string to the bluetooth // which determines the end of file
nikitateggi 22:ffa88619551d 414 {
nikitateggi 45:067673dae242 415 uint8_t sum_last=0;
nikitateggi 45:067673dae242 416 myBleMsg->start_of_string = SOS;
nikitateggi 45:067673dae242 417 myBleMsg->length_file = 0;
nikitateggi 45:067673dae242 418 myBleMsg->proto=END_OF_FILE;
nikitateggi 45:067673dae242 419 sum_last=checksum_last();
nikitateggi 45:067673dae242 420 myBleMsg->chk_sum=sum_last;
nikitateggi 45:067673dae242 421 blue.printf("%02x",myBleMsg->start_of_string);
nikitateggi 45:067673dae242 422 blue.printf("%02x",myBleMsg->proto);
nikitateggi 45:067673dae242 423 blue.printf("%08x",myBleMsg->length_file); // chnged
nikitateggi 45:067673dae242 424 myBleMsg->end_of_string=EOS;
nikitateggi 45:067673dae242 425 blue.printf("%02x",myBleMsg->end_of_string);
nikitateggi 45:067673dae242 426 blue.printf("%02x",myBleMsg->chk_sum);
nikitateggi 45:067673dae242 427
nikitateggi 45:067673dae242 428 }
nikitateggi 22:ffa88619551d 429
nikitateggi 45:067673dae242 430 void send_data_str1() // function to send a part of the structure // after this raw data is sent//
nikitateggi 45:067673dae242 431 {
nikitateggi 45:067673dae242 432 myBleMsg->start_of_string=SOS;
nikitateggi 45:067673dae242 433 myBleMsg->length_file=(counter*4);
nikitateggi 45:067673dae242 434 myBleMsg->proto=DATA_TRFR;
nikitateggi 45:067673dae242 435 blue.printf("%02x",myBleMsg->start_of_string);
nikitateggi 45:067673dae242 436 blue.printf("%02x",myBleMsg->proto); // chnaged
nikitateggi 45:067673dae242 437 blue.printf("%08x",myBleMsg->length_file);
nikitateggi 52:7d9ff7781bdc 438
nikitateggi 45:067673dae242 439 }
nikitateggi 19:1650bbc923cc 440
nikitateggi 19:1650bbc923cc 441
nikitateggi 19:1650bbc923cc 442
nikitateggi 45:067673dae242 443 void send_data_str2(uint8_t check_sum) // after raw data// this last part of structure is sent
nikitateggi 45:067673dae242 444 {
nikitateggi 45:067673dae242 445 myBleMsg->chk_sum=check_sum;
nikitateggi 45:067673dae242 446 myBleMsg->end_of_string=EOS;
nikitateggi 45:067673dae242 447 blue.printf("%02x",myBleMsg->end_of_string);
nikitateggi 45:067673dae242 448 blue.printf("%02x",myBleMsg->chk_sum);
nikitateggi 45:067673dae242 449
nikitateggi 45:067673dae242 450 }
nikitateggi 19:1650bbc923cc 451
nikitateggi 52:7d9ff7781bdc 452
nikitateggi 31:0f67acfc6236 453 uint8_t checksum_struct(const uint8_t data[], uint16_t numBytes) // calculating checksum for
nikitateggi 31:0f67acfc6236 454 {
nikitateggi 31:0f67acfc6236 455 uint32_t chksum_struct = 0;
nikitateggi 31:0f67acfc6236 456 uint16_t index = 0;
nikitateggi 31:0f67acfc6236 457
nikitateggi 31:0f67acfc6236 458 for (index=0U; index < (numBytes-1); index++)
nikitateggi 31:0f67acfc6236 459 {
nikitateggi 31:0f67acfc6236 460 chksum_struct += data[index];
rashmivenkataramaiah 72:1f990fa8c516 461 //mc.printf("data=%02x\n",data[index]);
nikitateggi 31:0f67acfc6236 462
nikitateggi 31:0f67acfc6236 463 }
nikitateggi 31:0f67acfc6236 464 // blue.printf("%08x\n",chksum_struct);
nikitateggi 31:0f67acfc6236 465 return chksum_struct;
nikitateggi 22:ffa88619551d 466 }
nikitateggi 52:7d9ff7781bdc 467
nikitateggi 52:7d9ff7781bdc 468
nikitateggi 44:05dbea558c9a 469 uint8_t checksum_rawdata(const uint8_t data[], uint32_t numBytes) // this function to calculate the checksum for the raw data
nikitateggi 31:0f67acfc6236 470 {
nikitateggi 52:7d9ff7781bdc 471
nikitateggi 45:067673dae242 472 uint32_t sum=0;
nikitateggi 45:067673dae242 473 uint8_t chksum_datatrfr=0;
nikitateggi 45:067673dae242 474 uint32_t index = 0;
nikitateggi 45:067673dae242 475 uint32_t index1 = 0;
nikitateggi 44:05dbea558c9a 476 sum += SOS;
nikitateggi 44:05dbea558c9a 477 sum += DATA_TRFR;
nikitateggi 45:067673dae242 478 index1=(numBytes*4);
nikitateggi 45:067673dae242 479 sum +=(index1>>(8*0))&0xFF;
nikitateggi 31:0f67acfc6236 480 sum +=(index1>>(8*1))&0xFF;
nikitateggi 52:7d9ff7781bdc 481
nikitateggi 45:067673dae242 482 for (index=0U; index<(numBytes*4); index++)
nikitateggi 45:067673dae242 483 {
nikitateggi 31:0f67acfc6236 484 sum += data[index];
nikitateggi 45:067673dae242 485 }
nikitateggi 52:7d9ff7781bdc 486
nikitateggi 45:067673dae242 487 sum+=EOS;
nikitateggi 52:7d9ff7781bdc 488
nikitateggi 45:067673dae242 489 chksum_datatrfr = sum & 0x000000FF;
nikitateggi 44:05dbea558c9a 490 //mc.printf("chksum_datatrfr=%02x\n",chksum_datatrfr);
nikitateggi 45:067673dae242 491 return chksum_datatrfr;
nikitateggi 44:05dbea558c9a 492 }
nikitateggi 52:7d9ff7781bdc 493
rashmivenkataramaiah 57:e82d4bd6b2c0 494
rashmivenkataramaiah 59:dadb88794375 495 // this function checks bluetooth command and if any byte received it process
rashmivenkataramaiah 59:dadb88794375 496 // that command and assigned and return touch state
rashmivenkataramaiah 57:e82d4bd6b2c0 497 uint8_t poc2p0_bt_receive (uint8_t curr_touch_state)
rashmivenkataramaiah 72:1f990fa8c516 498 {
rashmivenkataramaiah 74:9ba8a7101036 499 uint8_t bt_rx_buffer[31] = {0};
rashmivenkataramaiah 76:611154b3b597 500 uint8_t usr_pid_hex[15] = {0};
rashmivenkataramaiah 57:e82d4bd6b2c0 501 uint8_t cal_chksum = 0xFFu;
rashmivenkataramaiah 57:e82d4bd6b2c0 502 uint8_t touch_state = 0x00u;
rashmivenkataramaiah 75:0feb6f993562 503 char user_pid_char[20];
rashmivenkataramaiah 76:611154b3b597 504 //const char *ptr = user_pid_char;
rashmivenkataramaiah 76:611154b3b597 505 //uint8_t ch = 0 ;
rashmivenkataramaiah 76:611154b3b597 506 //uint8_t n = 0;
rashmivenkataramaiah 76:611154b3b597 507 //uint8_t buff_index = 0;
rashmivenkataramaiah 76:611154b3b597 508 uint8_t usr_pid_chksum = 0;
rashmivenkataramaiah 59:dadb88794375 509
rashmivenkataramaiah 76:611154b3b597 510 //if (mc.readable()!= NULL) // reading string from putty
rashmivenkataramaiah 76:611154b3b597 511 if (blue.readable()!= NULL) // reading string from bluetooth
rashmivenkataramaiah 57:e82d4bd6b2c0 512 {
rashmivenkataramaiah 62:7d2a844ed639 513 //wait_ms(50); //commented on 16-NOV rashmi
rashmivenkataramaiah 76:611154b3b597 514 blue.scanf("%31s",bt_rx_buffer);
rashmivenkataramaiah 76:611154b3b597 515 //mc.scanf("%31s",bt_rx_buffer);
rashmivenkataramaiah 59:dadb88794375 516
rashmivenkataramaiah 59:dadb88794375 517 mc.printf("\n\r Command =");
rashmivenkataramaiah 59:dadb88794375 518 mc.printf("%s\r\n", bt_rx_buffer);
rashmivenkataramaiah 65:8acfba0ce49a 519
rashmivenkataramaiah 75:0feb6f993562 520 //poc2p0_ascii_to_hex ((uint8_t *)bt_rx_buffer, sizeof(bt_rx_buffer));
rashmivenkataramaiah 76:611154b3b597 521 poc2p0_ascii_to_hex((uint8_t *)bt_rx_buffer, sizeof(bt_rx_buffer), (uint8_t *)&poc2p0_bt_msg_req, sizeof(poc2p0_bt_msg_req));
rashmivenkataramaiah 75:0feb6f993562 522
rashmivenkataramaiah 72:1f990fa8c516 523 }
rashmivenkataramaiah 59:dadb88794375 524
rashmivenkataramaiah 72:1f990fa8c516 525 if(poc2p0_bt_msg_req.cmd == TEST_SCREEN_REQ)
rashmivenkataramaiah 72:1f990fa8c516 526 {
rashmivenkataramaiah 74:9ba8a7101036 527 memcpy(user_pid_char,bt_rx_buffer+6,20);
rashmivenkataramaiah 76:611154b3b597 528 hex_to_char((const char *)user_pid_char);
rashmivenkataramaiah 74:9ba8a7101036 529 mc.printf("User pid = %s\n",user_pid_char);
rashmivenkataramaiah 76:611154b3b597 530 /*while ( *ptr )
rashmivenkataramaiah 74:9ba8a7101036 531 {
rashmivenkataramaiah 75:0feb6f993562 532 if ( sscanf(ptr, "%2x%n", &ch, &n) != 1 ) //ch -> holds data ; n-> no. of characters read
rashmivenkataramaiah 75:0feb6f993562 533 {
rashmivenkataramaiah 75:0feb6f993562 534 break;
rashmivenkataramaiah 75:0feb6f993562 535 }
rashmivenkataramaiah 75:0feb6f993562 536 ptr += n;
rashmivenkataramaiah 76:611154b3b597 537 user_pid[buff_index++] = char(ch);
rashmivenkataramaiah 75:0feb6f993562 538 }
rashmivenkataramaiah 74:9ba8a7101036 539 mc.printf("User pid after copy = %s\n",user_pid);
rashmivenkataramaiah 76:611154b3b597 540 */
rashmivenkataramaiah 74:9ba8a7101036 541
rashmivenkataramaiah 76:611154b3b597 542 poc2p0_ascii_to_hex((uint8_t *)bt_rx_buffer, sizeof(bt_rx_buffer), (uint8_t *)usr_pid_hex, sizeof(usr_pid_hex));
rashmivenkataramaiah 76:611154b3b597 543 usr_pid_chksum = usr_pid_hex[14];
rashmivenkataramaiah 76:611154b3b597 544 mc.printf("usr_pid_chksumksum = %02x\n",usr_pid_chksum);
rashmivenkataramaiah 76:611154b3b597 545 cal_chksum = checksum_struct((uint8_t *)usr_pid_hex+1, (sizeof(usr_pid_hex)-1));
rashmivenkataramaiah 75:0feb6f993562 546
rashmivenkataramaiah 72:1f990fa8c516 547 }
rashmivenkataramaiah 75:0feb6f993562 548 else
rashmivenkataramaiah 75:0feb6f993562 549 {
rashmivenkataramaiah 75:0feb6f993562 550 cal_chksum = checksum_struct((uint8_t *)&poc2p0_bt_msg_req.cmd, (sizeof(poc2p0_bt_msg_req)-1));
rashmivenkataramaiah 75:0feb6f993562 551 }
rashmivenkataramaiah 72:1f990fa8c516 552
rashmivenkataramaiah 76:611154b3b597 553 //if ((cal_chksum == poc2p0_bt_msg_req.chksum) || (cal_chksum == usr_pid_chksum))
rashmivenkataramaiah 76:611154b3b597 554 //{
rashmivenkataramaiah 57:e82d4bd6b2c0 555 switch (poc2p0_bt_msg_req.cmd)
rashmivenkataramaiah 57:e82d4bd6b2c0 556 {
rashmivenkataramaiah 57:e82d4bd6b2c0 557 case STRT_BP_TEST_REQ:
rashmivenkataramaiah 59:dadb88794375 558 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 57:e82d4bd6b2c0 559 touch_state = TOUCH_STATE_BP_TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 560 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 561
rashmivenkataramaiah 57:e82d4bd6b2c0 562 case STRT_BG_FBS_TEST_REQ:
rashmivenkataramaiah 59:dadb88794375 563 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 60:3bb9e9ba3205 564 eprom_write_16(20,0); //added on 14-Nov by rashmi
rashmivenkataramaiah 57:e82d4bd6b2c0 565 touch_state = TOUCH_STATE_BG_TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 566 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 567
rashmivenkataramaiah 57:e82d4bd6b2c0 568 case STRT_BG_PP_TEST_REQ:
rashmivenkataramaiah 59:dadb88794375 569 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 60:3bb9e9ba3205 570 eprom_write_16(20,1); //added on 14-Nov by rashmi
rashmivenkataramaiah 57:e82d4bd6b2c0 571 touch_state = TOUCH_STATE_BG_TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 572 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 573
rashmivenkataramaiah 57:e82d4bd6b2c0 574 case STRT_BG_RAN_TEST_REQ:
rashmivenkataramaiah 59:dadb88794375 575 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 60:3bb9e9ba3205 576 eprom_write_16(20,2); //added on 14-Nov by rashmi
rashmivenkataramaiah 57:e82d4bd6b2c0 577 touch_state = TOUCH_STATE_BG_TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 578 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 579
rashmivenkataramaiah 57:e82d4bd6b2c0 580 case STRT_ECG_TEST_REQ:
rashmivenkataramaiah 59:dadb88794375 581 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 57:e82d4bd6b2c0 582 touch_state = TOUCH_STATE_ECG_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 583 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 584
rashmivenkataramaiah 57:e82d4bd6b2c0 585 case DATA_SYNC_REQ:
rashmivenkataramaiah 72:1f990fa8c516 586 //poc2p0_send_device_msg_res(DATA_SYNC_MSG_ACCEPTED_RES);
rashmivenkataramaiah 59:dadb88794375 587 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 60:3bb9e9ba3205 588 touch_state = 12 ; //TOUCH_STATE_DATA_SYNC_SCREEN
rashmivenkataramaiah 57:e82d4bd6b2c0 589 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 590
rashmivenkataramaiah 57:e82d4bd6b2c0 591 case HEARTBEAT_REQ:
rashmivenkataramaiah 59:dadb88794375 592 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 60:3bb9e9ba3205 593 mc.printf("curr_touch_state: %2x\n",curr_touch_state);
rashmivenkataramaiah 59:dadb88794375 594 if ((curr_touch_state == TOUCH_STATE_HOME_SCREEN)||(curr_touch_state == TOUCH_STATE_TEST_SCREEN))
rashmivenkataramaiah 59:dadb88794375 595 {
rashmivenkataramaiah 57:e82d4bd6b2c0 596 poc2p0_send_device_heartbeat_msg_res(curr_touch_state);
rashmivenkataramaiah 59:dadb88794375 597 }
rashmivenkataramaiah 57:e82d4bd6b2c0 598 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 599
rashmivenkataramaiah 57:e82d4bd6b2c0 600 case HOME_SCREEN_REQ:
rashmivenkataramaiah 59:dadb88794375 601 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 57:e82d4bd6b2c0 602 touch_state = TOUCH_STATE_HOME_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 603 poc2p0_send_device_msg_res(HOME_SCREEN_MSG_ACCEPTED_RES);
rashmivenkataramaiah 57:e82d4bd6b2c0 604 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 605
rashmivenkataramaiah 57:e82d4bd6b2c0 606 case TEST_SCREEN_REQ:
rashmivenkataramaiah 59:dadb88794375 607 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 57:e82d4bd6b2c0 608 touch_state = TOUCH_STATE_TEST_SCREEN;
rashmivenkataramaiah 57:e82d4bd6b2c0 609 poc2p0_send_device_msg_res(TEST_SCREEN_MSG_ACCEPTED_RES);
rashmivenkataramaiah 57:e82d4bd6b2c0 610 break;
rashmivenkataramaiah 72:1f990fa8c516 611
rashmivenkataramaiah 72:1f990fa8c516 612 case SD_READ_REQ:
rashmivenkataramaiah 72:1f990fa8c516 613 mc.printf("\n\r cal_chksum = %2x\n", cal_chksum);
rashmivenkataramaiah 72:1f990fa8c516 614 touch_state = 15;
rashmivenkataramaiah 72:1f990fa8c516 615 break;
rashmivenkataramaiah 72:1f990fa8c516 616
rashmivenkataramaiah 57:e82d4bd6b2c0 617
rashmivenkataramaiah 57:e82d4bd6b2c0 618 default:
rashmivenkataramaiah 57:e82d4bd6b2c0 619 break;
rashmivenkataramaiah 57:e82d4bd6b2c0 620 }
rashmivenkataramaiah 76:611154b3b597 621 //}
rashmivenkataramaiah 59:dadb88794375 622
rashmivenkataramaiah 59:dadb88794375 623 memset((void *)bt_rx_buffer,0x00,sizeof(bt_rx_buffer));
rashmivenkataramaiah 76:611154b3b597 624 memset((void *)&poc2p0_bt_msg_req,0x00,sizeof(poc2p0_bt_msg_req)); //to clear the structure else the command would be in the loop
rashmivenkataramaiah 59:dadb88794375 625 return touch_state;
rashmivenkataramaiah 59:dadb88794375 626 }
rashmivenkataramaiah 59:dadb88794375 627
rashmivenkataramaiah 59:dadb88794375 628 // this function use to convert data from ascii to hex
rashmivenkataramaiah 76:611154b3b597 629 /*static void poc2p0_ascii_to_hex(const uint8_t input_buf[], uint8_t len)
rashmivenkataramaiah 59:dadb88794375 630 {
rashmivenkataramaiah 59:dadb88794375 631 uint8_t i = 0;
rashmivenkataramaiah 59:dadb88794375 632 uint8_t j = 0;
rashmivenkataramaiah 59:dadb88794375 633 uint8_t temp_ms_nibble = 0;
rashmivenkataramaiah 59:dadb88794375 634 uint8_t temp_ls_nibble = 0;
rashmivenkataramaiah 59:dadb88794375 635 uint8_t temp_buf[len];
rashmivenkataramaiah 59:dadb88794375 636
rashmivenkataramaiah 59:dadb88794375 637 for (i = 0,j = 0; i < len; i+=2, ++j)
rashmivenkataramaiah 59:dadb88794375 638 {
rashmivenkataramaiah 69:128e3b467820 639 temp_ms_nibble = input_buf[i] > '9' ? (input_buf[i]|32) - 'a' + 10 : input_buf[i] - '0';
rashmivenkataramaiah 59:dadb88794375 640 temp_ls_nibble = input_buf[i+1] > '9' ? (input_buf[i+1]|32) - 'a' + 10 : input_buf[i+1] - '0';
rashmivenkataramaiah 59:dadb88794375 641 temp_buf[j] = (temp_ms_nibble << 4) | temp_ls_nibble;
rashmivenkataramaiah 75:0feb6f993562 642 mc.printf("\n\r msg_SOS = %2x", temp_buf[j]);
rashmivenkataramaiah 59:dadb88794375 643 }
rashmivenkataramaiah 59:dadb88794375 644
rashmivenkataramaiah 59:dadb88794375 645 memcpy(&poc2p0_bt_msg_req, &temp_buf, sizeof(poc2p0_bt_msg_req));
rashmivenkataramaiah 59:dadb88794375 646
rashmivenkataramaiah 59:dadb88794375 647 return;
rashmivenkataramaiah 76:611154b3b597 648 } */
rashmivenkataramaiah 74:9ba8a7101036 649
rashmivenkataramaiah 67:7e07cdb1b150 650
rashmivenkataramaiah 74:9ba8a7101036 651 char* get_userpid(void)
rashmivenkataramaiah 72:1f990fa8c516 652 {
rashmivenkataramaiah 72:1f990fa8c516 653 return user_pid;
rashmivenkataramaiah 74:9ba8a7101036 654 }
rashmivenkataramaiah 68:41da0a3ba038 655
rashmivenkataramaiah 74:9ba8a7101036 656
rashmivenkataramaiah 75:0feb6f993562 657
rashmivenkataramaiah 74:9ba8a7101036 658
rashmivenkataramaiah 76:611154b3b597 659 static void poc2p0_ascii_to_hex(const uint8_t input_buf[], uint8_t len_ip_buf, uint8_t output_buf[], uint8_t len_op_buf)
rashmivenkataramaiah 74:9ba8a7101036 660 {
rashmivenkataramaiah 74:9ba8a7101036 661 uint8_t i = 0;
rashmivenkataramaiah 74:9ba8a7101036 662 uint8_t j = 0;
rashmivenkataramaiah 74:9ba8a7101036 663 uint8_t temp_ms_nibble = 0;
rashmivenkataramaiah 74:9ba8a7101036 664 uint8_t temp_ls_nibble = 0;
rashmivenkataramaiah 76:611154b3b597 665 uint8_t temp_buf[len_ip_buf];
rashmivenkataramaiah 74:9ba8a7101036 666
rashmivenkataramaiah 76:611154b3b597 667 for (i = 0,j = 0; i < len_ip_buf; i+=2, ++j)
rashmivenkataramaiah 74:9ba8a7101036 668 {
rashmivenkataramaiah 74:9ba8a7101036 669 temp_ms_nibble = input_buf[i] > '9' ? (input_buf[i]|32) - 'a' + 10 : input_buf[i] - '0';
rashmivenkataramaiah 74:9ba8a7101036 670 temp_ls_nibble = input_buf[i+1] > '9' ? (input_buf[i+1]|32) - 'a' + 10 : input_buf[i+1] - '0';
rashmivenkataramaiah 74:9ba8a7101036 671 temp_buf[j] = (temp_ms_nibble << 4) | temp_ls_nibble;
rashmivenkataramaiah 74:9ba8a7101036 672 //mc.printf("\n\r msg_SOS = %2x", temp_buf[j]);
rashmivenkataramaiah 74:9ba8a7101036 673 }
rashmivenkataramaiah 74:9ba8a7101036 674
rashmivenkataramaiah 76:611154b3b597 675 memcpy(output_buf, &temp_buf, len_op_buf);
rashmivenkataramaiah 74:9ba8a7101036 676
rashmivenkataramaiah 74:9ba8a7101036 677 return;
rashmivenkataramaiah 74:9ba8a7101036 678 }
rashmivenkataramaiah 74:9ba8a7101036 679
rashmivenkataramaiah 74:9ba8a7101036 680
rashmivenkataramaiah 76:611154b3b597 681 static void hex_to_char(const char input_buffer[])
rashmivenkataramaiah 76:611154b3b597 682 {
rashmivenkataramaiah 76:611154b3b597 683 const char *ptr = input_buffer;
rashmivenkataramaiah 76:611154b3b597 684 uint8_t ch = 0 ;
rashmivenkataramaiah 76:611154b3b597 685 uint8_t n = 0;
rashmivenkataramaiah 76:611154b3b597 686 uint8_t buff_index = 0;
rashmivenkataramaiah 76:611154b3b597 687
rashmivenkataramaiah 76:611154b3b597 688 while ( *ptr )
rashmivenkataramaiah 76:611154b3b597 689 {
rashmivenkataramaiah 76:611154b3b597 690 if ( sscanf(ptr, "%2x%n", &ch, &n) != 1 ) //ch -> holds data ; n-> no. of characters read
rashmivenkataramaiah 76:611154b3b597 691 { //sscanf returns 1 when the format matches,there is no data
rashmivenkataramaiah 76:611154b3b597 692 break;
rashmivenkataramaiah 76:611154b3b597 693 }
rashmivenkataramaiah 76:611154b3b597 694 ptr += n;
rashmivenkataramaiah 76:611154b3b597 695 user_pid[buff_index++] = char(ch);
rashmivenkataramaiah 76:611154b3b597 696 }
rashmivenkataramaiah 76:611154b3b597 697 mc.printf("User pid after copy = %s\n",user_pid);
rashmivenkataramaiah 76:611154b3b597 698
rashmivenkataramaiah 76:611154b3b597 699 }
rashmivenkataramaiah 67:7e07cdb1b150 700
rashmivenkataramaiah 67:7e07cdb1b150 701
rashmivenkataramaiah 67:7e07cdb1b150 702
rashmivenkataramaiah 67:7e07cdb1b150 703
rashmivenkataramaiah 67:7e07cdb1b150 704
rashmivenkataramaiah 67:7e07cdb1b150 705
rashmivenkataramaiah 67:7e07cdb1b150 706
rashmivenkataramaiah 67:7e07cdb1b150 707
rashmivenkataramaiah 67:7e07cdb1b150 708