簡體   English   中英

如何使用flutter_blue發送數據?

[英]how to send data using flutter_blue?

我正在查看文檔: https://pub.dev/documentation/flutter_blue/latest/文檔中顯示了以下代碼:

// Reads all characteristics
var characteristics = service.characteristics;
for(BluetoothCharacteristic c in characteristics) {
    List<int> value = await c.read();
    print(value);
}

// Writes to a characteristic
await c.write([0x12, 0x34])

我知道為了閱讀,我們需要遍歷所有特征,並閱讀每一個特征。 寫呢?

如果 c 是循環內的迭代器,我們如何在循環外調用它。 我假設 write 方法中的 1 x 2 矩陣是在服務中寫入特征的位置。 我懷疑該位置應該是硬編碼的。 我只是有點困惑。,並希望得到一點澄清。 任何解釋將不勝感激! 謝謝 !

BLE 有幾種類型的特性:

  1. 讀取 - 此特性將只允許您從中讀取。
  2. 寫 - 這個特性將允許你只寫它。 旁注,有兩種類型的寫入:寫入將被確認的響應(通常由操作系統),這將確保所有數據都正確寫入,寫入不響應寫入不會確認寫入。
  3. 通知 - 當對方設備發送事件時,此特性將觸發您的代碼回調。

現在在你的情況下,在我看來,一般來說,保持對你的特征的硬引用是一個很好的做法,因為特征在應用程序運行期間不會改變。 您可以在需要時查詢它們,但我認為最好在連接到設備后查詢它們,檢查特征類型(讀取、寫入、通知)並根據設備規格決定使用哪些特征:讀、寫、通知。

關於寫入的另一個注意事項,BLE 不允許您寫入數據塊,指示數據包大小的值稱為 MTU,基於 MTU,您必須將原始數據拆分為相同長度的數據包。 MTU 因設備以及操作系統和 BLE 版本而異,因此最好在任何寫入之前檢查它(您也可以將其存儲以備后用)。

最后一點,您不必對所有特性進行寫入/讀取/讀取,您應該始終使用 BLE 設備規范中描述的特性。

暫無
暫無

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

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