Index: chrome/common/extensions/api/bluetooth_low_energy.idl |
diff --git a/chrome/common/extensions/api/bluetooth_low_energy.idl b/chrome/common/extensions/api/bluetooth_low_energy.idl |
index 2fd511dc54e4ecf9d1d929f094052f7b4e6a8def..c39aaa44be64dd91a6049c8cddb91ff52814d5cb 100644 |
--- a/chrome/common/extensions/api/bluetooth_low_energy.idl |
+++ b/chrome/common/extensions/api/bluetooth_low_energy.idl |
@@ -20,6 +20,23 @@ namespace bluetoothLowEnergy { |
// Adapter's MAC Address. |
enum AdvertisementType {broadcast, peripheral}; |
+ // Result of a register or unregister service call. |
+ enum ServiceResult {success, alreadyRegistered, notRegistered}; |
Devlin
2016/04/26 23:14:05
comment these enums.
rkc
2016/04/27 00:00:39
Done.
|
+ |
+ // Represents a bluetooth central device that is connected to the local GATT |
+ // server. |
+ dictionary Device { |
+ // The address of the device, in the format 'XX:XX:XX:XX:XX:XX'. |
+ DOMString address; |
+ |
+ // The human-readable name of the device. |
+ DOMString? name; |
+ |
+ // The class of the device, a bit-field defined by |
+ // http://www.bluetooth.org/en-us/specification/assigned-numbers/baseband. |
+ long? deviceClass; |
+ }; |
+ |
// Represents a peripheral's Bluetooth GATT Service, a collection of |
// characteristics and relationships to other services that encapsulate |
// the behavior of part of a device. |
@@ -30,11 +47,6 @@ namespace bluetoothLowEnergy { |
// Indicates whether the type of this service is primary or secondary. |
boolean isPrimary; |
- // Indicates whether this service represents a local service hosted by the |
- // application and available to other peripherals, or a remote service |
- // hosted and received from a remote peripheral. |
- [nodoc] boolean isLocal; |
- |
// Returns the identifier assigned to this service. Use the instance ID to |
// distinguish between services from a peripheral with the same UUID and |
// to make function calls that take in a service identifier. Present, if |
@@ -53,13 +65,8 @@ namespace bluetoothLowEnergy { |
// 00002a37-0000-1000-8000-00805f9b34fb. |
DOMString uuid; |
- // Indicates whether this characteristic represents a local characteristic |
- // hosted by the application and available to other peripherals, or a remote |
- // characteristic hosted and received from a remote peripheral. |
- [nodoc] boolean isLocal; |
- |
// The GATT service this characteristic belongs to. |
- Service service; |
+ Service? service; |
// The properties of this characteristic. |
CharacteristicProperty[] properties; |
@@ -83,13 +90,8 @@ namespace bluetoothLowEnergy { |
// 00002902-0000-1000-8000-00805f9b34fb. |
DOMString uuid; |
- // Indicates whether this descriptor represents a local descriptor |
- // hosted by the application and available to other peripherals, or a remote |
- // descriptor hosted and received from a remote peripheral. |
- [nodoc] boolean isLocal; |
- |
// The GATT characteristic this descriptor belongs to. |
- Characteristic characteristic; |
+ Characteristic? characteristic; |
// Returns the identifier assigned to this descriptor. Use the instance ID |
// to distinguish between descriptors from a peripheral with the same UUID |
@@ -158,13 +160,18 @@ namespace bluetoothLowEnergy { |
}; |
callback CharacteristicCallback = void(Characteristic result); |
+ callback CreateCharacteristicCallback = void(DOMString characteristicId); |
callback CharacteristicsCallback = void(Characteristic[] result); |
callback DescriptorCallback = void(Descriptor result); |
+ callback CreateDescriptorCallback = void(DOMString descriptorId); |
callback DescriptorsCallback = void(Descriptor[] result); |
callback ResultCallback = void(); |
callback ServiceCallback = void(Service result); |
+ callback CreateServiceCallback = void(DOMString serviceId); |
callback ServicesCallback = void(Service[] result); |
+ callback ServiceResultCallback = void(ServiceResult result); |
callback RegisterAdvertisementCallback = void (long advertisementId); |
+ callback ValueCallback = void (ArrayBuffer value); |
Devlin
2016/04/26 23:14:05
no space after void
rkc
2016/04/27 00:00:39
Done.
|
// These functions all report failures via chrome.runtime.lastError. |
interface Functions { |
@@ -196,6 +203,12 @@ namespace bluetoothLowEnergy { |
// |callback| : Called with the requested Service object. |
static void getService(DOMString serviceId, ServiceCallback callback); |
+ // Create a locally hosted GATT service. This service can be registered |
+ // to be available on a local GATT server. |
+ // |service| : The service to create. |
Devlin
2016/04/26 23:14:06
no space after |service|
rkc
2016/04/27 00:00:39
I think I am missing something. All other paramete
Devlin
2016/04/27 14:45:03
They probably copied style from another API idl fi
rkc
2016/04/27 20:38:56
Sure. Also fixed all of the parameters in this fil
|
+ // |callback| : Called with the created services's unique ID. |
+ static void createService(Service service, CreateServiceCallback callback); |
+ |
// Get all the GATT services that were discovered on the remote device with |
// the given device address. |
// |deviceAddress| : The Bluetooth address of the remote device whose GATT |
@@ -211,6 +224,16 @@ namespace bluetoothLowEnergy { |
static void getCharacteristic(DOMString characteristicId, |
CharacteristicCallback callback); |
+ // Create a locally hosted GATT characteristic. This characteristic must |
+ // be hosted under a valid service. If the service ID is not valid, the |
+ // lastError will be set. |
+ // |characteristic| : The characteristic to create. |
+ // |serviceId| : ID of the service to create this characteristic for. |
+ // |callback| : Called with the created characteristic's unique ID. |
+ static void createCharacteristic(Characteristic characteristic, |
+ DOMString serviceId, |
+ CreateCharacteristicCallback callback); |
+ |
// Get a list of all discovered GATT characteristics that belong to the |
// given service. |
// |serviceId| : The instance ID of the GATT service whose characteristics |
@@ -235,6 +258,17 @@ namespace bluetoothLowEnergy { |
static void getDescriptor(DOMString descriptorId, |
DescriptorCallback callback); |
+ // Create a locally hosted GATT descriptor. This descriptor must |
+ // be hosted under a valid characteristic. If the characteristic ID is not |
+ // valid, the lastError will be set. |
+ // |descriptor| : The descriptor to create. |
+ // |characteristicId| : ID of the characteristic to create this descriptor |
+ // for. |
+ // |callback| : Called with the created descriptor's unique ID. |
+ static void createDescriptor(Descriptor descriptor, |
+ DOMString characteristicId, |
+ CreateDescriptorCallback callback); |
+ |
// Get a list of GATT characteristic descriptors that belong to the given |
// characteristic. |
// |characteristicId| : The instance ID of the GATT characteristic whose |
@@ -307,6 +341,20 @@ namespace bluetoothLowEnergy { |
ArrayBuffer value, |
ResultCallback callback); |
+ // Register the given service with the local GATT server. If the service |
+ // ID is invalid, this call will return false. |
Devlin
2016/04/26 23:14:05
No it won't. ;) Also, should this be an error?
rkc
2016/04/27 00:00:39
Done.
|
+ // |serviceId| : Unique ID of a created service. |
+ // |callback| : Callback with the result of the register operation. |
+ static boolean registerService(DOMString serviceId, |
+ ServiceResultCallback callback); |
+ |
+ // Unregister the given service with the local GATT server. If the service |
+ // ID is invalid, this call will return false. |
Devlin
2016/04/26 23:14:05
ditto
rkc
2016/04/27 00:00:39
Done.
|
+ // |serviceId| : Unique ID of a current registered service. |
+ // |callback| : Callback with the result of the register operation. |
+ static boolean unregisterService(DOMString serviceId, |
+ ServiceResultCallback callback); |
+ |
// Create an advertisement and register it for advertising. To call this |
// function, the app must have the bluetooth:low_energy and |
// bluetooth:peripheral permissions set to true. Additionally this API |
@@ -367,5 +415,58 @@ namespace bluetoothLowEnergy { |
// |descriptor| : The GATT characteristic descriptor whose value has |
// changed. |
static void onDescriptorValueChanged(Descriptor descriptor); |
+ |
+ // Fired when a connected central device requests to read the value of a |
Devlin
2016/04/26 23:14:05
Do we ever call these events?
rkc
2016/04/27 00:00:39
Not yet, but I have CLs on the way that will be ca
Devlin
2016/04/27 14:45:03
I'd rather add idl entries with support. These ge
rkc
2016/04/27 20:38:56
This is part 1 of a 3 patch series. The third patc
|
+ // characteristic registered on the local GATT server. |
+ // Calling both the valueCallback and errorCallback will have undefined |
+ // results. Calling neither will cause a timeout and the device may |
+ // disconnect. |
+ // |device| : The bluetooth device that is requesting this read. |
+ // |characteristic| : The GATT characteristic whose value is requested. |
+ // |valueCallback| : Callback to call with the value. |
+ // |errorCallback| : Callback to call if the read failed. |
+ static void onCharacteristicReadRequest( |
+ Device device, Characteristic characteristic, |
+ ValueCallback valueCallback, ResultCallback errorCallback); |
+ |
+ // Fired when a connected central device requests to write the value of a |
+ // characteristic registered on the local GATT server. |
+ // Calling both the successCallback and errorCallback will have undefined |
+ // results. Calling neither will cause a timeout and the device may |
+ // disconnect. |
+ // |device| : The bluetooth device that is requesting this write. |
+ // |characteristic| : The GATT characteristic whose value is being written. |
+ // |successCallback| : Callback to call if the write was successful. |
+ // |errorCallback| : Callback to call if the write failed. |
+ static void onCharacteristicWriteRequest( |
+ Device device, Characteristic characteristic, ArrayBuffer value, |
+ ResultCallback successCallback, ResultCallback errorCallback); |
+ |
+ // Fired when a connected central device requests to read the value of a |
+ // descriptor registered on the local GATT server. |
+ // Calling both the valueCallback and errorCallback will have undefined |
+ // results. Calling neither will cause a timeout and the device may |
+ // disconnect. |
+ // |device| : The bluetooth device that is requesting this read. |
+ // |descriptor| : The GATT descriptor whose value is requested. |
+ // |valueCallback| : Callback to call with the value. |
+ // |errorCallback| : Callback to call if the read failed. |
+ static void onDescriptorReadRequest( |
+ Device device, Descriptor descriptor, ValueCallback valueCallback, |
+ ResultCallback errorCallback); |
+ |
+ // Fired when a connected central device requests to write the value of a |
+ // descriptor registered on the local GATT server. |
+ // Calling both the successCallback and errorCallback will have undefined |
+ // results. Calling neither will cause a timeout and the device may |
+ // disconnect. |
+ // |device| : The bluetooth device that is requesting this write. |
+ // |descriptor| : The GATT descriptor whose value is being written. |
+ // |successCallback| : Callback to call if the write was successful. |
+ // |errorCallback| : Callback to call if the write failed. |
+ static void onDescriptorWriteRequest( |
+ Device device, Descriptor descriptor, ArrayBuffer value, |
+ ResultCallback successCallback, ResultCallback errorCallback); |
+ |
}; |
}; |