120
edits
(revise descriptor of readValue in GattCharacteristic) |
|||
(34 intermediate revisions by 4 users not shown) | |||
Line 4: | Line 4: | ||
== Interfaces == | == Interfaces == | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#BluetoothGattCharacteristic|BluetoothGattCharacteristic]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#BluetoothGattCharacteristic|BluetoothGattCharacteristic]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic# | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattPermissions|GattPermissions]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic# | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattCharacteristicProperties|GattCharacteristicProperties]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#WriteType|WriteType]] | |||
=== BluetoothGattCharacteristic === | === BluetoothGattCharacteristic === | ||
Line 11: | Line 12: | ||
interface BluetoothGattCharacteristic | interface BluetoothGattCharacteristic | ||
{ | { | ||
readonly attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattService#BluetoothGattService|BluetoothGattService]] | readonly attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattService#BluetoothGattService|BluetoothGattService]] [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#service|service]]; | ||
[Cached, Pure] | [Cached, Pure] readonly attribute sequence<[[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattDescriptor#BluetoothGattDescriptor|BluetoothGattDescriptor]]> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#descriptors|descriptors]]; | ||
readonly attribute DOMString | readonly attribute DOMString [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#uuid|uuid]]; | ||
readonly attribute unsigned short | readonly attribute unsigned short [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#instanceId|instanceId]]; | ||
readonly attribute ArrayBuffer? | readonly attribute ArrayBuffer? [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#value|value]]; | ||
[Cached, Constant] | [Cached, Constant] readonly attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattPermissions|GattPermissions]] [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#permissions_2|permissions]]; | ||
readonly attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic# | [Cached, Constant] readonly attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattCharacteristicProperties|GattCharacteristicProperties]] [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#properties_2|properties]]; | ||
[Cached, Pure] | [Cached, Pure] attribute [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#WriteType|WriteType]] [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#writeType|writeType]]; | ||
[NewObject | [NewObject] Promise<ArrayBuffer> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#readValue.28.29|readValue()]]; | ||
[NewObject | [NewObject] Promise<void> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#writeValue.28ArrayBuffer value.29|writeValue(ArrayBuffer value)]]; | ||
[NewObject | [NewObject] Promise<void> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#startNotifications.28.29|startNotifications()]]; | ||
[NewObject | [NewObject] Promise<void> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#stopNotifications.28.29|stopNotifications()]]; | ||
[NewObject] Promise<[[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattDescriptor#BluetoothGattDescriptor|BluetoothGattDescriptor]]> [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#addDescriptor.28DOMString_uuid.2C_GattPermissions_permissions.2C_ArrayBuffer_value.29|addDescriptor(DOMString uuid, GattPermissions permissions, ArrayBuffer value)]]; | |||
}; | }; | ||
=== | === GattPermissions === | ||
dictionary | dictionary GattPermissions | ||
{ | { | ||
boolean read = false; | |||
boolean readEncrypted = false; | |||
boolean readEncryptedMITM = false; | |||
boolean write = false; | |||
boolean writeEncrypted = false; | |||
boolean writeEncryptedMITM = false; | |||
boolean writeSigned = false; | |||
boolean writeSignedMITM = false; | |||
}; | }; | ||
=== | === GattCharacteristicProperties === | ||
dictionary | dictionary GattCharacteristicProperties | ||
{ | |||
boolean broadcast = false; | |||
boolean read = false; | |||
boolean writeNoResponse = false; | |||
boolean write = false; | |||
boolean notify = false; | |||
boolean indicate = false; | |||
boolean signedWrite = false; | |||
boolean extendedProps = false; | |||
}; | |||
=== WriteType === | |||
dictionary WriteType | |||
{ | { | ||
required boolean noResponse; | required boolean noResponse; | ||
Line 50: | Line 63: | ||
}; | }; | ||
== | == GattCharacteristicProperties == | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#service|BluetoothGattCharacteristic.service]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#service|BluetoothGattCharacteristic.service]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#descriptors|BluetoothGattCharacteristic.descriptors]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#descriptors|BluetoothGattCharacteristic.descriptors]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#uuid|BluetoothGattCharacteristic.uuid]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#uuid|BluetoothGattCharacteristic.uuid]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#instanceId|BluetoothGattCharacteristic.instanceId]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#instanceId|BluetoothGattCharacteristic.instanceId]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#value|BluetoothGattCharacteristic.value]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#value|BluetoothGattCharacteristic.value]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#permissions_2|BluetoothGattCharacteristic.permissions]] | |||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#properties_3|BluetoothGattCharacteristic.properties]] | |||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#writeType_2|BluetoothGattCharacteristic.writeType]] | |||
=== service === | === service === | ||
Line 103: | Line 117: | ||
: 0 | : 0 | ||
=== | === value === | ||
; Description | |||
: The cached value of this characteristic. This value can be updated via readValue() method or via characteristic notification or indication from the remote device. | |||
; Value Type | |||
: ArrayBuffer or null | |||
; Default Value | |||
: null pointer | |||
=== permissions === | |||
; Description | ; Description | ||
: A bit mask which describes | : A bit mask which describes allowed operations on the characteristic. | ||
; Value Type | ; Value Type | ||
: | : dictionary [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattPermissions|GattPermissions]] | ||
; Default Value | ; Default Value | ||
: 0 | : 0 | ||
=== | === properties === | ||
; Description | ; Description | ||
: | : A bit mask which describes how to use the characteristic value. | ||
; Value Type | ; Value Type | ||
: | : dictionary [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattCharacteristicProperties|GattCharacteristicProperties]] | ||
; Default Value | ; Default Value | ||
: 0 | : 0 | ||
=== | === writeType === | ||
; Description | ; Description | ||
: The | : The type of write operation. | ||
; Value Type | ; Value Type | ||
: | : dictionary [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#WriteType|WriteType]] | ||
; Default Value | ; Default Value | ||
: | : 0 | ||
== Methods == | == Methods == | ||
Line 142: | Line 166: | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#startNotifications.28.29|BluetoothGattCharacteristic.startNotifications()]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#startNotifications.28.29|BluetoothGattCharacteristic.startNotifications()]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#stopNotifications.28.29|BluetoothGattCharacteristic.stopNotifications()]] | * [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#stopNotifications.28.29|BluetoothGattCharacteristic.stopNotifications()]] | ||
* [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#addDescriptor.28DOMString_uuid.2C_GattPermissions_permissions.2C_ArrayBuffer_value.29|addDescriptor(DOMString uuid, GattPermissions permissions, ArrayBuffer value)]] | |||
=== readValue() === | === readValue() === | ||
; Description | ; Description | ||
: Read the characteristic value from the | : Read the characteristic value from either remote device (client role) or the local device (server role). In client mode, the cached value property will also be updated after retrieving the value from the remote GATT server. | ||
; Return | ; Return | ||
: A Promise to indicate whether the operation is resolved or rejected. The Promise is resolved along with the value retrieved from the remote device. | : A Promise to indicate whether the operation is resolved or rejected. The Promise is resolved along with the value retrieved from the remote device or local device. | ||
=== writeValue(ArrayBuffer value) === | === writeValue(ArrayBuffer value) === | ||
; Description | ; Description | ||
: Write the characteristic value to the remote device. | : Write the characteristic value to the GATT server. If the local device is the GATT client, the value will be written to the remote GATT server. On the other hand, if the local device is the GATT server, the value will be written to [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#value|value]]. | ||
; Parameter | ; Parameter | ||
: ''value'' | : ''value'' | ||
:: Desired value to be written to the | :: Desired value to be written to the GATT server. | ||
; Return | ; Return | ||
: A Promise to indicate whether the operation is resolved or rejected | : A Promise to indicate whether the operation is resolved or rejected. | ||
=== startNotifications() === | === startNotifications() === | ||
Line 178: | Line 203: | ||
; Return | ; Return | ||
: A Promise to indicate whether the operation is resolved or rejected. The Promise is rejected if there is no Client Characteristic Configuration descriptor (CCCD) for this characteristic. | : A Promise to indicate whether the operation is resolved or rejected. The Promise is rejected if there is no Client Characteristic Configuration descriptor (CCCD) for this characteristic. | ||
=== addDescriptor(DOMString uuid, GattPermissions permissions, ArrayBuffer value) === | |||
; Description | |||
: Adds a descriptor to this characteristic. | |||
; Parameter | |||
: ''uuid'' | |||
:: UUID of the descriptor to add. | |||
: ''permissions'' | |||
:: [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#GattPermissions|GattPermissions]] of the descriptor to add. | |||
: ''value'' | |||
:: The initial value of this descriptor. | |||
; Return | |||
: A Promise to indicate whether the operation is resolved or rejected. If the Promise is resolved, it returns the added [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattDescriptor#BluetoothGattDescriptor|BluetoothGattDescriptor]] object, and property [[B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic#descriptors|descriptors]] is also updated with the added descriptor. |
edits