我试图定期轮询2台设备(Android手机和芯片)之间的蓝牙连接的RSSI值。
我使用NDK访问BlueZ库以使用
hci_read_rssi(int dd, uint16_t handle, int8_t *rssi, int to)
问题我不知道如何使用它来传递正确的参数。 使用该功能的正确方法是什么?
答案 0 :(得分:0)
对你来说可能有所不同,但是在Bluetopia堆栈中,在我的GAP_LE_Event_Callback
函数中,当我收到Connection_Complete(GAP连接)时,我这样做
case etLE_Connection_Complete:
...
Word_t Connection_Handle;
if ( GAP_LE_Query_Connection_Handle(BluetoothStackID, x->Peer_Address,
&Connection_Handle) == 0) {
Word_t Connection_HandleResult;
SByte_t RSSIResult;
Byte_t StatusResult;
if (HCI_Read_RSSI(BluetoothStackID,Connection_Handle, &StatusResult,
&Connection_HandleResult, &RSSIResult) == 0) {
Display(("RSSI: %x %x %d\r\n",StatusResult,
Connection_HandleResult,RSSIResult));
如果这不起作用,那么您需要手动创建一个ConnectionHandle,通过调用HCI_LE_Create_Connection