Chromium Code Reviews| 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 | |
| 17 // type will be ADV_NONCONN_IND. If set to 'peripheral', the advertisement | |
| 18 // type will be ADV_IND or ADV_SCAN_IND. | |
| 19 [nodoc] enum AdvertisementType {broadcast, peripheral}; | |
| 20 | |
| 16 // Represents a peripheral's Bluetooth GATT Service, a collection of | 21 // Represents a peripheral's Bluetooth GATT Service, a collection of |
| 17 // characteristics and relationships to other services that encapsulate | 22 // characteristics and relationships to other services that encapsulate |
| 18 // the behavior of part of a device. | 23 // the behavior of part of a device. |
| 19 dictionary Service { | 24 dictionary Service { |
| 20 // The UUID of the service, e.g. 0000180d-0000-1000-8000-00805f9b34fb. | 25 // The UUID of the service, e.g. 0000180d-0000-1000-8000-00805f9b34fb. |
| 21 DOMString uuid; | 26 DOMString uuid; |
| 22 | 27 |
| 23 // Indicates whether the type of this service is primary or secondary. | 28 // Indicates whether the type of this service is primary or secondary. |
| 24 boolean isPrimary; | 29 boolean isPrimary; |
| 25 | 30 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 107 // Optional characteristic notification session properties specified during a | 112 // Optional characteristic notification session properties specified during a |
| 108 // call to $(ref:startCharacteristicNotifications). | 113 // call to $(ref:startCharacteristicNotifications). |
| 109 dictionary NotificationProperties { | 114 dictionary NotificationProperties { |
| 110 // Flag indicating whether the app should receive notifications when the | 115 // Flag indicating whether the app should receive notifications when the |
| 111 // event page of the application is unloaded (see <a | 116 // event page of the application is unloaded (see <a |
| 112 // href="http://developer.chrome.com/apps/app_lifecycle.html">Manage App | 117 // href="http://developer.chrome.com/apps/app_lifecycle.html">Manage App |
| 113 // Lifecycle</a>). The default value is <code>false</code>. | 118 // Lifecycle</a>). The default value is <code>false</code>. |
| 114 boolean persistent; | 119 boolean persistent; |
| 115 }; | 120 }; |
| 116 | 121 |
| 122 // Represents an entry of the "Manufacturer Specific Data" field of Bluetooth | |
| 123 // LE advertisement data. | |
| 124 [nodoc] dictionary ManufacturerData { | |
| 125 long id; | |
| 126 long[] data; | |
| 127 }; | |
| 128 | |
| 129 // Represents an entry of the "Service Data" field of Bluetooth LE advertiseme nt | |
| 130 // data. | |
| 131 [nodoc] dictionary ServiceData { | |
| 132 DOMString uuid; | |
| 133 long[] data; | |
| 134 }; | |
| 135 | |
| 136 // Represents a Bluetooth LE advertisement instance. | |
| 137 [nodoc] dictionary Advertisement { | |
| 138 // Type of advertisement. | |
| 139 AdvertisementType type; | |
| 140 | |
| 141 // List of UUIDs to include in the "Service UUIDs" field of the Advertising | |
| 142 // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. | |
| 143 DOMString[]? serviceUuids; | |
| 144 | |
| 145 // List of manufacturer specific data to be included in "Manufacturer Specif ic | |
| 146 // Data" fields of the advertising data. | |
| 147 ManufacturerData[]? manufacturerData; | |
| 148 | |
| 149 // List of UUIDs to include in the "Solicit UUIDs" field of the Advertising | |
| 150 // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. | |
| 151 DOMString[]? solicitUuids; | |
| 152 | |
| 153 // List of service data to be included in "Service Data" fields of the adver tising | |
| 154 // data. | |
| 155 ServiceData[]? serviceData; | |
| 156 }; | |
| 157 | |
| 117 callback CharacteristicCallback = void(Characteristic result); | 158 callback CharacteristicCallback = void(Characteristic result); |
| 118 callback CharacteristicsCallback = void(Characteristic[] result); | 159 callback CharacteristicsCallback = void(Characteristic[] result); |
| 119 callback DescriptorCallback = void(Descriptor result); | 160 callback DescriptorCallback = void(Descriptor result); |
| 120 callback DescriptorsCallback = void(Descriptor[] result); | 161 callback DescriptorsCallback = void(Descriptor[] result); |
| 121 callback ResultCallback = void(); | 162 callback ResultCallback = void(); |
| 122 callback ServiceCallback = void(Service result); | 163 callback ServiceCallback = void(Service result); |
| 123 callback ServicesCallback = void(Service[] result); | 164 callback ServicesCallback = void(Service[] result); |
| 165 callback RegisterAdvertisementCallback = void (long advertisementId); | |
| 124 | 166 |
| 125 // These functions all report failures via chrome.runtime.lastError. | 167 // These functions all report failures via chrome.runtime.lastError. |
| 126 interface Functions { | 168 interface Functions { |
| 127 // Establishes a connection between the application and the device with the | 169 // Establishes a connection between the application and the device with the |
| 128 // given address. A device may be already connected and its GATT services | 170 // given address. A device may be already connected and its GATT services |
| 129 // available without calling <code>connect</code>, however, an app that | 171 // available without calling <code>connect</code>, however, an app that |
| 130 // wants to access GATT services of a device should call this function to | 172 // wants to access GATT services of a device should call this function to |
| 131 // make sure that a connection to the device is maintained. If the device | 173 // make sure that a connection to the device is maintained. If the device |
| 132 // is not connected, all GATT services of the device will be discovered | 174 // is not connected, all GATT services of the device will be discovered |
| 133 // after a successful call to <code>connect</code>. | 175 // after a successful call to <code>connect</code>. |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 255 // Write the value of a specified characteristic descriptor from a remote | 297 // Write the value of a specified characteristic descriptor from a remote |
| 256 // peripheral. | 298 // peripheral. |
| 257 // |descriptorId| : The instance ID of the GATT characteristic descriptor | 299 // |descriptorId| : The instance ID of the GATT characteristic descriptor |
| 258 // whose value should be written to. | 300 // whose value should be written to. |
| 259 // |value| : The value that should be sent to the remote descriptor as part | 301 // |value| : The value that should be sent to the remote descriptor as part |
| 260 // of the write request. | 302 // of the write request. |
| 261 // |callback| : Called when the write request has completed. | 303 // |callback| : Called when the write request has completed. |
| 262 static void writeDescriptorValue(DOMString descriptorId, | 304 static void writeDescriptorValue(DOMString descriptorId, |
| 263 ArrayBuffer value, | 305 ArrayBuffer value, |
| 264 ResultCallback callback); | 306 ResultCallback callback); |
| 307 | |
| 308 // Create an advertisement and register it for advertising. To call this | |
| 309 // function, the app must have the bluetooth:low_energy and | |
|
scheib
2015/05/06 23:17:41
Mentioning the permissions is good. Can we link to
rkc
2015/05/07 17:16:28
Done.
| |
| 310 // bluetooth:peripheral permissions set to true. | |
| 311 // Note: On some hardware central and peripheral modes at the same time is | |
| 312 // supported but on hardware that doesn't support this, making this call | |
| 313 // will switch the device to peripheral mode. In the case of hardware which | |
| 314 // does not support both central and peripheral mode, attempting to use the | |
| 315 // device in both modes will lead to undefined behavior or prevent other | |
| 316 // central-role applications from behaving correctly (including the | |
| 317 // discovery of Bluetooth Low Energy devices). | |
| 318 // |advertisement| : The advertisement to advertise. | |
| 319 // |callback| : Called once the registeration is done and we've started | |
| 320 // advertising. Returns the id of the created advertisement. | |
| 321 [nodoc] static void registerAdvertisement( | |
| 322 Advertisement advertisement, RegisterAdvertisementCallback callback); | |
| 323 | |
| 324 // Unregisters an advertisement and stops its advertising. | |
| 325 // |advertisementId| : Id of the advertisement to unregister. | |
| 326 // |callback| : Called once the advertisement is unregistered and is no | |
| 327 // longer being advertised. | |
| 328 [nodoc] static void unregisterAdvertisement(long advertisementId, | |
| 329 ResultCallback callback); | |
| 265 }; | 330 }; |
| 266 | 331 |
| 267 interface Events { | 332 interface Events { |
| 268 // Fired whan a new GATT service has been discovered on a remote device. | 333 // Fired whan a new GATT service has been discovered on a remote device. |
| 269 // |service| : The GATT service that was added. | 334 // |service| : The GATT service that was added. |
| 270 static void onServiceAdded(Service service); | 335 static void onServiceAdded(Service service); |
| 271 | 336 |
| 272 // Fired when the state of a remote GATT service changes. This involves any | 337 // Fired when the state of a remote GATT service changes. This involves any |
| 273 // characteristics and/or descriptors that get added or removed from the | 338 // characteristics and/or descriptors that get added or removed from the |
| 274 // service, as well as "ServiceChanged" notifications from the remote | 339 // service, as well as "ServiceChanged" notifications from the remote |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 290 | 355 |
| 291 // Fired when the value of a remote GATT characteristic descriptor changes, | 356 // Fired when the value of a remote GATT characteristic descriptor changes, |
| 292 // usually as a result of a read request. This event exists | 357 // usually as a result of a read request. This event exists |
| 293 // mostly for convenience and will always be sent after a successful | 358 // mostly for convenience and will always be sent after a successful |
| 294 // call to $(ref:readDescriptorValue). | 359 // call to $(ref:readDescriptorValue). |
| 295 // |descriptor| : The GATT characteristic descriptor whose value has | 360 // |descriptor| : The GATT characteristic descriptor whose value has |
| 296 // changed. | 361 // changed. |
| 297 static void onDescriptorValueChanged(Descriptor descriptor); | 362 static void onDescriptorValueChanged(Descriptor descriptor); |
| 298 }; | 363 }; |
| 299 }; | 364 }; |
| OLD | NEW |