2

我正在尝试定期轮询 2 个设备(Android 手机和芯片)之间蓝牙连接的 RSSI 值。

我使用NDK访问BlueZ库使用

hci_read_rssi(int dd, uint16_t handle, int8_t *rssi, int to)

问题我不知道如何在传递正确的参数方面使用它。使用该功能的正确方法是什么?

4

1 回答 1

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

于 2013-10-24T20:00:34.170 回答