LBLECharacteristic
此類別讓開發者可以創建用於儲存資料的資料特性(characteristic)。根據資料類型的不同,這個類別有兩個子類別:
LBLECharacteristicInt
LBLECharacteristicString
透過這些類別,可以建構出可供 BLE 主控裝置存取的 GATT 服務。要注意的是,需要將這些資料特性物件先添加到服務(透過LBLEService::addAttribute())之中,才會出現在底層框架創建的 GATT 伺服器之中。
Constructor
LBLECharacteristicInt()
LBLECharacteristicString()
建構一個可以儲存 int 資料的特性(characteristic)。
在大多數的情況中,應該將此物件宣告為全域變數,以確保底層框架可以在 LBLEPeripheral.begin() 之後持續的存取此物件。
Syntax
Parameters
uuid: 資料特性的 UUID,用於區分不同的特性。
Returns
LBLECharacteristicInt 的實體物件
建構一個可以儲存字串資料的特性(characteristic)。
在大多數的情況中,應該將此物件宣告為全域變數,以確保底層框架可以在 LBLEPeripheral.begin() 之後持續的存取此物件。
要注意的是,因為此特性儲存的是一個「字串」型別,程式庫會自動在字串的結尾添加 NULL 結尾字元。
所以,每次寫入字串,都會在新字串的結尾處結束,而不是替換掉舊有字串的一部份。
比如說:
主控裝置將此特性修改為 "YES" (3 bytes)
主控裝置將此特性再次修改為 "NO"(2 bytes)
此特性的資料,最後將是 "NO\0",而不是 "NOS\0"。
這樣設計的目的是為了讓一些主控端字串操作的程式庫,比如說 AppInventor 的 BluetoothLE.WriteStringValue,能更加直覺的運作。
如果開發者不希望程式庫自動插入結尾字元,請改為使用 LBLECharacteristicBuffer。
Syntax
Parameters
uuid: 資料特性的 UUID,用於區分不同的特性。
Returns
LBLECharacteristicString 的實體物件
Methods
isWritten()
getValue()
setValue()
確認此特性是否有被主控裝置修改過。
Syntax
Parameters
none
Returns
回傳 true:此特性有被遠端的主控裝置修改過,而且 Arduino 程式還沒有透過 getValue() 讀取過新的值。
回傳 false:此特性沒有被修改過。
取得特性的數值。取得數值之後,將會重置特性的 isWritten() 旗標。
Syntax
Parameters
none
Returns
回傳此特性的數值,根據類別的不同,會回傳 int(LBLECharacteristicInt ) 或是字串 String(LBLECharacteristicString) 。
設定特性數值。
Syntax
Parameters
value: 此特性的數值。根據類別不同,可能是整數(LBLECharacteristicInt )或是字串(LBLECharacteristicString)。
Returns
none
Last updated