-
Revision: v1.0.0
-
Date: 2015-Jul-14
-
Group Prepared By: Automation Working Group
Revision History
|
Revision Number |
Date |
Comments |
|---|---|---|
|
v1.0.0 |
2015-07-14 |
Approved by the Bluetooth SIG BoD |
Contributors
|
Name |
Company |
|---|---|
|
Mats Andersson |
u-blox |
|
Robin Heydon |
CSR |
|
David Edwin |
Nordic Semiconductor |
|
Ola Björsne |
u-blox |
|
Terry Bourke |
Qualcomm |
|
Michael Wang |
Toshiba |
|
Brian Redding |
Qualcomm |
|
Rob Hulvey |
Broadcom |
|
Tim Howes |
Accenture |
|
Joe Decuir |
CSR |
|
Jason Hillyard |
Wicentric |
|
Robert Hughes |
Intel |
|
Chris Church |
CSR |
|
Alicia Courtney |
Broadcom |
|
Victor Zhodzishsky |
Broadcom |
DISCLAIMER AND COPYRIGHT NOTICE
This disclaimer applies to all draft specifications and final specifications adopted by the Bluetooth SIG Board of Directors (both of which are hereinafter referred to herein as a Bluetooth “Specification”). Your use of this Specification in any way is subject to your compliance with all conditions of such use, and your acceptance of all disclaimers and limitations as to such use, contained in this Specification. Any user of this Specification is advised to seek appropriate legal, engineering or other professional advice regarding the use, interpretation or effect of this Specification on any matters discussed in this Specification.
Use of Bluetooth Specifications and any related intellectual property is governed by the Promoters Membership Agreement among the Promoter Members and Bluetooth SIG (the “Promoters Agreement”), certain membership agreements between Bluetooth SIG and its Adopter and Associate Members, including, but not limited to, the Membership Application, the Bluetooth Patent/Copyright License Agreement and the Bluetooth Trademark License Agreement (collectively, the “Membership Agreements”) and the Bluetooth Specification Early Adopters Agreements (1.2 Early Adopters Agreements) among Early Adopter members of the unincorporated Bluetooth SIG and the Promoter Members (the “Early Adopters Agreement”). Certain rights and obligations of the Promoter Members under the Early Adopters Agreements have been assigned to Bluetooth SIG by the Promoter Members.
Use of the Specification by anyone who is not a member of Bluetooth SIG or a party to an Early Adopters Agreement (each such person or party, a “Member”) is prohibited. The use of any portion of a Bluetooth Specification may involve the use of intellectual property rights ("IPR"), including pending or issued patents, or copyrights or other rights. Bluetooth SIG has made no search or investigation for such rights and disclaims any undertaking or duty to do so. The legal rights and obligations of each Member are governed by the applicable Membership Agreements, Early Adopters Agreement or Promoters Agreement. No license, express or implied, by estoppel or otherwise, to any intellectual property rights are granted herein.
Any use of the Specification not in compliance with the terms of the applicable Membership Agreements, Early Adopters Agreement or Promoters Agreement is prohibited and any such prohibited use may result in (i) termination of the applicable Membership Agreements or Early Adopters Agreement and (ii) liability claims by Bluetooth SIG or any of its Members for patent, copyright and/or trademark infringement claims permitted by the applicable agreement or by applicable law.
THE SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, SATISFACTORY QUALITY, OR REASONABLE SKILL OR CARE, OR ANY WARRANTY ARISING OUT OF ANY COURSE OF DEALING, USAGE, TRADE PRACTICE, PROPOSAL, SPECIFICATION OR SAMPLE.
Each Member hereby acknowledges that products equipped with the Bluetooth wireless technology ("Bluetooth Products") may be subject to various regulatory controls under the laws and regulations applicable to products using wireless non licensed spectrum of various governments worldwide. Such laws and regulatory controls may govern, among other things, the combination, operation, use, implementation and distribution of Bluetooth Products. Examples of such laws and regulatory controls include, but are not limited to, airline regulatory controls, telecommunications regulations, technology transfer controls and health and safety regulations. Each Member is solely responsible for the compliance by their Bluetooth Products with any such laws and regulations and for obtaining any and all required authorizations, permits, or licenses for their Bluetooth Products related to such regulations within the applicable jurisdictions. Each Member acknowledges that nothing in the Specification provides any information or assistance in connection with securing such compliance, authorizations or licenses. NOTHING IN THE SPECIFICATION CREATES ANY WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING SUCH LAWS OR REGULATIONS.
ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OR FOR NONCOMPLIANCE WITH LAWS, RELATING TO USE OF THE SPECIFICATION IS EXPRESSLY DISCLAIMED. To the extent not prohibited by law, in no event will Bluetooth SIG or its Members or their affiliates be liable for any damages, including without limitation, lost revenue, profits, data or programs, or business interruption, or for special, indirect, consequential, incidental or punitive damages, however caused and regardless of the theory of liability, arising out of or related to any furnishing, practicing, modifying, use or the performance or implementation of the contents of this Specification, even if Bluetooth SIG or its Members or their affiliates have been advised of the possibility of such damages. BY USE OF THE SPECIFICATION, EACH MEMBER EXPRESSLY WAIVES ANY CLAIM AGAINST BLUETOOTH SIG AND ITS MEMBERS OR THEIR AFFILATES RELATED TO USE OF THE SPECIFICATION.
If this Specification is an intermediate draft, it is for comment only. No products should be designed based on it except solely to verify the prototyping specification at SIG sponsored IOP events and it does not represent any commitment to release or implement any portion of the intermediate draft, which may be withdrawn, modified, or replaced at any time in the adopted Specification.
Bluetooth SIG reserves the right to adopt any changes or alterations to the Specification it deems necessary or appropriate.
Copyright © 2015. The Bluetooth word mark and logos are owned by Bluetooth SIG, Inc. All copyrights in the Bluetooth Specifications themselves are owned by Ericsson AB, Lenovo (Singapore) Pte. Ltd., Intel Corporation, Microsoft Corporation, Motorola Mobility, LLC, Nokia Corporation and Toshiba Corporation. Other third-party brands and names are the property of their respective owners.
Document Terminology
The Bluetooth SIG has adopted portions of the IEEE Standards Style Manual, which dictates use of the words “shall’’, “should’’, “may’’, and “can’’ in the development of documentation, as follows:
The word shall is used to indicate mandatory requirements strictly to be followed in order to conform to the standard and from which no deviation is permitted (shall equals is required to).
The use of the word must is deprecated and shall not be used when stating mandatory requirements; must is used only to describe unavoidable situations.
The use of the word will is deprecated and shall not be used when stating mandatory requirements; will is only used in statements of fact.
The word should is used to indicate that among several possibilities one is recommended as particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred but not necessarily required; or that (in the negative form) a certain course of action is deprecated but not prohibited (should equals is recommended that).
The word may is used to indicate a course of action permissible within the limits of the standard (may equals is permitted).
The word can is used for statements of possibility and capability, whether material, physical, or causal (can equals is able to).
1. Introduction
The Automation IO service is used to expose the analog inputs/outputs and digital input/outputs of a generic IO module (later called IOM); see Figure 1.1.
![]() |
1.1. Conformance
If a server claims conformance to this service, all capabilities indicated as mandatory for this service shall be supported in the specified manner (process-mandatory). This also applies for all optional and conditional capabilities for which support is indicated. All mandatory capabilities, and optional and conditional capabilities for which support is indicated, are subject to verification as part of the Bluetooth qualification program.
1.2. Service Dependency
This service has no dependencies on other GATT-based services.
1.3. Bluetooth Specification Release Compatibility
This service is compatible with any Bluetooth core specification host that includes the Generic Attribute Profile (GATT).
1.4. GATT Sub-Procedure Requirements
Additional GATT sub-procedures requirements beyond those required by GATT are indicated in Table 1.1.
|
GATT Sub-Procedure |
Requirements |
|---|---|
|
Write Characteristic Value |
C.1 |
|
Write Without Response |
C.2 |
|
Indications |
C.3 |
|
Notifications |
C.4 |
|
Write Characteristic Descriptors |
C.5 |
|
Read Characteristic Descriptors |
C.6 |
|
|
1.5. Transport Dependencies
None.
1.6. Error Codes
This service defines the following Attribute Protocol Application Error codes:
|
Name |
Error Code |
Description |
|---|---|---|
|
Trigger condition value not supported. |
0x80 |
An attempt was made to configure a trigger condition value not supported by this Automation IO Server. |
1.7. Octet Transmission Order
All characteristics and profile defined descriptors used with this service shall be transmitted with the least significant octet first (i.e., little endian).
2. Service Declaration
The Automation IO Service UUID shall be set to «Automation IO Service» as defined in [2].
3. Service Characteristics
Automation IO inputs and outputs are reflected in the GATT database as follows:
-
Digital Inputs are exposed by Digital Characteristics with Read and optionally one of the Indicate or Notify properties.
-
Digital Outputs are exposed by Digital Characteristics with Write and/or Write Without Response and optionally Read and one of the Indicate and Notify properties.
-
Analog Inputs are exposed by Analog Characteristics with Read and optionally one of the Indicate or Notify properties.
-
Analog Outputs are exposed by Output Characteristics with Write and/or Write Without Response and optionally Read or one of the Indicate and Notify properties.
The following characteristics may be exposed by this service.
|
Characteristic Name |
Requirement |
Mandatory Properties |
Optional Properties |
Security Permissions |
|---|---|---|---|---|
|
Digital |
C.1, C.3, C.4, C.5 |
Read, Indicate, Notify, Write, Write Without Response |
None |
|
|
Analog |
C.1, C.3, C.4, C.5 |
Read, Indicate, Notify, Write, Write Without Response |
None |
|
|
Aggregate |
C.2, C.4, C.5 |
Read, Indicate, Notify |
None |
|
|
||||
Note:
-
Security permissions set to “None” means that the service does not impose any requirements.
3.1. Digital Characteristic
The Digital characteristic is used to expose and change the state of an IOM’s digital signals. Several Digital Inputs may be grouped in to a single Digital Characteristic with Read and optionally one of the Indicate or Notify properties. Several Digital Outputs may be grouped in to a single Digital Characteristic with Write and/or Write Without Response and optionally Read and one of the Indicate and Notify properties.
3.1.1. Characteristic Behavior
The Digital characteristic is an array of n 2-bit values in a bit field:
|
Value |
|---|
|
Array of n 2-bit values (see below) |
The mandatory descriptor Number of Digitals (see Section 3.4) describes the number of bits that are available (the value of n in Table 3.2).
The Digital characteristic contains the values of these bits in little endian order. This shall be octets[1] in length, where n is the number of bits defined in the Number of Digitals descriptor. The value of any bits beyond the number specified in the Number of Digitals descriptor is irrelevant, as these padding bits have no meaning. The maximum value of n is (ATT_MTU-3)*4.
Each of the 2-bit fields has the following definition:
-
Value 0b00 defines the inactive state.
-
Value 0b01 defines the active state.
-
Value 0b10 defines the tri-state state (if available in the server).
-
Value 0b11 defines the unknown state. If received in a write operation the server shall not update corresponding output. The server may use this value in a read or a notify operation to indicate that for some reason it cannot report the value of this particular input.
The Notify and Indicate properties shall not be permitted simultaneously for the Digital characteristic.
If an Aggregate characteristic is supported as part of this service, the Notify and Indicate properties are excluded for the Digital characteristic.
If the Notify or the Indicate property is set for the Digital characteristic and the Client Characteristic Configuration descriptor (see Section 3.2.2) is configured for notification or indication, this characteristic shall be notified or indicated respectively when any of the following conditions occurs:
- (a)
-
The condition set by any combination of the Value Trigger Setting, Time Trigger Settings descriptors or a custom condition is fulfilled.
- (b)
-
A connection is reestablished and required security procedure executed.
- (c)
-
The Client Characteristics Configuration descriptor was just configured to enable notifications or indications.
3.1.2. Characteristic Descriptors
|
Descriptor Name |
Requirement |
Mandatory Permissions |
Optional Permissions |
|---|---|---|---|
|
Client Characteristic Configuration |
C.1 |
Read, Write |
|
|
Characteristic Presentation Format |
C.6 |
Read |
|
|
Characteristic User Description |
O |
Read |
Write, C.2 |
|
Characteristic Extended Properties |
O |
Read |
|
|
Value Trigger Setting |
C.3, C.5 |
Read, Write |
|
|
Time Trigger Setting |
C.3, C.4, C.5 |
Read, Write |
|
|
Number of Digitals Descriptor |
M |
Read |
|
|
|||
If a characteristic can be notified or indicated, the characteristic may be configured for notification or indication using the Client Characteristic Configuration descriptor. The optional Value Trigger Setting and Time Trigger Setting descriptors (see Section 3.5) can be used to set the conditions for the notification or indication.
If a device has more than one instance of the Digital characteristic, each characteristic shall include a Characteristic Presentation Format descriptor that has a namespace / description value that is unique for that instance of the Digital characteristic. The Namespace «Bluetooth SIG» as defined in [2] shall be used. Description values from 0x0001 and upwards shall be used to uniquely identify each Digital characteristic.
If the Characteristic Presentation Format descriptor is supported for this characteristic, the format field shall be set to the value «struct». The exponent, unit, and descriptor fields have no meaning for this characteristic and shall be set to 0.
The Characteristic User Description descriptor may be supported and its value is determined by the actual IO configuration or the application (the latter is only allowed if «writable auxiliaries» is supported in the Characteristic Extended Properties descriptor and the Characteristic User Description supports the write permission). If writable, the Characteristic User Description descriptor value shall be persistent between connections.
The Number of Digitals descriptor defines the number of digital signals available for the characteristics. See more details about this descriptor in Section 3.4.
3.2. Analog Characteristic
The Analog characteristic is used to read or write the value of one of the IOM’s analog signals.
One or more Analog characteristics may be used, each one representing one analog signal.
3.2.1. Characteristic Behavior
The Analog characteristic represents the value of an analog signal as an unsigned 16-bit integer (uint16). The format of the analog value depends on the implementation.
The Notify and Indicate properties shall not be permitted simultaneously for the Analog characteristic.
If an Aggregate characteristic is supported as part of this service, the Notify and Indicate properties are excluded for the Analog characteristic.
If the Notify or the Indicate property is set for the Analog characteristic and the Client Characteristic Configuration descriptor (see Section 3.2.2) is configured for notification or indication, this characteristic shall be notified or indicated respectively when any of the following conditions occurs:
- (d)
-
The condition set by any combination of the Value Trigger Setting, Time Trigger Settings descriptors or a custom condition is fulfilled.
- (e)
-
A connection is reestablished and required security procedure executed.
- (f)
-
The Client Characteristics Configuration descriptor was just configured to enable notifications or indications.
3.2.2. Characteristic Descriptors
|
Descriptor Name |
Requirement |
Mandatory Permissions |
Optional Permissions |
|---|---|---|---|
|
Client Characteristic Configuration |
C.1 |
Read, Write |
|
|
Characteristic Presentation Format |
C.3 |
Read |
|
|
Characteristic User Description |
O |
Read |
Write, C.2 |
|
Value Trigger Setting |
C.4, C.6 |
Read, Write |
|
|
Time Trigger Setting |
C.4, C.5, C.6 |
Read, Write |
|
|
Characteristic Extended Properties |
O |
Read |
|
|
Valid Range |
O |
Read |
|
|
|||
If this characteristic can be notified or indicated, the characteristic may be configured for notification or indication using the Client Characteristic Configuration descriptor. The optional profile defined Value Trigger Setting and Time Trigger Settings descriptors (see Section 3.5) can be used to set the conditions for the notification or indication.
If a device has more than one instance of the Analog characteristic, each characteristic shall include a Characteristic Presentation Format descriptor that has a namespace / description value that is unique for that instance of the Analog characteristic. The Namespace «Bluetooth SIG» as defined in [2] shall be used. Description values from 0x0001 and upwards shall be used to uniquely identify each Analog characteristic.
The Characteristic Presentation Format descriptor format field, exponent, unit, and descriptor fields can be used to specify the format of the Analog characteristic. The allowed values for the format field are uint8, uint12, uint16, sint8, sint12, sint16, SFLOAT, and duint16 (see [1]).
The Characteristic User Description descriptor may be used and its value is determined by the actual IO configuration or the application (the latter is only allowed if «writable auxiliaries» is supported in the Extended Properties descriptor and the Characteristic User Description descriptor supports the write permission). If writable, the Characteristic User Description descriptor value shall be persistent between connections.
The Valid Range descriptor defined in [2] is an optional descriptor that allows an Automation Client to read the lower and upper bounds (inclusive) of an associated Analog characteristic value that are supported by the Automation Server.
3.3. Aggregate Characteristic
This characteristic is used to aggregate all Digital characteristics with the Read property set (if any available) and all of the Analog characteristics with Read properties set (if any available). If present, the Digital characteristic values in the aggregate shall precede the list of Analog characteristic values.
This characteristic allows the complete state of the IOM to be read, notified, or indicated in a single operation, reducing power consumption when the complete state is needed.
3.3.1. Characteristics Behavior
All of the defined Digital characteristics with the Read property set shall be part of Aggregate (if available).The length of each of the Digital characteristics that is part of the Aggregate is determined from the number of signals defined in the Number of Digitals descriptor of the Digital characteristic. The Digital part shall be byte aligned and trailing bits (if any) shall be set to 0. The order of the Digital characteristics is determined by the value in the Description field of the Characteristic Presentation Format descriptor with the lowest value first.
All of the defined Analog characteristics with Read property set shall be part of the Aggregate (if available). The order of the Analog characteristics is determined by the value in the Description field of the Characteristic Presentation Format descriptor with the lowest value first. The first analog input follows directly after the last Digital characteristic.
If the size of the Aggregate value is larger than ATT_MTU-3, the Aggregate characteristic shall not be used.
The Notify and Indicate properties shall not be permitted simultaneously for the Aggregate characteristic.
If the Notify or Indicate property is set for the characteristic and the Client Characteristic Configuration descriptor (see Section 3.3.2) is configured for notification or indication, this characteristic shall be notified or indicated respectively when either of the following conditions occurs:
- (a)
-
The condition set by any combination of the Value Trigger Setting, Time Trigger Setting descriptors of the included Digital and Analog characteristics or a custom condition is fulfilled.
- (b)
-
A connection is reestablished and required security procedures executed.
- (c)
-
The Client Characteristics Configuration descriptor was just configured to enable notifications or indications.
3.3.2. Characteristics Descriptors
|
Descriptor Name |
Requirement |
Mandatory Permissions |
Optional Permissions |
|---|---|---|---|
|
Client Characteristic Configuration |
C.1 |
Read, Write |
|
|
|||
If this characteristic can be notified or indicated, the characteristic may be configured for notification or indication using the Client Characteristic Configuration descriptor.
The Value Trigger Setting and Time Trigger Setting descriptors are excluded for the Aggregate characteristic. The optional Value Trigger Setting and Time Trigger Setting descriptors (see Section 3.5) used for the individual Digital and Analog characteristics can be used to set the conditions for the notification / indication. The trigger settings for all of the included characteristics are used, and a logical OR is used to determine if an indication / notification shall be triggered or not (if the trigger for one or more of the included characteristics is fulfilled, the aggregate is considered as triggered).
3.4. Number of Digitals Descriptor
The Number of Digitals is a descriptor that is mandatory for the Digital characteristics. The value of the descriptor is the number of two-bit fields the Digital bit arrays respectively consist of. Each two-bit field represents one digital signal. It is represented as a uint8 value and is read-only. Maximum value is (ATT_MTU-3)*4.
3.5. Trigger Setting Descriptors and Custom Condition
A custom condition is a condition that is either automatically enabled or enabled offline and depends on the IOM internal design and functionality. When a custom condition is triggered, the value of the characteristic is sent. Value Trigger Setting and Time Trigger Setting descriptors shall not be used if a custom condition exists for a characteristic.
Only one instance of the Value Trigger Setting and Time Trigger Setting descriptor shall be defined for each Digital and Analog characteristic.
The triggers may only be used for characteristics with Indicate or Notify property set, or when there is an Aggregate characteristic with Indicate or Notify property set.
3.5.1. Value Trigger Setting Descriptor
The Value Trigger Setting descriptor is an optional writable descriptor used to set the trigger point and condition for certain input signals or an aggregate of input signals. It may be used for the Digital and Analog characteristics.
The value of the Value Trigger Setting descriptors shall be persistent between connections.
The value of the descriptor has two parts. Part one is a condition field and occupies one octet, and part two is the comparison value (trigger point) that the characteristic value is checked against.
Descriptor value format:
|
Condition Value |
Comparison Value |
|---|---|
|
1 octet – contains the code for the condition |
1-n octets depending on the format of the value (see list of available conditions in Table 3.8). |
Available comparison value formats:
|
Format |
Description |
|---|---|
|
None |
No comparison value required |
|
Analog |
Analog.16-bit unsigned integer (uint16) |
|
Bit Mask |
Array of n bits. Consists of two-bit fields where each field represents a digital signal. Shall be the same size and format as the corresponding Digital characteristic. See more in Section 3.1.1. The maximum value of n is (ATT_MTU-3)*4 (see Note below). |
|
Analog Boundaries |
Analog One (uint16), Analog Two (uint16) |
Note
Note: Following is an example of using the Bit Mask field. If a digital characteristic represents two digital input signals and the value of the Bit Mask is 0x04, changing of the second digital input in any way (for example 0 to 1, 0 to 2, 1 to 0, etc.) will cause the state change. Changing of the first digital input will not cause the state change.
Available conditions:
|
Condition Value |
Condition |
Valid for |
Comparison Value Format |
|---|---|---|---|
|
0x00 |
The state is changed if the characteristic value is changed. |
Digital, Analog |
None |
|
0x01 |
Crossed a boundary. The state is changed if the value of the analog characteristic changes from less than to greater than a settable Analog value, or from greater than to less than a settable Analog value. |
Analog |
Analog |
|
0x02 |
On the boundary. The state is changed if the value of an analog characteristic changes from less than to equal to a settable Analog value, or from greater than to equal to a settable Analog value, or from equal to less than or to greater than a settable Analog value. |
Analog |
Analog |
|
0x03 |
The state is changed if the value of the analog characteristic is changed more than a settable Analog value. |
Analog |
Analog |
|
0x04 |
Mask then compare (logical-and of the Digital and the Bit Mask, condition is true if the result of this is different from the last stet). |
Digital |
Bit Mask |
|
0x05 |
Inside or outside the boundaries. The state is changed if the value of the analog characteristic changes from less than a settable Analog One value and greater than a settable Analog Two value to greater than a settable Analog One value or less than a settable Analog Two value. |
Analog |
Analog Interval |
|
0x06 |
On the boundaries. The state is changed if the value of the analog characteristic changes from equal to a settable Analog One value or settable Analog Two value to any other value. |
Analog |
Analog Interval |
|
0x07 |
No value trigger. This condition causes no state change regardless if the characteristic value changes. It can be used for example when the value of one or more characteristic should not cause indication or notification of the Aggregate characteristic. |
Digital, Analog |
None |
|
0x08-0x0FF |
Reserved for future use |
Not all Trigger condition values may be supported by a specific Automation IO Service. If an attempt is made to configure a non-supported Trigger condition value, the error code “Trigger condition value not supported” shall be returned (see Section 1.6).
Trigger condition “Indicated or notified whether state has changed” (0x00) shall always be supported if the Value Trigger Setting descriptor is used and should be used as default value.
3.5.2. Time Trigger Setting Descriptor
The Time Trigger Setting descriptor is an optional writable descriptor used to set a timer or counter based condition as an additional or alternative condition to the Value Trigger Setting. It may be used for the Digital and Analog characteristics and shall only be used if a Value Trigger Setting descriptor exists for the same characteristic.
The value of the Time Trigger Setting descriptors shall be persistent between connections.
The value of the descriptor has two parts. Part one is a condition field and occupies one octet, and part two is the comparison value (trigger point) that the characteristic value is checked against.
Descriptor value format:
|
Condition |
Comparison Value |
|---|---|
|
1 octet – contains the code for the condition |
1-n octets depending on the format of the value (see list of available conditions in Table 3.11). |
Available comparison value formats:
|
Format |
Description |
|---|---|
|
Time Interval |
Time interval in seconds (uint24) |
|
Count |
16 bit unsigned integer (uint16) |
Available conditions:
|
Condition Value |
Condition |
Valid for |
Comparison Value Format |
|---|---|---|---|
|
0x00 |
No time-based triggering used. |
Digital, Analog |
None |
|
0x01 |
Indicates or notifies unconditionally after a settable time. This condition will cause server to periodically send notification or indication for the corresponding characteristic regardless of the Value Trigger state. The value triggering is suppressed and will be ignored when this time trigger condition is used. |
Digital, Analog |
Time Interval |
|
0x02 |
Not indicated or notified more often than a settable time. After a successful indication or notification, the next indication or notification shall not be sent for the Time Interval time. When the Time Interval expires, the characteristic is indicated or notified If the corresponding Value Trigger has a different state than at the time of the last successful indication or notification. |
Digital, Analog |
Time Interval |
|
0x03 |
Changed more often than. This condition will cause server to count number of times the Value Trigger has changed its state and send the notification or indication for the corresponding characteristic on the “count” occurrence of the state change. |
Digital, Analog |
Count |
|
0x04 -0xFF |
Reserved for future use |
Not all Trigger condition values may be supported by a specific Automation IO Service. If trying to configure a Trigger condition value non-supported value, the error code “Trigger condition value not supported” shall be returned (see Section 1.6).
Trigger condition “No time-based triggering used” (0x00) shall always be supported if the Time Trigger Setting descriptor exists and should be used as default value.
If both the Value Trigger Setting and the Time Trigger Setting descriptors are present for a characteristic, changing of the value of the Value Trigger Setting descriptor resets the Time Trigger Setting descriptor to its default value - “No time-based triggering used”.
3.5.3. General on Trigger Setting Descriptors
If a Value Trigger Setting descriptor exists but not a Time Trigger Setting descriptor, the behavior shall be the same as a Time Trigger Setting descriptor with the value “No time-based triggers used”.
Some examples on the use Value Trigger and Time Trigger Settings descriptors:
-
Trigger when an analog value changed more than the value 100. This will require a Value Trigger Setting descriptor with condition value = 0x03 and analog comparison value = 100.
-
Assume there are 8 digital inputs and it is required to trigger when one of the four first inputs changes its value (from active to not active or from not active to active). This will require a Value Trigger Setting descriptor with condition value = 0x04 and a bit mask comparison value = 0x55 (hexadecimal).
-
Trigger not more often than every 10 seconds if an analog value changes from above 100 to below 100 or from below 200 to above 200, i.e. a setpoint of 150 with a hysteresis of +-50. This will require one Time Trigger Setting descriptors with condition value = 0x02 and time interval comparison value = 10 seconds and a Value Trigger Setting Descriptor with condition value = 0x05 and analog interval comparison value = 100, 200.
For the Aggregate characteristic the respective trigger settings for any included characteristics are used. A logical OR is used to determine if an indication/notification shall be triggered (i.e., if one of the included characteristics has fulfilled its trigger requirements, the Aggregate characteristic shall be considered to be triggered).
4. SDP Interoperability
If this service is exposed over BR/EDR/HS then it shall have the following SDP record.
|
Item |
Definition |
Type |
Value |
Status |
|---|---|---|---|---|
|
Service Class ID List |
M |
|||
|
Service Class #0 |
UUID |
«Automation IO Service» |
M |
|
|
Protocol Descriptor List |
M |
|||
|
Protocol #0 |
UUID |
L2CAP |
M |
|
|
Parameter #0 for Protocol #0 |
PSM |
Uint16 |
PSM = ATT |
M |
|
Protocol #1 |
UUID |
ATT |
M |
|
|
Parameter #0 for Protocol #1 |
GATT Start Handle |
Uint16 |
First handle of this service in the GATT database |
M |
|
Parameter #1 for Protocol #1 |
GATT End Handle |
Uint16 |
Last handle of this service in the GATT database |
M |
|
BrowseGroupList |
PublicBrowseRoot* |
M |
- *
-
PublicBrowseRoot shall be present; however, other browse UUIDs may also be included in the list.
5. Acronyms and Abbreviations
|
Acronyms and Abbreviations |
Meaning |
|---|---|
|
BR/EDR/HS |
Basic Rate / Enhanced Data Rate / High Speed |
|
GAP |
Generic Access Profile |
|
GATT |
Generic Attribute Profile |
|
LE |
Low Energy |
|
ATT_MTU |
ATT_MTU is the maximum size of any packet sent between a client and a server (see reference [1]). |
|
IOM |
IO Module |
6. References
[1] Bluetooth Core Specification v.4.0 or later
[2] Characteristics and Descriptors descriptions accessible via Bluetooth SIG Assigned Numbers
[1] The mathematical “ceiling” notation ⌈X⌉ equals the smallest integer not less thanX.

