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:
Sun Dec 10 03:17:14 2017 +0000
Revision:
74:9ba8a7101036
Parent:
72:1f990fa8c516
Child:
75:0feb6f993562
Changes in Bt.cpp wrt userpid

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