簡體   English   中英

從BLE設備獲取響應

[英]Getting response from BLE device

我對使用藍牙設備很陌生。 到目前為止,一切正常。 但是有一個我不知道如何處理的問題。 我有一個led燈設備,可以在其中更改從顏色到速度,閃爍,褪色等的所有內容。 現在,我想讀取當前設備狀態(例如,設備是打開還是關閉)。 我有該設備的文件,上面寫着:

查詢:a)發送順序:【0XEF】+【0X01】+【0X77】b)控制器響應:【0X66】+【8bit設備名稱(0x14】】+【8bit swtich開/關】+【8bit模式值】+ 【8位運行/暫停狀態】+【8位速度值】+【8位紅色數據】+【8位綠色數據】+【8位藍色數據】+【8位預熱期間】+【8位版本號】+【0X99】

如何獲得控制器響應? didWriteValueFor函數只是向我返回寫入調用是否成功。

如果特性支持通知,您可以通過該行進行通知:

peripheral.setNotifyValue(true, for: characteristic)

將具有該特征的外圍設備的委托設置為適當的文件非常重要,在我的情況下是:

peripheral.delegate = self

之后,當某些事情發生變化時,外設將在您的代碼中觸發此方法:

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
    //data is in characteristic.value
}

如果您的特征不支持noyfying,則可以嘗試將響應類型設置為.withReponse的數據寫入外設,如下所示:

peripheral.writeValue(data, for: characteristic, type: .withResponse)

記住也要設置外圍設備委托,在該外圍設備每次成功寫入后將觸發此方法:

    //write response
    func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) {
        //data is in characteristic.value
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM