谢谢回复,不好意思还要再问一下;
目前我在app_service_discovery()代码段如下,我只注释了cur_sdp_device.char_handle[2]的代码修改成我想要的uuid;
发现实际代码打印出来的char_handle都是 00 00;
这样的话显然没有读成功,请问这是为什么呢?
/**
* @brief SDP handler.
* !!! Note: This is a simple SDP processing implemented by telink.
* @param none.
* @return none.
*/
void app_service_discovery (void)
{
tlkapi_printf(APP_SMP_LOG_EN, "app_service_discovery() \n");
att_db_uuid16_t db16[ATT_DB_UUID16_NUM];
att_db_uuid128_t db128[ATT_DB_UUID128_NUM];
memset (db16, 0, ATT_DB_UUID16_NUM * sizeof (att_db_uuid16_t));
memset (db128, 0, ATT_DB_UUID128_NUM * sizeof (att_db_uuid128_t));
if ( central_sdp_pending && host_att_discoveryService (central_sdp_pending, db16, ATT_DB_UUID16_NUM, db128, ATT_DB_UUID128_NUM) == BLE_SUCCESS) // service discovery OK
{
cur_sdp_device.char_handle[0] = blm_att_findHandleOfUuid128 (db128, my_MicUUID); //MIC
//cur_sdp_device.char_handle[2] = blm_att_findHandleOfUuid128 (db128, my_OtaUUID); //OTA
cur_sdp_device.char_handle[2] = blm_att_findHandleOfUuid128 (db128, my_cscMeasure); //caeAdd for cscMeasure 我修改的
cur_sdp_device.char_handle[3] = blm_att_findHandleOfUuid16 (db16, CHARACTERISTIC_UUID_HID_REPORT,
HID_REPORT_ID_CONSUME_CONTROL_INPUT | (HID_REPORT_TYPE_INPUT<<8)); //consume report(media key report)
cur_sdp_device.char_handle[4] = blm_att_findHandleOfUuid16 (db16, CHARACTERISTIC_UUID_HID_REPORT,
HID_REPORT_ID_KEYBOARD_INPUT | (HID_REPORT_TYPE_INPUT<<8)); //normal key report
//cur_sdp_device.char_handle[6] = blm_att_findHandleOfUuid128 (db128, TelinkSppDataServer2ClientUUID); //BLE Module, SPP Server to Client
//cur_sdp_device.char_handle[7] = blm_att_findHandleOfUuid128 (db128, TelinkSppDataClient2ServerUUID); //BLE Module, SPP Client to Server
/* add the peer device att_handle value to conn_dev_list after service discovery is correctly finished */
dev_char_info_add_peer_att_handle(&cur_sdp_device);
/* peer device att_handle value store in flash */
dev_char_info_store_peer_att_handle(&cur_sdp_device);
tlkapi_send_string_data(APP_SMP_LOG_EN,"my_MicUUID", (u8*)&cur_sdp_device.char_handle[0], 2); //这些打印打开后,发现打印出来的handle都是00 00
tlkapi_send_string_data(APP_SMP_LOG_EN,"my_cscMeasure", (u8*)&cur_sdp_device.char_handle[2], 2);
tlkapi_send_string_data(APP_SMP_LOG_EN,"CMKEY handle", (u8*)&cur_sdp_device.char_handle[3], 2);
tlkapi_send_string_data(APP_SMP_LOG_EN,"KBKEY handle", (u8*)&cur_sdp_device.char_handle[4], 2);
}
central_sdp_pending = 0; //service discovery finish
}
另外关于blm_att_findHandleOfUuid16函数在sdk文档中没有说明,如果我想要获取心率或踏频等标准service的atthandle, 关于参数ref应该如何赋值呢?
(另外补充一点,关于蓝牙从设备,不是tc321x, 而是其他厂家的心率传感器和踏频传感器;)
|