scan response

This commit is contained in:
Roy
2021-03-19 14:48:12 +08:00
parent ce32f268b1
commit d5f8ecb099
2 changed files with 22 additions and 54 deletions
@@ -184,8 +184,6 @@ static void mem_recv_ins(){
}
case INS_SCAN:{
//char test_scan_ack[10] = {4,0,6,'A','B','C','D','E'};//"406ABCDE";
//UART_write(uart_handle, test_scan_ack, 9);
SimpleBLECentral_discoverDevices();
break;
}
@@ -395,6 +395,7 @@ static bool SimpleBLECentral_findLocalName(uint8_t *pEvtData, uint8_t dataLen);
static void SimpleBLECentral_addDeviceName(uint8_t i, uint8_t *pEvtData,
uint8_t dataLen);
static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen);
static void SimepleBLECentral_respDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen);
static void SimpleBLECentral_processPairState(uint8_t pairState, uint8_t status);
static void SimpleBLECentral_processPasscode(uint16_t connectionHandle,
@@ -849,6 +850,10 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
// get company code, version, battery
SimepleBLECentral_getDeviceinfo(i, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
// response company code, version, battery
SimepleBLECentral_respDeviceinfo(i, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
}
}
}
@@ -864,58 +869,7 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
// Display_clearLines(dispHandle, ROW_ONE, ROW_SEVEN);
// Display_print1(dispHandle, ROW_ONE, 0, "Devices found %d", scanRes);
// mem_UART_clear_screen();
// char device_number[2] = {scanRes + '0', '\0'};
// char test_scan_ack[20] = {4,0,13,devList[0].addr[0],devList[0].addr[1],
// devList[0].addr[2],devList[0].addr[3],devList[0].addr[4],devList[0].addr[5],
// 'A','B','C','D','E',scanRes};
// UART_write(uart_handle, test_scan_ack, 16);
uint8_t device_number;
uint8_t ret_info_buf[RET_INFO_BUF_SIZE];
uint8_t attr_length[5] = {sizeof(devList[device_number].addr),
sizeof(devList[device_number].localName),
LEN_COMPANY_CODE,
LEN_VERSION_INFO,
LEN_BATTERY_INFO};
uint8_t index = 0;
ret_info_buf[index ++] = 4;
ret_info_buf[index ++] = 0;
ret_info_buf[index ++] = 30;
// B_ADDR_LEN = 6
for(int i=0 ; i < B_ADDR_LEN ; i++){
ret_info_buf[index ++] = devList[0].addr[i];
}
ret_info_buf[index ++] = scanRes;
for(int i=0 ; i < attr_length[2] ; i++){
ret_info_buf[index ++] = devList[0].company_code[i];
}
for(int i=0 ; i < attr_length[1] ; i++){
ret_info_buf[index ++] = devList[0].localName[i];
}
for(int i=0 ; i < attr_length[3] ; i++){
ret_info_buf[index ++] = devList[0].version_info[i];
}
for(int i=0 ; i < attr_length[4] ; i++){
ret_info_buf[index ++] = devList[0].battery_info[i];
}
for( ; index < RET_INFO_BUF_SIZE ; index++){
ret_info_buf[index] = 0;
}
// UART_write(uart_handle, ret_info_buf, 50);
// char test_scan_ack[10] = {4,0,6,'A','B','C','D','E'};//"406ABCDE";
// UART_write(uart_handle, test_scan_ack, 9);
char device_number[2] = {scanRes + '0', '\0'};
// report scan result
#ifndef BOOSTXL_CC2650MA
@@ -2444,7 +2398,23 @@ static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_
}
}
static void SimepleBLECentral_respDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen){
uint8_t scan_result[50] = {
4, scanRes,33,
devList[i].addr[0], devList[i].addr[1], devList[i].addr[2],
devList[i].addr[3], devList[i].addr[4], devList[i].addr[5],
devList[i].company_code[0], devList[i].company_code[1], devList[i].company_code[2],
devList[i].company_code[3],
devList[i].version_info[0], devList[i].version_info[1], devList[i].version_info[2],
devList[i].version_info[3], devList[i].version_info[4], devList[i].version_info[5],
devList[i].battery_info[0], devList[i].battery_info[1], devList[i].battery_info[2],
devList[i].battery_info[3], devList[i].battery_info[4],
devList[i].localName[0], devList[i].localName[1], devList[i].localName[2],
devList[i].localName[3], devList[i].localName[4], devList[i].localName[5],
0,0,0,9,9,81};
UART_write(uart_handle, scan_result, 45);
}
/*********************************************************************
* @fn SimpleBLECentral_eventCB