| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // The <code>chrome.bluetoothLowEnergy</code> API is used to communicate with | |
| 6 // Bluetooth Smart (Low Energy) devices using the | |
| 7 // <a href="https://developer.bluetooth.org/TechnologyOverview/Pages/GATT.aspx"> | |
| 8 // Generic Attribute Profile (GATT)</a>. | |
| 9 namespace bluetoothLowEnergy { | |
| 10 // Values representing the possible properties of a characteristic. | |
| 11 enum CharacteristicProperty {broadcast, read, writeWithoutResponse, write, | |
| 12 notify, indicate, authenticatedSignedWrites, | |
| 13 extendedProperties, reliableWrite, | |
| 14 writableAuxiliaries}; | |
| 15 | |
| 16 // Represents a peripheral's Bluetooth GATT Service, a collection of | |
| 17 // characteristics and relationships to other services that encapsulate | |
| 18 // the behavior of part of a device. | |
| 19 dictionary Service { | |
| 20 // The UUID of the service, e.g. 0000180d-0000-1000-8000-00805f9b34fb. | |
| 21 DOMString uuid; | |
| 22 | |
| 23 // Indicates whether the type of this service is primary or secondary. | |
| 24 boolean isPrimary; | |
| 25 | |
| 26 // Indicates whether this service represents a local service hosted by the | |
| 27 // application and available to other peripherals, or a remote service | |
| 28 // hosted and received from a remote peripheral. | |
| 29 [nodoc] boolean isLocal; | |
| 30 | |
| 31 // Returns the identifier assigned to this service. Use the instance ID to | |
| 32 // distinguish between services from a peripheral with the same UUID and | |
| 33 // to make function calls that take in a service identifier. Present, if | |
| 34 // this instance represents a remote service. | |
| 35 DOMString? instanceId; | |
| 36 | |
| 37 // The device address of the remote peripheral that the GATT service belongs | |
| 38 // to. Present, if this instance represents a remote service. | |
| 39 DOMString? deviceAddress; | |
| 40 }; | |
| 41 | |
| 42 // Represents a GATT characteristic, which is a basic data element that | |
| 43 // provides further information about a peripheral's service. | |
| 44 dictionary Characteristic { | |
| 45 // The UUID of the characteristic, e.g. | |
| 46 // 00002a37-0000-1000-8000-00805f9b34fb. | |
| 47 DOMString uuid; | |
| 48 | |
| 49 // Indicates whether this characteristic represents a local characteristic | |
| 50 // hosted by the application and available to other peripherals, or a remote | |
| 51 // characteristic hosted and received from a remote peripheral. | |
| 52 [nodoc] boolean isLocal; | |
| 53 | |
| 54 // The GATT service this characteristic belongs to. | |
| 55 Service service; | |
| 56 | |
| 57 // The properties of this characteristic. | |
| 58 CharacteristicProperty[] properties; | |
| 59 | |
| 60 // Returns the identifier assigned to this characteristic. Use the instance | |
| 61 // ID to distinguish between characteristics from a peripheral with the same | |
| 62 // UUID and to make function calls that take in a characteristic identifier. | |
| 63 // Present, if this instance represents a remote characteristic. | |
| 64 DOMString? instanceId; | |
| 65 | |
| 66 // The currently cached characteristic value. This value gets updated when | |
| 67 // the value of the characteristic is read or updated via a notification | |
| 68 // or indication. | |
| 69 ArrayBuffer? value; | |
| 70 }; | |
| 71 | |
| 72 // Represents a GATT characteristic descriptor, which provides further | |
| 73 // information about a characteristic's value. | |
| 74 dictionary Descriptor { | |
| 75 // The UUID of the characteristic descriptor, e.g. | |
| 76 // 00002902-0000-1000-8000-00805f9b34fb. | |
| 77 DOMString uuid; | |
| 78 | |
| 79 // Indicates whether this descriptor represents a local descriptor | |
| 80 // hosted by the application and available to other peripherals, or a remote | |
| 81 // descriptor hosted and received from a remote peripheral. | |
| 82 [nodoc] boolean isLocal; | |
| 83 | |
| 84 // The GATT characteristic this descriptor belongs to. | |
| 85 Characteristic characteristic; | |
| 86 | |
| 87 // Returns the identifier assigned to this descriptor. Use the instance ID | |
| 88 // to distinguish between descriptors from a peripheral with the same UUID | |
| 89 // and to make function calls that take in a descriptor identifier. Present, | |
| 90 // if this instance represents a remote characteristic. | |
| 91 DOMString? instanceId; | |
| 92 | |
| 93 // The currently cached descriptor value. This value gets updated when | |
| 94 // the value of the descriptor is read. | |
| 95 ArrayBuffer? value; | |
| 96 }; | |
| 97 | |
| 98 // The connection properties specified during a call to $(ref:connect). | |
| 99 dictionary ConnectProperties { | |
| 100 // Flag indicating whether a connection to the device is left open when the | |
| 101 // event page of the application is unloaded (see <a | |
| 102 // href="http://developer.chrome.com/apps/app_lifecycle.html">Manage App | |
| 103 // Lifecycle</a>). The default value is <code>false.</code> | |
| 104 boolean persistent; | |
| 105 }; | |
| 106 | |
| 107 // Optional characteristic notification session properties specified during a | |
| 108 // call to $(ref:startCharacteristicNotifications). | |
| 109 dictionary NotificationProperties { | |
| 110 // Flag indicating whether the app should receive notifications when the | |
| 111 // event page of the application is unloaded (see <a | |
| 112 // href="http://developer.chrome.com/apps/app_lifecycle.html">Manage App | |
| 113 // Lifecycle</a>). The default value is <code>false</code>. | |
| 114 boolean persistent; | |
| 115 }; | |
| 116 | |
| 117 callback CharacteristicCallback = void(Characteristic result); | |
| 118 callback CharacteristicsCallback = void(Characteristic[] result); | |
| 119 callback DescriptorCallback = void(Descriptor result); | |
| 120 callback DescriptorsCallback = void(Descriptor[] result); | |
| 121 callback ResultCallback = void(); | |
| 122 callback ServiceCallback = void(Service result); | |
| 123 callback ServicesCallback = void(Service[] result); | |
| 124 | |
| 125 // These functions all report failures via chrome.runtime.lastError. | |
| 126 interface Functions { | |
| 127 // Establishes a connection between the application and the device with the | |
| 128 // given address. A device may be already connected and its GATT services | |
| 129 // available without calling <code>connect</code>, however, an app that | |
| 130 // 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 | |
| 132 // is not connected, all GATT services of the device will be discovered | |
| 133 // after a successful call to <code>connect</code>. | |
| 134 // |deviceAddress| : The Bluetooth address of the remote device to which a | |
| 135 // GATT connection should be opened. | |
| 136 // |properties| : Connection properties (optional). | |
| 137 // |callback| : Called when the connect request has completed. | |
| 138 static void connect(DOMString deviceAddress, | |
| 139 optional ConnectProperties properties, | |
| 140 ResultCallback callback); | |
| 141 | |
| 142 // Closes the app's connection to the device with the given address. Note | |
| 143 // that this will not always destroy the physical link itself, since there | |
| 144 // may be other apps with open connections. | |
| 145 // |deviceAddress| : The Bluetooth address of the remote device. | |
| 146 // |callback| : Called when the disconnect request has completed. | |
| 147 static void disconnect(DOMString deviceAddress, | |
| 148 optional ResultCallback callback); | |
| 149 | |
| 150 // Get the GATT service with the given instance ID. | |
| 151 // |serviceId| : The instance ID of the requested GATT service. | |
| 152 // |callback| : Called with the requested Service object. | |
| 153 static void getService(DOMString serviceId, ServiceCallback callback); | |
| 154 | |
| 155 // Get all the GATT services that were discovered on the remote device with | |
| 156 // the given device address. | |
| 157 // |deviceAddress| : The Bluetooth address of the remote device whose GATT | |
| 158 // services should be returned. | |
| 159 // |callback| : Called with the list of requested Service objects. | |
| 160 static void getServices(DOMString deviceAddress, ServicesCallback callback); | |
| 161 | |
| 162 // Get the GATT characteristic with the given instance ID that belongs to | |
| 163 // the given GATT service, if the characteristic exists. | |
| 164 // |characteristicId| : The instance ID of the requested GATT | |
| 165 // characteristic. | |
| 166 // |callback| : Called with the requested Characteristic object. | |
| 167 static void getCharacteristic(DOMString characteristicId, | |
| 168 CharacteristicCallback callback); | |
| 169 | |
| 170 // Get a list of all discovered GATT characteristics that belong to the | |
| 171 // given service. | |
| 172 // |serviceId| : The instance ID of the GATT service whose characteristics | |
| 173 // should be returned. | |
| 174 // |callback| : Called with the list of characteristics that belong to the | |
| 175 // given service. | |
| 176 static void getCharacteristics(DOMString serviceId, | |
| 177 CharacteristicsCallback callback); | |
| 178 | |
| 179 // Get a list of GATT services that are included by the given service. | |
| 180 // |serviceId| : The instance ID of the GATT service whose included | |
| 181 // services should be returned. | |
| 182 // |callback| : Called with the list of GATT services included from the | |
| 183 // given service. | |
| 184 static void getIncludedServices(DOMString serviceId, | |
| 185 ServicesCallback callback); | |
| 186 | |
| 187 // Get the GATT characteristic descriptor with the given instance ID. | |
| 188 // |descriptorId| : The instance ID of the requested GATT characteristic | |
| 189 // descriptor. | |
| 190 // |callback| : Called with the requested Descriptor object. | |
| 191 static void getDescriptor(DOMString descriptorId, | |
| 192 DescriptorCallback callback); | |
| 193 | |
| 194 // Get a list of GATT characteristic descriptors that belong to the given | |
| 195 // characteristic. | |
| 196 // |characteristicId| : The instance ID of the GATT characteristic whose | |
| 197 // descriptors should be returned. | |
| 198 // |callback| : Called with the list of descriptors that belong to the given | |
| 199 // characteristic. | |
| 200 static void getDescriptors(DOMString characteristicId, | |
| 201 DescriptorsCallback callback); | |
| 202 | |
| 203 // Retrieve the value of a specified characteristic from a remote | |
| 204 // peripheral. | |
| 205 // |characteristicId| : The instance ID of the GATT characteristic whose | |
| 206 // value should be read from the remote device. | |
| 207 // |callback| : Called with the Characteristic object whose value was | |
| 208 // requested. The <code>value</code> field of the returned Characteristic | |
| 209 // object contains the result of the read request. | |
| 210 static void readCharacteristicValue(DOMString characteristicId, | |
| 211 CharacteristicCallback callback); | |
| 212 | |
| 213 // Write the value of a specified characteristic from a remote peripheral. | |
| 214 // |characteristicId| : The instance ID of the GATT characteristic whose | |
| 215 // value should be written to. | |
| 216 // |value| : The value that should be sent to the remote characteristic as | |
| 217 // part of the write request. | |
| 218 // |callback| : Called when the write request has completed. | |
| 219 static void writeCharacteristicValue(DOMString characteristicId, | |
| 220 ArrayBuffer value, | |
| 221 ResultCallback callback); | |
| 222 | |
| 223 // Enable value notifications/indications from the specified characteristic. | |
| 224 // Once enabled, an application can listen to notifications using the | |
| 225 // $(ref:onCharacteristicValueChanged) event. | |
| 226 // |characteristicId| : The instance ID of the GATT characteristic that | |
| 227 // notifications should be enabled on. | |
| 228 // |properties| : Notification session properties (optional). | |
| 229 // |callback| : Called when the request has completed. | |
| 230 static void startCharacteristicNotifications( | |
| 231 DOMString characteristicId, | |
| 232 optional NotificationProperties properties, | |
| 233 ResultCallback callback); | |
| 234 | |
| 235 // Disable value notifications/indications from the specified | |
| 236 // characteristic. After a successful call, the application will stop | |
| 237 // receiving notifications/indications from this characteristic. | |
| 238 // |characteristicId| : The instance ID of the GATT characteristic on which | |
| 239 // this app's notification session should be stopped. | |
| 240 // |callback| : Called when the request has completed (optional). | |
| 241 static void stopCharacteristicNotifications( | |
| 242 DOMString characteristicId, | |
| 243 optional ResultCallback callback); | |
| 244 | |
| 245 // Retrieve the value of a specified characteristic descriptor from a remote | |
| 246 // peripheral. | |
| 247 // |descriptorId| : The instance ID of the GATT characteristic descriptor | |
| 248 // whose value should be read from the remote device. | |
| 249 // |callback| : Called with the Descriptor object whose value was requested. | |
| 250 // The <code>value</code> field of the returned Descriptor object contains | |
| 251 // the result of the read request. | |
| 252 static void readDescriptorValue(DOMString descriptorId, | |
| 253 DescriptorCallback callback); | |
| 254 | |
| 255 // Write the value of a specified characteristic descriptor from a remote | |
| 256 // peripheral. | |
| 257 // |descriptorId| : The instance ID of the GATT characteristic descriptor | |
| 258 // whose value should be written to. | |
| 259 // |value| : The value that should be sent to the remote descriptor as part | |
| 260 // of the write request. | |
| 261 // |callback| : Called when the write request has completed. | |
| 262 static void writeDescriptorValue(DOMString descriptorId, | |
| 263 ArrayBuffer value, | |
| 264 ResultCallback callback); | |
| 265 }; | |
| 266 | |
| 267 interface Events { | |
| 268 // Fired whan a new GATT service has been discovered on a remote device. | |
| 269 // |service| : The GATT service that was added. | |
| 270 static void onServiceAdded(Service service); | |
| 271 | |
| 272 // 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 | |
| 274 // service, as well as "ServiceChanged" notifications from the remote | |
| 275 // device. | |
| 276 // |service| : The GATT service whose state has changed. | |
| 277 static void onServiceChanged(Service service); | |
| 278 | |
| 279 // Fired when a GATT service that was previously discovered on a remote | |
| 280 // device has been removed. | |
| 281 // |service| : The GATT service that was removed. | |
| 282 static void onServiceRemoved(Service service); | |
| 283 | |
| 284 // Fired when the value of a remote GATT characteristic changes, either as | |
| 285 // a result of a read request, or a value change notification/indication | |
| 286 // This event will only be sent if the app has enabled notifications by | |
| 287 // calling $(ref:startCharacteristicNotifications). | |
| 288 // |characteristic| : The GATT characteristic whose value has changed. | |
| 289 static void onCharacteristicValueChanged(Characteristic characteristic); | |
| 290 | |
| 291 // Fired when the value of a remote GATT characteristic descriptor changes, | |
| 292 // usually as a result of a read request. This event exists | |
| 293 // mostly for convenience and will always be sent after a successful | |
| 294 // call to $(ref:readDescriptorValue). | |
| 295 // |descriptor| : The GATT characteristic descriptor whose value has | |
| 296 // changed. | |
| 297 static void onDescriptorValueChanged(Descriptor descriptor); | |
| 298 }; | |
| 299 }; | |
| OLD | NEW |