OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // The <code>chrome.bluetoothLowEnergy</code> API is used to communicate with | 5 // The <code>chrome.bluetoothLowEnergy</code> API is used to communicate with |
6 // Bluetooth Smart (Low Energy) devices using the | 6 // Bluetooth Smart (Low Energy) devices using the |
7 // <a href="https://developer.bluetooth.org/TechnologyOverview/Pages/GATT.aspx"> | 7 // <a href="https://developer.bluetooth.org/TechnologyOverview/Pages/GATT.aspx"> |
8 // Generic Attribute Profile (GATT)</a>. | 8 // Generic Attribute Profile (GATT)</a>. |
9 namespace bluetoothLowEnergy { | 9 namespace bluetoothLowEnergy { |
10 // Values representing the possible properties of a characteristic. | 10 // Values representing the possible properties of a characteristic. |
11 enum CharacteristicProperty {broadcast, read, writeWithoutResponse, write, | 11 enum CharacteristicProperty {broadcast, read, writeWithoutResponse, write, |
12 notify, indicate, authenticatedSignedWrites, | 12 notify, indicate, authenticatedSignedWrites, |
13 extendedProperties, reliableWrite, | 13 extendedProperties, reliableWrite, |
14 writableAuxiliaries}; | 14 writableAuxiliaries}; |
15 | 15 |
16 // Type of advertisement. If 'broadcast' is chosen, the sent advertisement | 16 // Type of advertisement. If 'broadcast' is chosen, the sent advertisement |
17 // type will be ADV_NONCONN_IND and the device will broadcast with a random | 17 // type will be ADV_NONCONN_IND and the device will broadcast with a random |
18 // MAC Address. If set to 'peripheral', the advertisement type will be | 18 // MAC Address. If set to 'peripheral', the advertisement type will be |
19 // ADV_IND or ADV_SCAN_IND and the device will broadcast with real Bluetooth | 19 // ADV_IND or ADV_SCAN_IND and the device will broadcast with real Bluetooth |
20 // Adapter's MAC Address. | 20 // Adapter's MAC Address. |
21 enum AdvertisementType {broadcast, peripheral}; | 21 enum AdvertisementType {broadcast, peripheral}; |
22 | 22 |
| 23 // Result of a register or unregister service call. |
| 24 enum ServiceResult { |
| 25 // The service operation was successful. |
| 26 success, |
| 27 // The service that is being registered is already regsitered. |
| 28 alreadyRegistered, |
| 29 // The service that is being unregistered is not regsitered. |
| 30 notRegistered |
| 31 }; |
| 32 |
| 33 // Represents a bluetooth central device that is connected to the local GATT |
| 34 // server. |
| 35 dictionary Device { |
| 36 // The address of the device, in the format 'XX:XX:XX:XX:XX:XX'. |
| 37 DOMString address; |
| 38 |
| 39 // The human-readable name of the device. |
| 40 DOMString? name; |
| 41 |
| 42 // The class of the device, a bit-field defined by |
| 43 // http://www.bluetooth.org/en-us/specification/assigned-numbers/baseband. |
| 44 long? deviceClass; |
| 45 }; |
| 46 |
23 // Represents a peripheral's Bluetooth GATT Service, a collection of | 47 // Represents a peripheral's Bluetooth GATT Service, a collection of |
24 // characteristics and relationships to other services that encapsulate | 48 // characteristics and relationships to other services that encapsulate |
25 // the behavior of part of a device. | 49 // the behavior of part of a device. |
26 dictionary Service { | 50 dictionary Service { |
27 // The UUID of the service, e.g. 0000180d-0000-1000-8000-00805f9b34fb. | 51 // The UUID of the service, e.g. 0000180d-0000-1000-8000-00805f9b34fb. |
28 DOMString uuid; | 52 DOMString uuid; |
29 | 53 |
30 // Indicates whether the type of this service is primary or secondary. | 54 // Indicates whether the type of this service is primary or secondary. |
31 boolean isPrimary; | 55 boolean isPrimary; |
32 | 56 |
33 // Indicates whether this service represents a local service hosted by the | |
34 // application and available to other peripherals, or a remote service | |
35 // hosted and received from a remote peripheral. | |
36 [nodoc] boolean isLocal; | |
37 | |
38 // Returns the identifier assigned to this service. Use the instance ID to | 57 // Returns the identifier assigned to this service. Use the instance ID to |
39 // distinguish between services from a peripheral with the same UUID and | 58 // distinguish between services from a peripheral with the same UUID and |
40 // to make function calls that take in a service identifier. Present, if | 59 // to make function calls that take in a service identifier. Present, if |
41 // this instance represents a remote service. | 60 // this instance represents a remote service. |
42 DOMString? instanceId; | 61 DOMString? instanceId; |
43 | 62 |
44 // The device address of the remote peripheral that the GATT service belongs | 63 // The device address of the remote peripheral that the GATT service belongs |
45 // to. Present, if this instance represents a remote service. | 64 // to. Present, if this instance represents a remote service. |
46 DOMString? deviceAddress; | 65 DOMString? deviceAddress; |
47 }; | 66 }; |
48 | 67 |
49 // Represents a GATT characteristic, which is a basic data element that | 68 // Represents a GATT characteristic, which is a basic data element that |
50 // provides further information about a peripheral's service. | 69 // provides further information about a peripheral's service. |
51 dictionary Characteristic { | 70 dictionary Characteristic { |
52 // The UUID of the characteristic, e.g. | 71 // The UUID of the characteristic, e.g. |
53 // 00002a37-0000-1000-8000-00805f9b34fb. | 72 // 00002a37-0000-1000-8000-00805f9b34fb. |
54 DOMString uuid; | 73 DOMString uuid; |
55 | 74 |
56 // Indicates whether this characteristic represents a local characteristic | |
57 // hosted by the application and available to other peripherals, or a remote | |
58 // characteristic hosted and received from a remote peripheral. | |
59 [nodoc] boolean isLocal; | |
60 | |
61 // The GATT service this characteristic belongs to. | 75 // The GATT service this characteristic belongs to. |
62 Service service; | 76 Service? service; |
63 | 77 |
64 // The properties of this characteristic. | 78 // The properties of this characteristic. |
65 CharacteristicProperty[] properties; | 79 CharacteristicProperty[] properties; |
66 | 80 |
67 // Returns the identifier assigned to this characteristic. Use the instance | 81 // Returns the identifier assigned to this characteristic. Use the instance |
68 // ID to distinguish between characteristics from a peripheral with the same | 82 // ID to distinguish between characteristics from a peripheral with the same |
69 // UUID and to make function calls that take in a characteristic identifier. | 83 // UUID and to make function calls that take in a characteristic identifier. |
70 // Present, if this instance represents a remote characteristic. | 84 // Present, if this instance represents a remote characteristic. |
71 DOMString? instanceId; | 85 DOMString? instanceId; |
72 | 86 |
73 // The currently cached characteristic value. This value gets updated when | 87 // The currently cached characteristic value. This value gets updated when |
74 // the value of the characteristic is read or updated via a notification | 88 // the value of the characteristic is read or updated via a notification |
75 // or indication. | 89 // or indication. |
76 ArrayBuffer? value; | 90 ArrayBuffer? value; |
77 }; | 91 }; |
78 | 92 |
79 // Represents a GATT characteristic descriptor, which provides further | 93 // Represents a GATT characteristic descriptor, which provides further |
80 // information about a characteristic's value. | 94 // information about a characteristic's value. |
81 dictionary Descriptor { | 95 dictionary Descriptor { |
82 // The UUID of the characteristic descriptor, e.g. | 96 // The UUID of the characteristic descriptor, e.g. |
83 // 00002902-0000-1000-8000-00805f9b34fb. | 97 // 00002902-0000-1000-8000-00805f9b34fb. |
84 DOMString uuid; | 98 DOMString uuid; |
85 | 99 |
86 // Indicates whether this descriptor represents a local descriptor | |
87 // hosted by the application and available to other peripherals, or a remote | |
88 // descriptor hosted and received from a remote peripheral. | |
89 [nodoc] boolean isLocal; | |
90 | |
91 // The GATT characteristic this descriptor belongs to. | 100 // The GATT characteristic this descriptor belongs to. |
92 Characteristic characteristic; | 101 Characteristic? characteristic; |
93 | 102 |
94 // Returns the identifier assigned to this descriptor. Use the instance ID | 103 // Returns the identifier assigned to this descriptor. Use the instance ID |
95 // to distinguish between descriptors from a peripheral with the same UUID | 104 // to distinguish between descriptors from a peripheral with the same UUID |
96 // and to make function calls that take in a descriptor identifier. Present, | 105 // and to make function calls that take in a descriptor identifier. Present, |
97 // if this instance represents a remote characteristic. | 106 // if this instance represents a remote characteristic. |
98 DOMString? instanceId; | 107 DOMString? instanceId; |
99 | 108 |
100 // The currently cached descriptor value. This value gets updated when | 109 // The currently cached descriptor value. This value gets updated when |
101 // the value of the descriptor is read. | 110 // the value of the descriptor is read. |
102 ArrayBuffer? value; | 111 ArrayBuffer? value; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 | 159 |
151 // List of UUIDs to include in the "Solicit UUIDs" field of the Advertising | 160 // List of UUIDs to include in the "Solicit UUIDs" field of the Advertising |
152 // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. | 161 // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. |
153 DOMString[]? solicitUuids; | 162 DOMString[]? solicitUuids; |
154 | 163 |
155 // List of service data to be included in "Service Data" fields of the adver
tising | 164 // List of service data to be included in "Service Data" fields of the adver
tising |
156 // data. | 165 // data. |
157 ServiceData[]? serviceData; | 166 ServiceData[]? serviceData; |
158 }; | 167 }; |
159 | 168 |
| 169 // Represents a an attribute read/write request. |
| 170 dictionary Request { |
| 171 // Unique ID for this request. Use this ID when responding to this request. |
| 172 long requestId; |
| 173 // Device that send this request. |
| 174 Device device; |
| 175 // Value to write (if this is a write request). |
| 176 ArrayBuffer? value; |
| 177 }; |
| 178 |
| 179 // Represents a response to an attribute read/write request. |
| 180 dictionary Response { |
| 181 // Id of the request this is a response to. |
| 182 long requestId; |
| 183 // If this is an error response, this should be true. |
| 184 boolean isError; |
| 185 // Response value. Write requests and error responses will ignore this |
| 186 // parameter. |
| 187 ArrayBuffer? value; |
| 188 }; |
| 189 |
160 callback CharacteristicCallback = void(Characteristic result); | 190 callback CharacteristicCallback = void(Characteristic result); |
| 191 callback CreateCharacteristicCallback = void(DOMString characteristicId); |
161 callback CharacteristicsCallback = void(Characteristic[] result); | 192 callback CharacteristicsCallback = void(Characteristic[] result); |
162 callback DescriptorCallback = void(Descriptor result); | 193 callback DescriptorCallback = void(Descriptor result); |
| 194 callback CreateDescriptorCallback = void(DOMString descriptorId); |
163 callback DescriptorsCallback = void(Descriptor[] result); | 195 callback DescriptorsCallback = void(Descriptor[] result); |
164 callback ResultCallback = void(); | 196 callback ResultCallback = void(); |
165 callback ServiceCallback = void(Service result); | 197 callback ServiceCallback = void(Service result); |
| 198 callback CreateServiceCallback = void(DOMString serviceId); |
166 callback ServicesCallback = void(Service[] result); | 199 callback ServicesCallback = void(Service[] result); |
| 200 callback ServiceResultCallback = void(ServiceResult result); |
167 callback RegisterAdvertisementCallback = void (long advertisementId); | 201 callback RegisterAdvertisementCallback = void (long advertisementId); |
168 | 202 |
169 // These functions all report failures via chrome.runtime.lastError. | 203 // These functions all report failures via chrome.runtime.lastError. |
170 interface Functions { | 204 interface Functions { |
171 // Establishes a connection between the application and the device with the | 205 // Establishes a connection between the application and the device with the |
172 // given address. A device may be already connected and its GATT services | 206 // given address. A device may be already connected and its GATT services |
173 // available without calling <code>connect</code>, however, an app that | 207 // available without calling <code>connect</code>, however, an app that |
174 // wants to access GATT services of a device should call this function to | 208 // wants to access GATT services of a device should call this function to |
175 // make sure that a connection to the device is maintained. If the device | 209 // make sure that a connection to the device is maintained. If the device |
176 // is not connected, all GATT services of the device will be discovered | 210 // is not connected, all GATT services of the device will be discovered |
177 // after a successful call to <code>connect</code>. | 211 // after a successful call to <code>connect</code>. |
178 // |deviceAddress| : The Bluetooth address of the remote device to which a | 212 // |deviceAddress|: The Bluetooth address of the remote device to which a |
179 // GATT connection should be opened. | 213 // GATT connection should be opened. |
180 // |properties| : Connection properties (optional). | 214 // |properties|: Connection properties (optional). |
181 // |callback| : Called when the connect request has completed. | 215 // |callback|: Called when the connect request has completed. |
182 static void connect(DOMString deviceAddress, | 216 static void connect(DOMString deviceAddress, |
183 optional ConnectProperties properties, | 217 optional ConnectProperties properties, |
184 ResultCallback callback); | 218 ResultCallback callback); |
185 | 219 |
186 // Closes the app's connection to the device with the given address. Note | 220 // Closes the app's connection to the device with the given address. Note |
187 // that this will not always destroy the physical link itself, since there | 221 // that this will not always destroy the physical link itself, since there |
188 // may be other apps with open connections. | 222 // may be other apps with open connections. |
189 // |deviceAddress| : The Bluetooth address of the remote device. | 223 // |deviceAddress|: The Bluetooth address of the remote device. |
190 // |callback| : Called when the disconnect request has completed. | 224 // |callback|: Called when the disconnect request has completed. |
191 static void disconnect(DOMString deviceAddress, | 225 static void disconnect(DOMString deviceAddress, |
192 optional ResultCallback callback); | 226 optional ResultCallback callback); |
193 | 227 |
194 // Get the GATT service with the given instance ID. | 228 // Get the GATT service with the given instance ID. |
195 // |serviceId| : The instance ID of the requested GATT service. | 229 // |serviceId|: The instance ID of the requested GATT service. |
196 // |callback| : Called with the requested Service object. | 230 // |callback|: Called with the requested Service object. |
197 static void getService(DOMString serviceId, ServiceCallback callback); | 231 static void getService(DOMString serviceId, ServiceCallback callback); |
198 | 232 |
| 233 // Create a locally hosted GATT service. This service can be registered |
| 234 // to be available on a local GATT server. |
| 235 // This function is only available if the app has both the |
| 236 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 237 // true. The peripheral permission may not be available to all apps. |
| 238 // |service|: The service to create. |
| 239 // |callback|: Called with the created services's unique ID. |
| 240 static void createService(Service service, CreateServiceCallback callback); |
| 241 |
199 // Get all the GATT services that were discovered on the remote device with | 242 // Get all the GATT services that were discovered on the remote device with |
200 // the given device address. | 243 // the given device address. |
201 // |deviceAddress| : The Bluetooth address of the remote device whose GATT | 244 // |deviceAddress|: The Bluetooth address of the remote device whose GATT |
202 // services should be returned. | 245 // services should be returned. |
203 // |callback| : Called with the list of requested Service objects. | 246 // |callback|: Called with the list of requested Service objects. |
204 static void getServices(DOMString deviceAddress, ServicesCallback callback); | 247 static void getServices(DOMString deviceAddress, ServicesCallback callback); |
205 | 248 |
206 // Get the GATT characteristic with the given instance ID that belongs to | 249 // Get the GATT characteristic with the given instance ID that belongs to |
207 // the given GATT service, if the characteristic exists. | 250 // the given GATT service, if the characteristic exists. |
208 // |characteristicId| : The instance ID of the requested GATT | 251 // |characteristicId|: The instance ID of the requested GATT |
209 // characteristic. | 252 // characteristic. |
210 // |callback| : Called with the requested Characteristic object. | 253 // |callback|: Called with the requested Characteristic object. |
211 static void getCharacteristic(DOMString characteristicId, | 254 static void getCharacteristic(DOMString characteristicId, |
212 CharacteristicCallback callback); | 255 CharacteristicCallback callback); |
213 | 256 |
| 257 // Create a locally hosted GATT characteristic. This characteristic must |
| 258 // be hosted under a valid service. If the service ID is not valid, the |
| 259 // lastError will be set. |
| 260 // This function is only available if the app has both the |
| 261 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 262 // true. The peripheral permission may not be available to all apps. |
| 263 // |characteristic|: The characteristic to create. |
| 264 // |serviceId|: ID of the service to create this characteristic for. |
| 265 // |callback|: Called with the created characteristic's unique ID. |
| 266 static void createCharacteristic(Characteristic characteristic, |
| 267 DOMString serviceId, |
| 268 CreateCharacteristicCallback callback); |
| 269 |
214 // Get a list of all discovered GATT characteristics that belong to the | 270 // Get a list of all discovered GATT characteristics that belong to the |
215 // given service. | 271 // given service. |
216 // |serviceId| : The instance ID of the GATT service whose characteristics | 272 // |serviceId|: The instance ID of the GATT service whose characteristics |
217 // should be returned. | 273 // should be returned. |
218 // |callback| : Called with the list of characteristics that belong to the | 274 // |callback|: Called with the list of characteristics that belong to the |
219 // given service. | 275 // given service. |
220 static void getCharacteristics(DOMString serviceId, | 276 static void getCharacteristics(DOMString serviceId, |
221 CharacteristicsCallback callback); | 277 CharacteristicsCallback callback); |
222 | 278 |
223 // Get a list of GATT services that are included by the given service. | 279 // Get a list of GATT services that are included by the given service. |
224 // |serviceId| : The instance ID of the GATT service whose included | 280 // |serviceId|: The instance ID of the GATT service whose included |
225 // services should be returned. | 281 // services should be returned. |
226 // |callback| : Called with the list of GATT services included from the | 282 // |callback|: Called with the list of GATT services included from the |
227 // given service. | 283 // given service. |
228 static void getIncludedServices(DOMString serviceId, | 284 static void getIncludedServices(DOMString serviceId, |
229 ServicesCallback callback); | 285 ServicesCallback callback); |
230 | 286 |
231 // Get the GATT characteristic descriptor with the given instance ID. | 287 // Get the GATT characteristic descriptor with the given instance ID. |
232 // |descriptorId| : The instance ID of the requested GATT characteristic | 288 // |descriptorId|: The instance ID of the requested GATT characteristic |
233 // descriptor. | 289 // descriptor. |
234 // |callback| : Called with the requested Descriptor object. | 290 // |callback|: Called with the requested Descriptor object. |
235 static void getDescriptor(DOMString descriptorId, | 291 static void getDescriptor(DOMString descriptorId, |
236 DescriptorCallback callback); | 292 DescriptorCallback callback); |
237 | 293 |
| 294 // Create a locally hosted GATT descriptor. This descriptor must |
| 295 // be hosted under a valid characteristic. If the characteristic ID is not |
| 296 // valid, the lastError will be set. |
| 297 // This function is only available if the app has both the |
| 298 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 299 // true. The peripheral permission may not be available to all apps. |
| 300 // |descriptor|: The descriptor to create. |
| 301 // |characteristicId|: ID of the characteristic to create this descriptor |
| 302 // for. |
| 303 // |callback|: Called with the created descriptor's unique ID. |
| 304 static void createDescriptor(Descriptor descriptor, |
| 305 DOMString characteristicId, |
| 306 CreateDescriptorCallback callback); |
| 307 |
238 // Get a list of GATT characteristic descriptors that belong to the given | 308 // Get a list of GATT characteristic descriptors that belong to the given |
239 // characteristic. | 309 // characteristic. |
240 // |characteristicId| : The instance ID of the GATT characteristic whose | 310 // |characteristicId|: The instance ID of the GATT characteristic whose |
241 // descriptors should be returned. | 311 // descriptors should be returned. |
242 // |callback| : Called with the list of descriptors that belong to the given | 312 // |callback|: Called with the list of descriptors that belong to the given |
243 // characteristic. | 313 // characteristic. |
244 static void getDescriptors(DOMString characteristicId, | 314 static void getDescriptors(DOMString characteristicId, |
245 DescriptorsCallback callback); | 315 DescriptorsCallback callback); |
246 | 316 |
247 // Retrieve the value of a specified characteristic from a remote | 317 // Retrieve the value of a specified characteristic from a remote |
248 // peripheral. | 318 // peripheral. |
249 // |characteristicId| : The instance ID of the GATT characteristic whose | 319 // |characteristicId|: The instance ID of the GATT characteristic whose |
250 // value should be read from the remote device. | 320 // value should be read from the remote device. |
251 // |callback| : Called with the Characteristic object whose value was | 321 // |callback|: Called with the Characteristic object whose value was |
252 // requested. The <code>value</code> field of the returned Characteristic | 322 // requested. The <code>value</code> field of the returned Characteristic |
253 // object contains the result of the read request. | 323 // object contains the result of the read request. |
254 static void readCharacteristicValue(DOMString characteristicId, | 324 static void readCharacteristicValue(DOMString characteristicId, |
255 CharacteristicCallback callback); | 325 CharacteristicCallback callback); |
256 | 326 |
257 // Write the value of a specified characteristic from a remote peripheral. | 327 // Write the value of a specified characteristic from a remote peripheral. |
258 // |characteristicId| : The instance ID of the GATT characteristic whose | 328 // |characteristicId|: The instance ID of the GATT characteristic whose |
259 // value should be written to. | 329 // value should be written to. |
260 // |value| : The value that should be sent to the remote characteristic as | 330 // |value|: The value that should be sent to the remote characteristic as |
261 // part of the write request. | 331 // part of the write request. |
262 // |callback| : Called when the write request has completed. | 332 // |callback|: Called when the write request has completed. |
263 static void writeCharacteristicValue(DOMString characteristicId, | 333 static void writeCharacteristicValue(DOMString characteristicId, |
264 ArrayBuffer value, | 334 ArrayBuffer value, |
265 ResultCallback callback); | 335 ResultCallback callback); |
266 | 336 |
267 // Enable value notifications/indications from the specified characteristic. | 337 // Enable value notifications/indications from the specified characteristic. |
268 // Once enabled, an application can listen to notifications using the | 338 // Once enabled, an application can listen to notifications using the |
269 // $(ref:onCharacteristicValueChanged) event. | 339 // $(ref:onCharacteristicValueChanged) event. |
270 // |characteristicId| : The instance ID of the GATT characteristic that | 340 // |characteristicId|: The instance ID of the GATT characteristic that |
271 // notifications should be enabled on. | 341 // notifications should be enabled on. |
272 // |properties| : Notification session properties (optional). | 342 // |properties|: Notification session properties (optional). |
273 // |callback| : Called when the request has completed. | 343 // |callback|: Called when the request has completed. |
274 static void startCharacteristicNotifications( | 344 static void startCharacteristicNotifications( |
275 DOMString characteristicId, | 345 DOMString characteristicId, |
276 optional NotificationProperties properties, | 346 optional NotificationProperties properties, |
277 ResultCallback callback); | 347 ResultCallback callback); |
278 | 348 |
279 // Disable value notifications/indications from the specified | 349 // Disable value notifications/indications from the specified |
280 // characteristic. After a successful call, the application will stop | 350 // characteristic. After a successful call, the application will stop |
281 // receiving notifications/indications from this characteristic. | 351 // receiving notifications/indications from this characteristic. |
282 // |characteristicId| : The instance ID of the GATT characteristic on which | 352 // |characteristicId|: The instance ID of the GATT characteristic on which |
283 // this app's notification session should be stopped. | 353 // this app's notification session should be stopped. |
284 // |callback| : Called when the request has completed (optional). | 354 // |callback|: Called when the request has completed (optional). |
285 static void stopCharacteristicNotifications( | 355 static void stopCharacteristicNotifications( |
286 DOMString characteristicId, | 356 DOMString characteristicId, |
287 optional ResultCallback callback); | 357 optional ResultCallback callback); |
288 | 358 |
289 // Retrieve the value of a specified characteristic descriptor from a remote | 359 // Retrieve the value of a specified characteristic descriptor from a remote |
290 // peripheral. | 360 // peripheral. |
291 // |descriptorId| : The instance ID of the GATT characteristic descriptor | 361 // |descriptorId|: The instance ID of the GATT characteristic descriptor |
292 // whose value should be read from the remote device. | 362 // whose value should be read from the remote device. |
293 // |callback| : Called with the Descriptor object whose value was requested. | 363 // |callback|: Called with the Descriptor object whose value was requested. |
294 // The <code>value</code> field of the returned Descriptor object contains | 364 // The <code>value</code> field of the returned Descriptor object contains |
295 // the result of the read request. | 365 // the result of the read request. |
296 static void readDescriptorValue(DOMString descriptorId, | 366 static void readDescriptorValue(DOMString descriptorId, |
297 DescriptorCallback callback); | 367 DescriptorCallback callback); |
298 | 368 |
299 // Write the value of a specified characteristic descriptor from a remote | 369 // Write the value of a specified characteristic descriptor from a remote |
300 // peripheral. | 370 // peripheral. |
301 // |descriptorId| : The instance ID of the GATT characteristic descriptor | 371 // |descriptorId|: The instance ID of the GATT characteristic descriptor |
302 // whose value should be written to. | 372 // whose value should be written to. |
303 // |value| : The value that should be sent to the remote descriptor as part | 373 // |value|: The value that should be sent to the remote descriptor as part |
304 // of the write request. | 374 // of the write request. |
305 // |callback| : Called when the write request has completed. | 375 // |callback|: Called when the write request has completed. |
306 static void writeDescriptorValue(DOMString descriptorId, | 376 static void writeDescriptorValue(DOMString descriptorId, |
307 ArrayBuffer value, | 377 ArrayBuffer value, |
308 ResultCallback callback); | 378 ResultCallback callback); |
309 | 379 |
| 380 // Register the given service with the local GATT server. If the service |
| 381 // ID is invalid, the lastError will be set. |
| 382 // This function is only available if the app has both the |
| 383 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 384 // true. The peripheral permission may not be available to all apps. |
| 385 // |serviceId|: Unique ID of a created service. |
| 386 // |callback|: Callback with the result of the register operation. |
| 387 static void registerService( |
| 388 DOMString serviceId, ServiceResultCallback callback); |
| 389 |
| 390 // Unregister the given service with the local GATT server. If the service |
| 391 // ID is invalid, the lastError will be set. |
| 392 // This function is only available if the app has both the |
| 393 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 394 // true. The peripheral permission may not be available to all apps. |
| 395 // |serviceId|: Unique ID of a current registered service. |
| 396 // |callback|: Callback with the result of the register operation. |
| 397 static void unregisterService( |
| 398 DOMString serviceId, ServiceResultCallback callback); |
| 399 |
310 // Create an advertisement and register it for advertising. To call this | 400 // Create an advertisement and register it for advertising. To call this |
311 // function, the app must have the bluetooth:low_energy and | 401 // function, the app must have the bluetooth:low_energy and |
312 // bluetooth:peripheral permissions set to true. Additionally this API | 402 // bluetooth:peripheral permissions set to true. Additionally this API |
313 // is only available to auto launched apps in Kiosk Mode of by setting | 403 // is only available to auto launched apps in Kiosk Mode of by setting |
314 // the 'enable-ble-advertising-in-apps' flag. | 404 // the 'enable-ble-advertising-in-apps' flag. |
315 // See https://developer.chrome.com/apps/manifest/bluetooth | 405 // See https://developer.chrome.com/apps/manifest/bluetooth |
316 // Note: On some hardware, central and peripheral modes at the same time is | 406 // Note: On some hardware, central and peripheral modes at the same time is |
317 // supported but on hardware that doesn't support this, making this call | 407 // supported but on hardware that doesn't support this, making this call |
318 // will switch the device to peripheral mode. In the case of hardware which | 408 // will switch the device to peripheral mode. In the case of hardware which |
319 // does not support both central and peripheral mode, attempting to use the | 409 // does not support both central and peripheral mode, attempting to use the |
320 // device in both modes will lead to undefined behavior or prevent other | 410 // device in both modes will lead to undefined behavior or prevent other |
321 // central-role applications from behaving correctly (including the | 411 // central-role applications from behaving correctly (including the |
322 // discovery of Bluetooth Low Energy devices). | 412 // discovery of Bluetooth Low Energy devices). |
323 // |advertisement| : The advertisement to advertise. | 413 // |advertisement|: The advertisement to advertise. |
324 // |callback| : Called once the registeration is done and we've started | 414 // |callback|: Called once the registeration is done and we've started |
325 // advertising. Returns the id of the created advertisement. | 415 // advertising. Returns the id of the created advertisement. |
326 static void registerAdvertisement( | 416 static void registerAdvertisement( |
327 Advertisement advertisement, RegisterAdvertisementCallback callback); | 417 Advertisement advertisement, RegisterAdvertisementCallback callback); |
328 | 418 |
329 // Unregisters an advertisement and stops its advertising. If the | 419 // Unregisters an advertisement and stops its advertising. If the |
330 // advertisement fails to unregister the only way to stop advertising | 420 // advertisement fails to unregister the only way to stop advertising |
331 // might be to restart the device. | 421 // might be to restart the device. |
332 // |advertisementId| : Id of the advertisement to unregister. | 422 // |advertisementId|: Id of the advertisement to unregister. |
333 // |callback| : Called once the advertisement is unregistered and is no | 423 // |callback|: Called once the advertisement is unregistered and is no |
334 // longer being advertised. | 424 // longer being advertised. |
335 static void unregisterAdvertisement(long advertisementId, | 425 static void unregisterAdvertisement(long advertisementId, |
336 ResultCallback callback); | 426 ResultCallback callback); |
| 427 |
| 428 // Sends a response for a characteristic or descriptor read/write |
| 429 // request. |
| 430 // This function is only available if the app has both the |
| 431 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 432 // true. The peripheral permission may not be available to all apps. |
| 433 // |response|: The response to the request. |
| 434 static void sendRequestResponse(Response response); |
337 }; | 435 }; |
338 | 436 |
339 interface Events { | 437 interface Events { |
340 // Fired whan a new GATT service has been discovered on a remote device. | 438 // Fired whan a new GATT service has been discovered on a remote device. |
341 // |service| : The GATT service that was added. | 439 // |service|: The GATT service that was added. |
342 static void onServiceAdded(Service service); | 440 static void onServiceAdded(Service service); |
343 | 441 |
344 // Fired when the state of a remote GATT service changes. This involves any | 442 // Fired when the state of a remote GATT service changes. This involves any |
345 // characteristics and/or descriptors that get added or removed from the | 443 // characteristics and/or descriptors that get added or removed from the |
346 // service, as well as "ServiceChanged" notifications from the remote | 444 // service, as well as "ServiceChanged" notifications from the remote |
347 // device. | 445 // device. |
348 // |service| : The GATT service whose state has changed. | 446 // |service|: The GATT service whose state has changed. |
349 static void onServiceChanged(Service service); | 447 static void onServiceChanged(Service service); |
350 | 448 |
351 // Fired when a GATT service that was previously discovered on a remote | 449 // Fired when a GATT service that was previously discovered on a remote |
352 // device has been removed. | 450 // device has been removed. |
353 // |service| : The GATT service that was removed. | 451 // |service|: The GATT service that was removed. |
354 static void onServiceRemoved(Service service); | 452 static void onServiceRemoved(Service service); |
355 | 453 |
356 // Fired when the value of a remote GATT characteristic changes, either as | 454 // Fired when the value of a remote GATT characteristic changes, either as |
357 // a result of a read request, or a value change notification/indication | 455 // a result of a read request, or a value change notification/indication |
358 // This event will only be sent if the app has enabled notifications by | 456 // This event will only be sent if the app has enabled notifications by |
359 // calling $(ref:startCharacteristicNotifications). | 457 // calling $(ref:startCharacteristicNotifications). |
360 // |characteristic| : The GATT characteristic whose value has changed. | 458 // |characteristic|: The GATT characteristic whose value has changed. |
361 static void onCharacteristicValueChanged(Characteristic characteristic); | 459 static void onCharacteristicValueChanged(Characteristic characteristic); |
362 | 460 |
363 // Fired when the value of a remote GATT characteristic descriptor changes, | 461 // Fired when the value of a remote GATT characteristic descriptor changes, |
364 // usually as a result of a read request. This event exists | 462 // usually as a result of a read request. This event exists |
365 // mostly for convenience and will always be sent after a successful | 463 // mostly for convenience and will always be sent after a successful |
366 // call to $(ref:readDescriptorValue). | 464 // call to $(ref:readDescriptorValue). |
367 // |descriptor| : The GATT characteristic descriptor whose value has | 465 // |descriptor|: The GATT characteristic descriptor whose value has |
368 // changed. | 466 // changed. |
369 static void onDescriptorValueChanged(Descriptor descriptor); | 467 static void onDescriptorValueChanged(Descriptor descriptor); |
| 468 |
| 469 // Fired when a connected central device requests to read the value of a |
| 470 // characteristic registered on the local GATT server. Not responding |
| 471 // to this request for a long time may lead to a disconnection. |
| 472 // This event is only available if the app has both the |
| 473 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 474 // true. The peripheral permission may not be available to all apps. |
| 475 // |request|: Request data for this request. |
| 476 // |characteristic|: The GATT characteristic whose value is requested. |
| 477 static void onCharacteristicReadRequest( |
| 478 Request request, DOMString characteristicId); |
| 479 |
| 480 // Fired when a connected central device requests to write the value of a |
| 481 // characteristic registered on the local GATT server. Not responding |
| 482 // to this request for a long time may lead to a disconnection. |
| 483 // This event is only available if the app has both the |
| 484 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 485 // true. The peripheral permission may not be available to all apps. |
| 486 // |request|: Request data for this request. |
| 487 // |characteristic|: The GATT characteristic whose value is being written. |
| 488 static void onCharacteristicWriteRequest( |
| 489 Request request, DOMString characteristicId); |
| 490 |
| 491 // Fired when a connected central device requests to read the value of a |
| 492 // descriptor registered on the local GATT server. Not responding to |
| 493 // this request for a long time may lead to a disconnection. |
| 494 // This event is only available if the app has both the |
| 495 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 496 // true. The peripheral permission may not be available to all apps. |
| 497 // |request|: Request data for this request. |
| 498 // |descriptor|: The GATT descriptor whose value is requested. |
| 499 static void onDescriptorReadRequest( |
| 500 Request request, DOMString descriptorId); |
| 501 |
| 502 // Fired when a connected central device requests to write the value of a |
| 503 // descriptor registered on the local GATT server. Not responding to |
| 504 // this request for a long time may lead to a disconnection. |
| 505 // This event is only available if the app has both the |
| 506 // bluetooth:low_energy and the bluetooth:peripheral permissions set to |
| 507 // true. The peripheral permission may not be available to all apps. |
| 508 // |request|: Request data for this request. |
| 509 // |descriptor|: The GATT descriptor whose value is being written. |
| 510 static void onDescriptorWriteRequest( |
| 511 Request request, DOMString descriptorId); |
370 }; | 512 }; |
371 }; | 513 }; |
OLD | NEW |