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

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

Issue 1096393002: API stubs for the BLE advertisement API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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
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
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
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698