• 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.

IO Module (IOM)
Figure 1.1. IO Module (IOM)

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

C.1:

Mandatory if the “write” characteristic property is supported for either Digital or Analog characteristics.

C.2:

Mandatory if the “write without response” characteristic property is supported for either the Digital or Analog characteristics.

C.3:

Mandatory if the “indicate” characteristic property is supported for any characteristic.

C.4:

Mandatory if the “notify” characteristic property is supported for any characteristic.

C.5:

Mandatory if the writable characteristic descriptor is supported for any characteristic.

C.6:

Mandatory if a characteristic descriptor is supported for any characteristic.

Note:

If any of the requirements C.1 to C.6 is not met, corresponding procedure is excluded for this service.

Table 1.1. GATT sub-procedure requirements

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.

Table 1.2. Application error codes

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

C.1:

At least one instance of either Digital or Analog characteristics shall be supported.

C.2:

Only one instance of the Aggregate characteristic shall exist if the Aggregate characteristic is supported.

C.3:

The Indicate and Notify properties are excluded for the Digital and Analog characteristics if the Aggregate characteristic is supported.

C.4:

The Indicate and Notify properties shall not be permitted simultaneously for any supported characteristic.

C.5:

If Read property for the characteristic is not supported, Indicate and Notify properties are excluded.

Table 3.1. Service characteristics

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)

Table 3.2. Digital Characteristic value

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 n 4 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

C.1

Mandatory if Indicate or Notify property is defined for the characteristic, otherwise excluded.

C.2

Write permitted if «writable auxiliaries» is supported in the Characteristic Extended Properties descriptor, otherwise read-only.

C.3

Excluded if a custom condition is available (see Section 3.5), otherwise Optional.

C.4

Excluded if a Value Trigger Descriptor is not defined for the characteristic.

C.5

Excluded if Indicate or Notify is not defined for the characteristic or for the Aggregate characteristic (if it is used), otherwise Optional.

C.6

Mandatory if more than one instance of the Digital characteristic is supported, otherwise Optional.

Table 3.3. Digital descriptors

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

C.1

Mandatory if Indicate or Notify property is defined for the characteristic.

C.2

Write permitted if «writable auxiliaries» is supported in the Characteristic Extended Properties descriptor, otherwise read-only.

C.3

Mandatory if more than one instance of the Analog characteristic is supported.

C.4

Excluded if a custom condition is available, otherwise Optional (see Section 3.5).

C.5

Excluded if a Value Trigger Setting descriptor is not defined for the characteristic.

C.6

Excluded if Indicate or Notify is not supported for the characteristic or for the Aggregate characteristic (if it is used).

Table 3.4. Analog descriptors

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

C.1

Mandatory if Indicate or Notify property is supported for characteristic, otherwise excluded.

Table 3.5. Aggregate descriptors

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).

Table 3.6. Trigger Setting value format

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)

Table 3.7. Value formats for the Trigger Setting descriptor

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

Table 3.8. Available Value Trigger Setting conditions

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).

Table 3.9. Trigger Setting value format

Available comparison value formats:

Format

Description

Time Interval

Time interval in seconds (uint24)

Count

16 bit unsigned integer (uint16)

Table 3.10. Value formats for the TimeTrigger Setting descriptor

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

Table 3.11. Available Time Trigger Setting conditions

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:

  1. 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.

  2. 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).

  3. 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

Table 4.1. SDP record

*

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

Table 5.1. Acronyms and abbreviations

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.