Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: chrome/common/extensions/api/bluetooth_low_energy.idl

Issue 1915243003: API Bindings for GATT server functionality. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@adapter_and_tests
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698