-
Revision: v1.0
-
Revision Date: 2020-12-15
-
Group Prepared By: Sports and Fitness Working Group
Revision History
Revision Number |
Date |
Comments |
---|---|---|
v1.0 |
2020-12-15 |
Adopted by the Bluetooth SIG Board of Directors. |
Contributors
Name |
Company |
---|---|
Javier Espina |
Koninklijke Philips N.V. |
Laurence Richardson |
Qualcomm Technologies International, Ltd. |
Leif-Alexandre Aschehoug |
Nordic Semiconductor ASA |
Olivia Bellamou-Huet |
Assystem Germany GmbH |
Erik Moll |
Koninklijke Philips N.V. |
Use of this specification is your acknowledgement that you agree to and will comply with the following notices and disclaimers. You are advised to seek appropriate legal, engineering, and other professional advice regarding the use, interpretation, and effect of this specification.
Use of Bluetooth specifications by members of Bluetooth SIG is governed by the membership and other related agreements between Bluetooth SIG and its members, including those agreements posted on Bluetooth SIG’s website located at www.bluetooth.com. Any use of this specification by a member that is not in compliance with the applicable membership and other related agreements is prohibited and, among other things, may result in (i) termination of the applicable agreements and (ii) liability for infringement of the intellectual property rights of Bluetooth SIG and its members. This specification may provide options, because, for example, some products do not implement every portion of the specification. Each option identified in the specification is intended to be within the bounds of the Scope as defined in the Bluetooth Patent/Copyright License Agreement (“PCLA”). Also, the identification of options for implementing a portion of the specification is intended to provide design flexibility without establishing, for purposes of the PCLA, that any of these options is a “technically reasonable non-infringing alternative.”
Use of this specification by anyone who is not a member of Bluetooth SIG is prohibited and is an infringement of the intellectual property rights of Bluetooth SIG and its members. The furnishing of this specification does not grant any license to any intellectual property of Bluetooth SIG or its members. THIS SPECIFICATION IS PROVIDED “AS IS” AND BLUETOOTH SIG, ITS MEMBERS AND THEIR AFFILIATES MAKE NO REPRESENTATIONS OR WARRANTIES AND DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE CONTENT OF THIS SPECIFICATION IS FREE OF ERRORS. For the avoidance of doubt, Bluetooth SIG has not made any search or investigation as to third parties that may claim rights in or to any specifications or any intellectual property that may be required to implement any specifications and it disclaims any obligation or duty to do so.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BLUETOOTH SIG, ITS MEMBERS AND THEIR AFFILIATES DISCLAIM ALL LIABILITY ARISING OUT OF OR RELATING TO USE OF THIS SPECIFICATION AND ANY INFORMATION CONTAINED IN THIS SPECIFICATION, INCLUDING 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, AND EVEN IF BLUETOOTH SIG, ITS MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF THE DAMAGES.
Products equipped with Bluetooth wireless technology ("Bluetooth Products") and their combination, operation, use, implementation, and distribution may be subject to regulatory controls under the laws and regulations of numerous countries that regulate products that use wireless non-licensed spectrum. Examples include airline regulations, telecommunications regulations, technology transfer controls and health and safety regulations. You are solely responsible for complying with all applicable laws and regulations and for obtaining any and all required authorizations, permits, or licenses in connection with your use of this specification and development, manufacture, and distribution of Bluetooth Products. Nothing in this specification provides any information or assistance in connection with complying with applicable laws or regulations or obtaining required authorizations, permits, or licenses.
Bluetooth SIG is not required to adopt any specification or portion thereof. If this specification is not the final version adopted by Bluetooth SIG’s Board of Directors, it may not be adopted. Any specification adopted by Bluetooth SIG’s Board of Directors may be withdrawn, replaced, or modified at any time. Bluetooth SIG reserves the right to change or alter final specifications in accordance with its membership and operating agreements.
Copyright © 2017–2020. All copyrights in the Bluetooth Specifications themselves are owned by Apple Inc., Ericsson AB, Intel Corporation, Lenovo (Singapore) Pte. Ltd., Microsoft Corporation, Nokia Corporation, and Toshiba Corporation. The Bluetooth word mark and logos are owned by Bluetooth SIG, Inc. Other third-party brands and names are the property of their respective owners.
1. Introduction
1.1. Scope
The Physical Activity Monitor Service (PAMS) exposes physical-activity-related data in the sports, fitness, and consumer healthcare environment.
This service allows a Physical Activity Monitor (server) to send physical-activity-related data to a client.
This service may also allow a client to remotely control the Physical Activity Monitor (server).
1.2. Conformance
If conformance to this specification is claimed, all capabilities indicated as mandatory for this specification shall be supported in the specified manner (process-mandatory). This also applies for all optional and conditional capabilities for which support is indicated.
1.3. Service dependencies
This service is not dependent upon any other services.
1.4. Bluetooth Core Specification release compatibility
This specification is compatible with the Bluetooth Core Specification v4.2 [2] or later.
1.5. GATT sub-procedure requirements
Requirements in this section represent a minimum set of requirements for a server. Other Generic Attribute Profile (GATT) sub-procedures may be used if supported by both client and server.
Table 1.1 summarizes additional GATT sub-procedure requirements beyond those required by all GATT servers.
GATT Sub-Procedure |
Requirements |
---|---|
Read Long Characteristic Values |
M |
Write Characteristic Value |
M |
Characteristic Value Notification |
M |
Characteristic Value Indication |
M |
Read Characteristic Descriptors |
M |
Write Characteristic Descriptors |
M |
- M:
-
Mandatory
1.6. Transport dependencies
There are no transport restrictions imposed by this service specification.
The term Basic Rate/Enhanced Data Rate (BR/EDR) that is used throughout this document also includes the optional use of Alternate MAC PHY.
1.7. Application error codes
This service defines the following Attribute Protocol (ATT) Application Error responses and codes for use with the Physical Activity Monitor Control Point characteristic described in Section 3.9.
Name |
Error Code |
Description |
---|---|---|
Op Code Not Supported |
0x80 |
Response if an unsupported opcode is received. |
Invalid Session ID |
0x81 |
Response if the Session ID parameter value received is not recognized. |
Invalid Sub-session ID |
0x82 |
Response if the Sub-session ID parameter value received is not recognized. |
Session Still Running |
0x83 |
Response to the Get Ended Session Data procedure request or the Delete Ended Session procedure request if the Session ID parameter value received refers to a session that has not yet ended. |
No Data Available |
0x84 |
Response to the Get Ended Session Data procedure request if no data is available that matches the parameter values. |
No Sessions Available |
0x85 |
Response to the Enquire Sessions procedure request if no sessions are available. |
Invalid Type |
0x86 |
Response to the Start Session/Sub-session or Set Average Activity Type procedure request if the Type or Scope parameter value received is in the RFU value range. |
No Session Running |
0x87 |
Response to the Start Session/Sub-session procedure request or Set Average Activity Type procedure request if the request cannot be executed because no session is running. |
Nothing To Stop |
0x88 |
Response to the Stop Session procedure request if the request cannot be executed because no session is running. |
Activity Type Out Of Range |
0x89 |
Response to the Set Average Activity Type procedure request if the User-Defined Activity Type parameter value received is in the RFU value range. |
Operation Failed |
0x8A |
Response if the requested procedure is rejected for a reason other than those enumerated above. |
1.8. Byte transmission order
All characteristics used with this service shall be transmitted with the least significant octet (LSO) first (i.e., little endian). The LSO is identified in the characteristic definitions in [1].
1.9. Language
1.9.1. Language conventions
The Bluetooth SIG has established the following conventions for use of the words shall, must, will, should, may, can, is, and note in the development of specifications:
shall |
is required to – used to define requirements. |
must |
is used to express: a natural consequence of a previously stated mandatory requirement. OR an indisputable statement of fact (one that is always true regardless of the circumstances). |
will |
it is true that – only used in statements of fact. |
should |
is recommended that – used to indicate that among several possibilities one is recommended as particularly suitable, but not required. |
may |
is permitted to – used to allow options. |
can |
is able to – used to relate statements in a causal manner. |
is |
is defined as – used to further explain elements that are previously required or allowed. |
note |
Used to indicate text that is included for informational purposes only and is not required in order to implement the specification. Each note is clearly designated as a “Note” and set off in a separate paragraph. |
For clarity of the definition of those terms, see Core Specification Volume 1, Part E, Section 1.
1.9.2. Reserved for Future Use
Where a field in a packet, Protocol Data Unit (PDU), or other data structure is described as "Reserved for Future Use" (irrespective of whether in uppercase or lowercase), the device creating the structure shall set its value to zero unless otherwise specified. Any device receiving or interpreting the structure shall ignore that field; in particular, it shall not reject the structure because of the value of the field.
Where a field, parameter, or other variable object can take a range of values, and some values are described as "Reserved for Future Use," a device sending the object shall not set the object to those values. A device receiving an object with such a value should reject it, and any data structure containing it, as being erroneous; however, this does not apply in a context where the object is described as being ignored or it is specified to ignore unrecognized values.
When a field value is a bit field, unassigned bits can be marked as Reserved for Future Use and shall be set to 0. Implementations that receive a message that contains a Reserved for Future Use bit that is set to 1 shall process the message as if that bit was set to 0, except where specified otherwise.
The acronym RFU is equivalent to Reserved for Future Use.
1.9.3. Prohibited
When a field value is an enumeration, unassigned values can be marked as “Prohibited.” These values shall never be used by an implementation, and any message received that includes a Prohibited value shall be ignored and shall not be processed and shall not be responded to.
Where a field, parameter, or other variable object can take a range of values, and some values are described as “Prohibited,” devices shall not set the object to any of those Prohibited values. A device receiving an object with such a value should reject it, and any data structure containing it, as being erroneous.
“Prohibited” is never abbreviated.
2. Service
2.1. Declaration
The PAMS should be instantiated as a «Primary Service».
The service Universal Unique Identifier (UUID) shall be set to «Physical Activity Monitor Service» as defined in [1].
2.2. Behavior
The PAMS exposes real-time or stored physical-activity-related data, or both, via several data characteristics.
The PAMS defines seven data characteristics, of which two are mandatory and five are optionally exposed depending on the capabilities of the Physical Activity Monitor that instantiates the service.
Data characteristics are divided into summary data characteristics and instantaneous data characteristics. Summary data characteristics expose data integrated since the beginning of a physical activity session/sub-session. Instantaneous data characteristics expose data integrated over periods of time normally shorter than the length of the physical activity session/sub-session (for example, 1 second or a few seconds).
The Physical Activity Monitor Control Point characteristic, in combination with the Physical Activity Current Session characteristic and the Physical Activity Session Descriptor characteristic, enables the client to manage physical activity sessions/sub-sessions. This includes receiving session/sub-session descriptions, starting or stopping sessions/sub-sessions, and selecting a session/sub-session for retrieval of its physical-activity-related data.
2.3. Definition and behavior of sessions and sub-sessions
In the context of this service, a physical activity session/sub-session is started when the user triggers the start of a session/sub-session via the server User Interface (UI), when the server starts a session/sub-session on its own (for example, every 24 hours or based on automatic activity detection and segmentation in user activity-defined sessions/sub-sessions), or when the Start Session/Sub-session procedure of the Physical Activity Monitor Control Point is initiated (see Section 3.9).
A session shall not overlap with another session. Therefore, a session ends as soon as a new session is started.
A session also ends when the session is stopped, which occurs when the user triggers the stopping of the session via the server UI or when the Stop Session procedure of the Physical Activity Monitor Control Point is initiated (see Section 3.9).
When a session is running, the server may measure, compute, record, or transmit physical activity data to the client. When no session is running, the server is inactive and does not measure, compute, or record physical activity data.
A session shall consist of one or more sub-sessions.
Sub-sessions may be used, for example, to segment a long training session into the parts it consists of (such as walking, running, and rowing) or to segment a 24-hour session into 1-hour parts.
The sub-sessions of a session shall not overlap with each other and shall, together, add up to the entire duration of the session to which they belong. A sub-session therefore lasts until a new sub-session is started or its parent session is stopped.
The session identifiers (Session ID) are assigned by the server in an implementation-specific manner so that they are unique on the server (either forever or within a long period of time).
The sub-session identifiers (Sub-session ID) are assigned by the server in an implementation-specific manner so that they are unique on the server within the context of their parent session (either forever or within a long period of time).
For information about server requirements and how the server reports Physical Activity Current Session changes to the client, see Section 3.10.
2.4. Data Record definition and Data Record segment transmission
A Data Record consists of multiple session/sub-session-related data that are sent to a client via notifications or indications of a data characteristic (i.e., any of the instantaneous data characteristics or summary data characteristics defined in Section 3). A Data Record is therefore a container for a data characteristic.
The size of a Data Record may exceed the maximum that may be sent in a single Handle Value Notification or Indication as defined by ATT_MTU sizes described in the ATT specification in [2]. This service therefore defines a mechanism for segmentation of the Data Records into smaller characteristic values that may then be notified or indicated sequentially, using a stream of data characteristic notifications or indications.
Note: Default ATT_MTU sizes and the process of exchanging ATT_MTU sizes are described in the Core Specification [2].
If a Data Record does not exceed the size of (ATT_MTU-3) octets, then it can be sent in one single notification or indication. If a Data Record exceeds the size of (ATT_MTU-3) octets, then it shall be segmented into multiple notifications or indications. In both cases the following segmentation procedure shall be used:
-
The number of Data Record segments to be sent is represented by the integer N, which shall be obtained by first calculating and then rounding up to the nearest integer.
-
If N=1, then the First Segment and Last Segment bits of the Header field shall be set to 1.
-
If N > 1, then the First Segment bit of the Header field shall be set to 1 and the Last Segment bit of the Header field shall be set to 0.
-
The LSOs of the Data Record after the Header field shall be included in the Data Record segment up to (ATT_MTU-4) octets in order.
-
The Data Record segment shall be notified or indicated, as applicable.
-
The value of the Rolling Segment Counter bits of the Header field shall be incremented by 1.
-
If the value of the Last Segment bit of the Header field is 1, then end the procedure at this point; otherwise, continue to step 8.
-
The First Segment bit of the Header field shall be set to 0.
-
If the number of octets remaining to be sent can be sent in one more notification or indication (i.e., it does not exceed the size of (ATT_MTU-4) octets), then the Last Segment bit of the Header field shall be set to 1; otherwise, it shall remain set to 0.
-
The LSOs of the Data Record that remain to be sent shall be included in the Data Record segment up to (ATT_MTU-4) octets in order.
-
Repeat from step 4.
When the service is initialized (e.g., upon connection to the client), the Rolling Segment Counter may be set to any number in the range 0 to 63. The Rolling Segment Counter shall then be incremented continuously without being reset each time the procedure above is used. Once the Rolling Segment Counter reaches 63, it shall roll over to 0 the next time it is incremented by 1.
Figure 2.1 illustrates the result of the segmentation procedure when a Data Record is segmented into three data characteristic notifications or indications.
2.4.1. Header field definition
The Header field bits and their function are defined in Table 2.1.
If segmentation into multiple notifications is used, then the First Segment, Last Segment, and Rolling Segment Counter bits are set as described in Section 2.4. If no segmentation into multiple notifications is used, then the First Segment and Last Segment bits are set to 1.
Bit Number |
Definition |
Description |
---|---|---|
0 |
First Segment |
The First Segment bit identifies the first segment of a segmented Data Record. |
1 |
Last Segment |
The Last Segment bit identifies the last segment of a segmented Data Record. |
2 to 7 |
Rolling Segment Counter |
The Rolling Segment Counter bits are used to enable the client to correctly reconstruct a segmented Data Record. |
3. Service characteristics
This section defines the characteristic and descriptor requirements.
Only one instance of each characteristic in Table 3.1 is permitted within this service.
Where a characteristic can be notified or indicated, a Client Characteristic Configuration descriptor shall be included in that characteristic, as required by the Core Specification [2].
Characteristic Name[a] |
Requirement[b] |
Mandatory Properties |
Optional Properties |
Security Permission[c] |
|||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Physical Activity Monitor Features |
M |
Read |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
General Activity Instantaneous Data |
M |
Notify |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
General Activity Summary Data |
M |
Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
CardioRespiratory Activity Instantaneous Data |
O |
Notify |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
CardioRespiratory Activity Summary Data |
O |
Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Step Counter Activity Summary Data |
O |
Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Sleep Activity Instantaneous Data |
O |
Notify |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Sleep Activity Summary Data |
O |
Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Physical Activity Monitor Control Point |
M |
Write, Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Physical Activity Current Session |
M |
Indicate, Read |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
Physical Activity Session Descriptor |
M |
Indicate |
None |
None |
|||||||||||||||||||||||||||||||||||||||||||||
[a] The characteristics and the characteristic descriptors specified by this service are defined in this specification and in [1]. [b] Properties that are not listed as Mandatory or Optional are excluded for this version of the service. [c] The Security Permission “None” means that this version of the service does not impose any requirement. However, a profile specification may impose additional security requirements. |
- M:
-
Mandatory
- O:
-
Optional
3.1. Physical Activity Monitor Features
The Physical Activity Monitor Features characteristic is identified using the UUID «Physical Activity Monitor Features», as defined in [1].
The Physical Activity Monitor Features characteristic exposes which optional features are supported by the server implementation.
The bits of the Physical Activity Monitor Features characteristic may either be static for the lifetime of the device or static only during a connection. Although all defined bits in this version of this specification are required to be static during the lifetime of a device, it is possible that some future bits are defined as being static only during a connection. The lifetime of the device is defined as the time period until the device is taken out of service or a firmware update takes place.
3.1.1. Characteristic behavior
The characteristic is read-only and returns a value when read.
3.1.1.1. Characteristic structure
The characteristic value is of fixed length and has the structure defined in Table 3.2.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Features |
M |
64 bit |
8 |
See Table 3.3 |
- M:
-
Mandatory
The Features field bits and their function are defined in Table 3.3.
When the server supports a feature, the associated bit of the Physical Activity Monitor Features characteristic shall be set to 1 (Feature supported); otherwise, the associated bit shall be set to 0 (Feature not supported).
The server shall support at least one feature.
Bit Number |
Definition |
---|---|
0 |
Multiple Users Supported |
1 |
User Data Service Supported |
2 |
Device Worn Supported |
3 |
Normal Walking Energy Expenditure Supported |
4 |
Normal Walking Energy Expenditure per Hour Supported |
5 |
Intensity Energy Expenditure Supported |
6 |
Intensity Energy Expenditure per Hour Supported |
7 |
Total Energy Expenditure Supported |
8 |
Total Energy Expenditure per Hour Supported |
9 |
Fat Burned Supported |
10 |
Fat Burned per Hour Supported |
11 |
Metabolic Equivalent Supported |
12 |
Distance Supported |
13 |
Speed Supported |
14 |
Duration of Normal Walking Episodes Supported |
15 |
Duration of Intensity Walking Episodes Supported |
16 |
Motion Cadence Supported |
17 |
Floors Supported |
18 |
Positive Elevation Gain Supported |
19 |
Negative Elevation Gain Supported |
20 |
Elevation Supported |
21 |
Activity Count Supported |
22 |
Activity Count per Minute Supported |
23 |
Activity Level Supported |
24 |
Activity Type Supported |
25 |
Worn Duration Supported |
26 |
Time in Heart Rate Zone1 Supported |
27 |
Time in Heart Rate Zone2 Supported |
28 |
Time in Heart Rate Zone3 Supported |
29 |
Time in Heart Rate Zone4 Supported |
30 |
Time in Heart Rate Zone5 Supported |
31 |
VO2 Max Supported |
32 |
Heart Rate Supported |
33 |
Pulse Inter-beat Interval Supported |
34 |
Resting Heart Rate Supported |
35 |
Heart Rate Variability Supported |
36 |
Respiration Rate Supported |
37 |
Resting Respiration Rate Supported |
38 |
Normal Walking Steps Supported |
39 |
Intensity Steps Supported |
40 |
Floor Steps Supported |
41 |
Total Sleep Time Supported |
42 |
Total Wake Time Supported |
43 |
Total Bed Time Supported |
44 |
Number of Awakenings Supported |
45 |
Sleep Latency Supported |
46 |
Sleep Efficiency Supported |
47 |
Snooze Time Supported |
48 |
Number of Toss-&-turn Events Supported |
49 |
Time of Awakening After Alarm Supported |
50 |
Visible Light Level Supported |
51 |
Ultraviolet (UV) Light Level Supported |
52 |
Infrared (IR) Light Level Supported |
53 |
Sleep Stage Supported |
54 |
Sleeping Heart Rate Supported |
55 to 63 |
RFU |
If the server supports the User Data Service [4], then the User Data Service Supported bit shall be set to 1; otherwise, the User Data Service Supported bit shall be set to 0.
If the User Data Service is used in combination with the PAMS, then the measurement data (i.e., indications or notifications from PAMS data characteristics) must be retrievable on a per-user basis. See Section 3.1 in [5] for more details.
3.2. General Activity Instantaneous Data
The General Activity Instantaneous Data characteristic is identified using the UUID «General Activity Instantaneous Data», as defined in [1].
The General Activity Instantaneous Data characteristic is used to send session/sub-session-related data of an instantaneous nature (as defined in Section 2.2) to the client. The general activity data is related to measurements that may be widely supported across different types of activity monitors.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.4.
3.2.1. Characteristic behavior
The General Activity Instantaneous Data characteristic shall be notified when it is configured for notification via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be notified approximately once every 1 to 30 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
For Bluetooth Low Energy (LE), all the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple notifications.
For BR/EDR, this restriction does not exist due to a larger MTU size.
3.2.1.1. Characteristic structure
The structure of the General Activity Instantaneous Data characteristic is defined in Table 3.4.
The characteristic value is of variable length, ranging up to 38 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
24 bit |
3 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Normal Walking Energy Expenditure per Hour |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Intensity Energy Expenditure per Hour |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Total Energy Expenditure per Hour |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Fat Burned per Hour |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.mass.kilogram Represented values: M = 1, d = -3, b = 0 Unit is 0.001 kg |
Metabolic Equivalent |
C.2 |
uint8 |
1 |
Base Unit: org.bluetooth.unit.metabolic_equivalent Represented values: M = 1, d = -1, b = 0 Unit is 0.1 MET (i.e., kcal/kg/hour) |
Speed |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour Represented values: M = 1, d = -1, b = 0 Unit is 0.1 km/h |
Motion Cadence |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Elevation |
C.2 |
sint24 |
3 |
Base Unit: org.bluetooth.unit.length.metre Represented values: M = 1, d = -2, b =0 Unit is 0.01 m |
Activity Count per Minute |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Activity Level |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Activity Type |
C.2 |
uint16 |
2 |
- C.1
-
Mandatory if no segmentation into multiple notifications is used.
Also mandatory if segmentation into multiple notifications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.2.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.2.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.5.
When the server includes a given data field in any of the segments (in case of Data Record segmentation), the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the General Activity Instantaneous Data characteristic.
If the Physical Activity Monitor Features characteristic denotes server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 1 when the device is worn and shall be set to 0 when the device is not worn.
If the Physical Activity Monitor Features characteristic does not denote server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 0.
Bit Number |
Definition |
---|---|
0 |
Normal Walking Energy Expenditure per Hour Present |
1 |
Intensity Energy Expenditure per Hour Present |
2 |
Total Energy Expenditure per Hour Present |
3 |
Fat Burned per Hour Present |
4 |
Metabolic Equivalent Present |
5 |
Speed Present |
6 |
Motion Cadence Present |
7 |
Elevation Present |
8 |
Activity Count per Minute Present |
9 |
Activity Level Present |
10 |
Activity Type Present |
11 to 22 |
RFU |
23 |
Device Worn |
3.2.1.1.3. Session ID field
The Session ID field represents the identifier of the physical activity session to which the data is related.
3.2.1.1.4. Sub-session ID field
The Sub-session ID field represents the identifier of the physical activity sub-session to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.2.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the time stamp of the data included in the General Activity Instantaneous Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.2.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number included in the General Activity Instantaneous Data characteristic.
Sequence Number field values are assigned by the server in an implementation-specific manner that facilitates the correct data organization on the client side. Sequence Number field values should be incremented by 1 every time their respective data characteristic is updated and should roll over to 0x00000000 after the maximum value 0xFFFFFFFF is reached.
3.2.1.1.7. Normal Walking Energy Expenditure per Hour field
The Normal Walking Energy Expenditure per Hour field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Normal Walking Energy Expenditure per Hour.
The Normal Walking Energy Expenditure per Hour field represents the instantaneous energy expenditure rate of the user for low-intensity physical activity.
3.2.1.1.8. Intensity Energy Expenditure per Hour field
The Intensity Energy Expenditure per Hour field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Intensity Energy Expenditure per Hour.
The Intensity Energy Expenditure per Hour field represents the instantaneous energy expenditure rate of the user for high-intensity physical activity.
3.2.1.1.9. Total Energy Expenditure per Hour field
The Total Energy Expenditure per Hour field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Total Energy Expenditure per Hour.
The Total Energy Expenditure per Hour field represents the instantaneous total energy expenditure rate of the user.
3.2.1.1.10. Fat Burned per Hour field
The Fat Burned per Hour field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Fat Burned per Hour.
The Fat Burned per Hour field represents the instantaneous fat burn rate of the user.
3.2.1.1.11. Metabolic Equivalent field
The Metabolic Equivalent field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Metabolic Equivalent.
The Metabolic Equivalent field represents the instantaneous metabolic equivalent of the user.
3.2.1.1.12. Speed field
The Speed field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Speed.
The Speed field represents the instantaneous speed of the user.
3.2.1.1.13. Motion Cadence field
The Motion Cadence field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Motion Cadence.
The Motion Cadence field may represent steps per minute or revolutions per minute, depending on the type of physical activity performed by the user.
3.2.1.1.14. Elevation field
The Elevation field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Elevation.
The Elevation field represents the instantaneous elevation of the user above sea level.
3.2.1.1.15. Activity Count per Minute field
The Activity Count per Minute field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Count per Minute.
The Activity Count per Minute field represents the instantaneous amount of activity or motion of the user in a 1-minute interval.
3.2.1.1.16. Activity Level field
The Activity Level field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Level.
The Activity Level field represents the instantaneous amount of activity or motion of the user in an implementation-specific measurement interval.
3.2.1.1.17. Activity Type field
The Activity Type field may be included in the General Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Type.
The Activity Type field represents the instantaneous activity type of the user.
Table 3.6 defines the structure of the Activity Type field.
Sub-field |
Sub-field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Monitor-Defined |
M |
N/A |
1 |
The Monitor-Defined sub-field represents the activity type detected by the Physical Activity Monitor. See Table 3.7 for the sub-field value definition. |
User-Defined |
M |
N/A |
1 |
The User-Defined sub-field represents the activity type entered by the user. See Table 3.7 for the sub-field value definition. |
- M:
-
Mandatory
Table 3.7 defines the meaning of both Activity Type field sub-fields.
Value |
Definition |
Description |
---|---|---|
0x00 |
Unspecified |
– |
0x01 |
Other |
– |
0x02 |
Sit |
– |
0x03 |
Lie |
– |
0x04 |
Stand |
– |
0x05 |
Walk |
Includes hiking. |
0x06 |
Shuffle |
– |
0x07 |
Run |
Includes jogging. |
0x08 |
Cycle indoor |
– |
0x09 |
Cycle outdoor |
– |
0x0A |
Cycle |
– |
0x0B |
Aerobic workout |
Continuous, high-paced activity such as dance or kickboxing. |
0x0C |
Elliptical |
Activity performed on an elliptical trainer, elliptical glider, or elliptical cross trainer. |
0x0D |
Sports |
Continuous, high-paced activity such as tennis, soccer, or basketball. |
0x0E |
Swim |
– |
0x0F to 0xFE |
RFU |
– |
0xFF |
Unknown |
Activity is unknown. |
3.2.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.3. General Activity Summary Data
The General Activity Summary Data characteristic is identified using the UUID «General Activity Summary Data», as defined in [1].
The General Activity Summary Data characteristic is used to send session/sub-session summary-type data to the client (see the definition of summary data in Section 2.2). Such general activity data is related to measurements that may be widely supported across different types of activity monitors.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.8.
3.3.1. Characteristic behavior
The General Activity Summary Data characteristic shall be indicated when it is configured for indication via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be indicated approximately once every 5 to 60 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
All the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple indications.
3.3.1.1. Characteristic structure
The structure of the General Activity Summary Data characteristic is defined in Table 3.8.
The characteristic value is of variable length, ranging up to 77 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
32 bit |
4 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Normal Walking Energy Expenditure |
C.2 |
uint32 |
4 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Intensity Energy Expenditure |
C.2 |
uint32 |
4 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Total Energy Expenditure |
C.2 |
uint32 |
4 |
Base Unit: org.bluetooth.unit.energy.joule Represented values: M = 1, d = 3, b = 0 Unit is 1000 joule |
Fat Burned |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.mass.kilogram Represented values: M = 1, d = -3, b = 0 Unit is 0.001 kg |
Minimum Metabolic Equivalent |
C.2 |
uint8 |
1 |
Base Unit: org.bluetooth.unit.metabolic_equivalent Represented values: M = 1, d = -1, b = 0 Unit is 0.1 MET (i.e., kcal/kg/hour) |
Maximum Metabolic Equivalent |
C.2 |
uint8 |
1 |
Base Unit: org.bluetooth.unit.metabolic_equivalent Represented values: M = 1, d = -1, b = 0 Unit is 0.1 MET (i.e., kcal/kg/hour) |
Average Metabolic Equivalent |
C.2 |
uint8 |
1 |
Base Unit: org.bluetooth.unit.metabolic_equivalent Represented values: M = 1, d = -1, b = 0 Unit is 0.1 MET (i.e., kcal/kg/hour) |
Distance |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.length.metre Represented values: M = 1, d = 1, b = 0 Unit is 1 m |
Minimum Speed |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour Represented values: M = 1, d = -1, b = 0 Unit is 0.1 km/h |
Maximum Speed |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour Represented values: M = 1, d = -1, b = 0 Unit is 0.1 km/h |
Average Speed |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour Represented values: M = 1, d = -1, b = 0 Unit is 0.1 km/h |
Duration of Normal Walking Episodes |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Duration of Intensity Walking Episodes |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Minimum Motion Cadence |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Maximum Motion Cadence |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Average Motion Cadence |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Floors |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.unitless |
Positive Elevation Gain |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.length.metre Represented values: M = 1, d = -2, b = 0 Unit is 0.01 m |
Negative Elevation Gain |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.length.metre Represented values: M = 1, d = -2, b = 0 Unit is 0.01 m |
Activity Count |
C.2 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Minimum Activity Level |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Maximum Activity Level |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Average Activity Level |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Average Activity Type |
C.2 |
uint16 |
2 |
|
Worn Duration |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
- C.1
-
Mandatory if no segmentation into multiple indications is used.
Also mandatory if segmentation into multiple indications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.3.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.3.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.9.
When the server includes a given data field, the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the General Activity Summary Data characteristic.
Bit Number |
Definition |
---|---|
0 |
Normal Walking Energy Expenditure Present |
1 |
Intensity Energy Expenditure Present |
2 |
Total Energy Expenditure Present |
3 |
Fat Burned Present |
4 |
Minimum Metabolic Equivalent Present |
5 |
Maximum Metabolic Equivalent Present |
6 |
Average Metabolic Equivalent Present |
7 |
Distance Present |
8 |
Minimum Speed Present |
9 |
Maximum Speed Present |
10 |
Average Speed Present |
11 |
Duration of Normal Walking Episodes Present |
12 |
Duration of Intensity Walking Episodes Present |
13 |
Minimum Motion Cadence Present |
14 |
Maximum Motion Cadence Present |
15 |
Average Motion Cadence Present |
16 |
Floors Present |
17 |
Positive Elevation Gain Present |
18 |
Negative Elevation Gain Present |
19 |
Activity Count Present |
20 |
Minimum Activity Level Present |
21 |
Maximum Activity Level Present |
22 |
Average Activity Level Present |
23 |
Average Activity Type Present |
24 |
Worn Duration Present |
25 to 31 |
RFU |
3.3.1.1.3. Session ID field
The Session ID field represents the physical activity session identifier to which the data is related.
3.3.1.1.4. Sub-session ID field
The Sub-session ID field represents the physical activity sub-session identifier to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.3.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the data time stamp that is included in the General Activity Summary Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.3.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number that is included in the General Activity Summary Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.3.1.1.7. Normal Walking Energy Expenditure field
The Normal Walking Energy Expenditure field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Normal Walking Energy Expenditure.
The Normal Walking Energy Expenditure field represents the energy expenditure of the user during the physical activity session/sub-session for low-intensity physical activity.
3.3.1.1.8. Intensity Energy Expenditure field
The Intensity Energy Expenditure field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Intensity Energy Expenditure.
The Intensity Energy Expenditure field represents the energy expenditure of the user during the physical activity session/sub-session for high-intensity physical activity.
3.3.1.1.9. Total Energy Expenditure field
The Total Energy Expenditure field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Total Energy Expenditure.
The Total Energy Expenditure field represents the total energy expenditure of the user during the physical activity session/sub-session.
3.3.1.1.10. Fat Burned field
The Fat Burned field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Fat Burned.
The Fat Burned field represents the fat burned by the user during the physical activity session/sub‑session.
3.3.1.1.11. Minimum Metabolic Equivalent field
The Minimum Metabolic Equivalent field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Metabolic Equivalent.
The Minimum Metabolic Equivalent field represents the minimum metabolic equivalent of the user during the physical activity session/sub-session.
3.3.1.1.12. Maximum Metabolic Equivalent field
The Maximum Metabolic Equivalent field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Metabolic Equivalent.
The Maximum Metabolic Equivalent field represents the maximum metabolic equivalent of the user during the physical activity session/sub-session.
3.3.1.1.13. Average Metabolic Equivalent field
The Average Metabolic Equivalent field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Metabolic Equivalent.
The Average Metabolic Equivalent field represents the average metabolic equivalent of the user during the physical activity session/sub-session.
3.3.1.1.14. Distance field
The Distance field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Distance.
The Distance field represents the distance covered by the user during the physical activity session/sub‑session.
3.3.1.1.15. Minimum Speed field
The Minimum Speed field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Speed.
The Minimum Speed field represents the minimum speed of the user during the physical activity session/sub-session.
3.3.1.1.16. Maximum Speed field
The Maximum Speed field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Speed.
The Maximum Speed field represents the maximum speed of the user during the physical activity session/sub-session.
3.3.1.1.17. Average Speed field
The Average Speed field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Speed.
The Average Speed field represents the average speed of the user during the physical activity session/sub-session.
3.3.1.1.18. Duration of Normal Walking Episodes field
The Duration of Normal Walking Episodes field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Duration of Normal Walking Episodes.
The Duration of Normal Walking Episodes field represents the total duration of normal walking episodes within the physical activity session/sub-session.
3.3.1.1.19. Duration of Intensity Walking Episodes field
The Duration of Intensity Walking Episodes field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Duration of Intensity Walking Episodes.
The Duration of Intensity Walking Episodes field represents the total duration of high-paced walking episodes within the physical activity session/sub-session.
3.3.1.1.20. Minimum Motion Cadence field
The Minimum Motion Cadence field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Motion Cadence.
The Minimum Motion Cadence field may represent the minimum rate of steps per minute or revolutions per minute during the physical activity session/sub-session, depending on the type of physical activity performed by the user.
3.3.1.1.21. Maximum Motion Cadence field
The Maximum Motion Cadence field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Motion Cadence.
The Maximum Motion Cadence field may represent the maximum rate of steps per minute or revolutions per minute during the physical activity session/sub-session, depending on the type of physical activity performed by the user.
3.3.1.1.22. Average Motion Cadence field
The Average Motion Cadence field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Motion Cadence.
The Average Motion Cadence field may represent the average rate of steps per minute or revolutions per minute during the physical activity session/sub-session, depending on the type of physical activity performed by the user.
3.3.1.1.23. Floors field
The Floors field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Floors.
The Floors field represents the number of floors climbed by the user during the physical activity session/sub-session.
3.3.1.1.24. Positive Elevation Gain field
The Positive Elevation Gain field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Positive Elevation Gain.
The Positive Elevation Gain field represents the sum of vertical ascents of the user during the physical activity session/sub-session.
3.3.1.1.25. Negative Elevation Gain field
The Negative Elevation Gain field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Negative Elevation Gain.
The Negative Elevation Gain field represents the sum of vertical descents of the user during the physical activity session/sub-session.
3.3.1.1.26. Activity Count field
The Activity Count field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Count.
The Activity Count field represents the amount of activity or motion of the user accumulated during the physical activity session/sub-session.
3.3.1.1.27. Minimum Activity Level field
The Minimum Activity Level field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Level.
The Minimum Activity Level field represents the minimum amount of activity or motion of the user during the physical activity session/sub-session. See Section 3.2.1.1.16 for more details about the Activity Level field.
3.3.1.1.28. Maximum Activity Level field
The Maximum Activity Level field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Level.
The Maximum Activity Level field represents the maximum amount of activity or motion of the user during the physical activity session/sub-session. See Section 3.2.1.1.16 for more details about the Activity Level field.
3.3.1.1.29. Average Activity Level field
The Average Activity Level field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Level.
The Average Activity Level field represents the average amount of activity or motion of the user during the physical activity session/sub-session. See Section 3.2.1.1.16 for more details about the Activity Level field.
3.3.1.1.30. Average Activity Type field
The Average Activity Type field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Activity Type.
The Average Activity Type field represents the most predominant activity type of the user during the physical activity session/sub-session. See Section 3.2.1.1.17 for more details about the Activity Type field.
3.3.1.1.31. Worn Duration field
The Worn Duration field may be included in the General Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Worn Duration.
The Worn Duration field represents the total amount of time within the physical activity session/sub‑session that the user has worn the Physical Activity Monitor (as detected and calculated by the Physical Activity Monitor).
3.3.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.4. CardioRespiratory Activity Instantaneous Data
The CardioRespiratory Activity Instantaneous Data characteristic is identified using the UUID «CardioRespiratory Activity Instantaneous Data», as defined in [1].
The CardioRespiratory Activity Instantaneous Data characteristic is used to send session/sub-session‑related data of an instantaneous nature (as defined in Section 2.2) to the client. The data is related to measurements that are typically supported by physical activity monitors that have cardiovascular and/or respiratory monitoring capabilities.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.10.
3.4.1. Characteristic behavior
The CardioRespiratory Activity Instantaneous Data characteristic shall be notified when it is configured for notification via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be notified approximately once every 1 to 30 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
For Bluetooth LE, all the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple notifications.
For BR/EDR, this restriction does not exist due to a larger MTU size.
3.4.1.1. Characteristic structure
The structure of the CardioRespiratory Activity Instantaneous Data characteristic is defined in Table 3.10.
The characteristic value is of variable length, ranging up to 24 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
16 bit |
2 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
VO2 Max |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute |
Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Pulse Inter-beat Interval |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Resting Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Heart Rate Variability |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Resting Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
- C.1
-
Mandatory if no segmentation into multiple notifications is used.
Also mandatory if segmentation into multiple notifications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.4.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.4.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.11.
When the server includes a given data field in any of the segments (in case of Data Record segmentation), the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the CardioRespiratory Activity Instantaneous Data characteristic.
If the Physical Activity Monitor Features characteristic denotes server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 1 when the device is worn and shall be set to 0 when the device is not worn.
If the Physical Activity Monitor Features characteristic does not denote server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 0.
Bit Number |
Definition |
---|---|
0 |
VO2 Max Present |
1 |
Heart Rate Present |
2 |
Pulse Inter-beat Interval Present |
3 |
Resting Heart Rate Present |
4 |
Heart Rate Variability Present |
5 |
Respiration Rate Present |
6 |
Resting Respiration Rate Present |
7 to 14 |
RFU |
15 |
Device Worn |
3.4.1.1.3. Session ID field
The Session ID field represents the identifier of the physical activity session to which the data is related.
3.4.1.1.4. Sub-session ID field
The Sub-session ID field represents the identifier of the physical activity sub-session to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.4.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the time stamp of the data included in the CardioRespiratory Activity Instantaneous Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.4.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number included in the CardioRespiratory Activity Instantaneous Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.4.1.1.7. VO2 Max field
The VO2 Max field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for VO2 Max.
The VO2 Max field represents the user’s aerobic capacity, expressed as the maximum amount of oxygen that the user utilizes during very intense exercise.
3.4.1.1.8. Heart Rate field
The Heart Rate field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate.
The Heart Rate field represents the user’s heart rate.
3.4.1.1.9. Pulse Inter-beat Interval field
The Pulse Inter-beat Interval field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Pulse Inter-beat Interval.
The Pulse Inter-beat Interval field represents the interval between the user’s heartbeats. It may be determined by measuring the time interval between two consecutive R-peaks in an electrocardiogram.
3.4.1.1.10. Resting Heart Rate field
The Resting Heart Rate field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Heart Rate.
The Resting Heart Rate field represents the user’s heart rate at rest.
3.4.1.1.11. Heart Rate Variability field
The Heart Rate Variability field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate Variability.
The Heart Rate Variability field represents the user’s pulse inter-beat interval variation.
3.4.1.1.12. Respiration Rate field
The Respiration Rate field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Respiration Rate.
The Respiration Rate field represents the user’s breathing rate.
3.4.1.1.13. Resting Respiration Rate field
The Resting Respiration Rate field may be included in the CardioRespiratory Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Respiration Rate.
The Resting Respiration Rate field represents the user’s breathing rate at rest.
3.4.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.5. CardioRespiratory Activity Summary Data
The CardioRespiratory Activity Summary Data characteristic is identified using the UUID «CardioRespiratory Activity Summary Data», as defined in [1].
The CardioRespiratory Activity Summary Data characteristic is used to send session/sub-session summary-type data to the client (see the definition of summary data in Section 2.2). The data is related to measurements that are typically supported by physical activity monitors that have cardiovascular and/or respiratory capabilities.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.12.
3.5.1. Characteristic behavior
The CardioRespiratory Activity Summary Data characteristic shall be indicated when it is configured for indication via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be indicated approximately once every 5 to 60 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
All the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple indications.
3.5.1.1. Characteristic structure
The structure of the CardioRespiratory Activity Summary Data characteristic is defined in Table 3.12.
The characteristic value is of variable length, ranging up to 62 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
32 bit |
4 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Time in Heart Rate Zone1 |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Time in Heart Rate Zone2 |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Time in Heart Rate Zone3 |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Time in Heart Rate Zone4 |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Time in Heart Rate Zone5 |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Minimum VO2 Max |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute |
Maximum VO2 Max |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute |
Average VO2 Max |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute |
Minimum Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Maximum Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Average Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Minimum Pulse Inter-beat Interval |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Maximum Pulse Inter-beat Interval |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Average Pulse Inter-beat Interval |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Minimum Resting Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Maximum Resting Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Average Resting Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Minimum Heart Rate Variability |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Maximum Heart Rate Variability |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Average Heart Rate Variability |
C.2 |
uint16 |
2 |
Base Unit: org.bluetooth.unit.time.second Represented values: M = 1, d = 0, b =-10 Unit is 1/1024 s |
Minimum Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Maximum Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Average Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Minimum Resting Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Maximum Resting Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Average Resting Respiration Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.breaths_per_minute |
Worn Duration |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
- C.1
-
Mandatory if no segmentation into multiple indications is used.
Also mandatory if segmentation into multiple indications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.5.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.5.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.13.
When the server includes a given data field, the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the CardioRespiratory Activity Summary Data characteristic.
Bit Number |
Definition |
---|---|
0 |
Time in Heart Rate Zone1 Present |
1 |
Time in Heart Rate Zone2 Present |
2 |
Time in Heart Rate Zone3 Present |
3 |
Time in Heart Rate Zone4 Present |
4 |
Time in Heart Rate Zone5 Present |
5 |
Minimum VO2 Max Present |
6 |
Maximum VO2 Max Present |
7 |
Average VO2 Max Present |
8 |
Minimum Heart Rate Present |
9 |
Maximum Heart Rate Present |
10 |
Average Heart Rate Present |
11 |
Minimum Pulse Inter-beat Interval Present |
12 |
Maximum Pulse Inter-beat Interval Present |
13 |
Average Pulse Inter-beat Interval Present |
14 |
Minimum Resting Heart Rate Present |
15 |
Maximum Resting Heart Rate Present |
16 |
Average Resting Heart Rate Present |
17 |
Minimum Heart Rate Variability Present |
18 |
Maximum Heart Rate Variability Present |
19 |
Average Heart Rate Variability Present |
20 |
Minimum Respiration Rate Present |
21 |
Maximum Respiration Rate Present |
22 |
Average Respiration Rate Present |
23 |
Minimum Resting Respiration Rate Present |
24 |
Maximum Resting Respiration Rate Present |
25 |
Average Resting Respiration Rate Present |
26 |
Worn Duration Present |
27 to 31 |
RFU |
3.5.1.1.3. Session ID field
The Session ID field represents the physical activity session identifier to which the data is related.
3.5.1.1.4. Sub-session ID field
The Sub-session ID field represents the physical activity sub-session identifier to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.5.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the data time stamp that is included in the CardioRespiratory Activity Summary Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.5.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number that is included in the CardioRespiratory Activity Summary Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.5.1.1.7. Time in Heart Rate Zone1 field
The Time in Heart Rate Zone1 field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time in Heart Rate Zone1.
The Time in Heart Rate Zone1 field represents the total amount of time within the physical activity session/sub-session in which the user’s heart rate remains in Heart Rate Zone1.
3.5.1.1.8. Time in Heart Rate Zone2 field
The Time in Heart Rate Zone2 field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time in Heart Rate Zone2.
The Time in Heart Rate Zone2 field represents the total amount of time within the physical activity session/sub-session in which the user’s heart rate remains in Heart Rate Zone2.
3.5.1.1.9. Time in Heart Rate Zone3 field
The Time in Heart Rate Zone3 field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time in Heart Rate Zone3.
The Time in Heart Rate Zone3 field represents the total amount of time within the physical activity session/sub-session in which the user’s heart rate remains in Heart Rate Zone3.
3.5.1.1.10. Time in Heart Rate Zone4 field
The Time in Heart Rate Zone4 field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time in Heart Rate Zone4.
The Time in Heart Rate Zone4 field represents the total amount of time within the physical activity session/sub-session in which the user’s heart rate remains in Heart Rate Zone4.
3.5.1.1.11. Time in Heart Rate Zone5 field
The Time in Heart Rate Zone5 field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time in Heart Rate Zone5.
The Time in Heart Rate Zone5 field represents the total amount of time within the physical activity session/sub-session in which the user’s heart rate remains in Heart Rate Zone5.
3.5.1.1.12. Minimum VO2 Max field
The Minimum VO2 Max field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for VO2 Max.
The Minimum VO2 Max field represents the user’s minimum aerobic capacity during the physical activity session/sub-session. See Section 3.4.1.1.7 for more details on aerobic capacity.
3.5.1.1.13. Maximum VO2 Max field
The Maximum VO2 Max field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for VO2 Max.
The Maximum VO2 Max field represents the user’s maximum aerobic capacity during the physical activity session/sub-session. See Section 3.4.1.1.7 for more details on aerobic capacity.
3.5.1.1.14. Average VO2 Max field
The Average VO2 Max field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for VO2 Max.
The Average VO2 Max field represents the user’s average aerobic capacity during the physical activity session/sub-session. See Section 3.4.1.1.7 for more details on aerobic capacity.
3.5.1.1.15. Minimum Heart Rate field
The Minimum Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate.
The Minimum Heart Rate field represents the user’s minimum heart rate during the physical activity session/sub-session.
3.5.1.1.16. Maximum Heart Rate field
The Maximum Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate.
The Maximum Heart Rate field represents the user’s maximum heart rate during the physical activity session/sub-session.
3.5.1.1.17. Average Heart Rate field
The Average Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate.
The Average Heart Rate field represents the user’s average heart rate during the physical activity session/sub-session.
3.5.1.1.18. Minimum Pulse Inter-beat Interval field
The Minimum Pulse Inter-beat Interval field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Pulse Inter-beat Interval.
The Minimum Pulse Inter-beat Interval field represents the minimum interval between the user’s heartbeats during the physical activity session/sub-session. See Section 3.4.1.1.9 for more details on the interval between heartbeats.
3.5.1.1.19. Maximum Pulse Inter-beat Interval field
The Maximum Pulse Inter-beat Interval field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Pulse Inter-beat Interval.
The Maximum Pulse Inter-beat Interval field represents the maximum interval between the user’s heartbeats during the physical activity session/sub-session. See Section 3.4.1.1.9 for more details on the interval between heartbeats.
3.5.1.1.20. Average Pulse Inter-beat Interval field
The Average Pulse Inter-beat Interval field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Pulse Inter-beat Interval.
The Average Pulse Inter-beat Interval field represents the average interval between the user’s heartbeats during the physical activity session/sub-session. See Section 3.4.1.1.9 for more details on the interval between heartbeats.
3.5.1.1.21. Minimum Resting Heart Rate field
The Minimum Resting Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Heart Rate.
The Minimum Resting Heart Rate field represents the user’s minimum heart rate at rest during the physical activity session/sub-session.
3.5.1.1.22. Maximum Resting Heart Rate field
The Maximum Resting Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Heart Rate.
The Maximum Resting Heart Rate field represents the user’s maximum heart rate at rest during the physical activity session/sub-session.
3.5.1.1.23. Average Resting Heart Rate field
The Average Resting Heart Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Heart Rate.
The Average Resting Heart Rate field represents the user’s average heart rate at rest during the physical activity session/sub-session.
3.5.1.1.24. Minimum Heart Rate Variability field
The Minimum Heart Rate Variability field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate Variability.
The Minimum Heart Rate Variability field represents the minimum variation of the user’s pulse inter-beat interval during the physical activity session/sub-session.
3.5.1.1.25. Maximum Heart Rate Variability field
The Maximum Heart Rate Variability field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate Variability.
The Maximum Heart Rate Variability field represents the maximum variation of the user’s pulse inter-beat interval during the physical activity session/sub-session.
3.5.1.1.26. Average Heart Rate Variability field
The Average Heart Rate Variability field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Heart Rate Variability.
The Average Heart Rate Variability field represents the average variation of the user’s pulse inter-beat interval during the physical activity session/sub-session.
3.5.1.1.27. Minimum Respiration Rate field
The Minimum Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Respiration Rate.
The Minimum Respiration Rate field represents the user’s minimum breathing rate during the physical activity session/sub-session.
3.5.1.1.28. Maximum Respiration Rate field
The Maximum Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Respiration Rate.
The Maximum Respiration Rate field represents the user’s maximum breathing rate during the physical activity session/sub-session.
3.5.1.1.29. Average Respiration Rate field
The Average Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Respiration Rate.
The Average Respiration Rate field represents the user’s average breathing rate during the physical activity session/sub-session.
3.5.1.1.30. Minimum Resting Respiration Rate field
The Minimum Resting Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Respiration Rate.
The Minimum Resting Respiration Rate field represents the user’s minimum breathing rate at rest during the physical activity session/sub-session.
3.5.1.1.31. Maximum Resting Respiration Rate field
The Maximum Resting Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Respiration Rate.
The Maximum Resting Respiration Rate field represents the user’s maximum breathing rate at rest during the physical activity session/sub-session.
3.5.1.1.32. Average Resting Respiration Rate field
The Average Resting Respiration Rate field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Resting Respiration Rate.
The Average Resting Respiration Rate field represents the user’s average breathing rate at rest during the physical activity session/sub-session.
3.5.1.1.33. Worn Duration field
The Worn Duration field may be included in the CardioRespiratory Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Worn Duration.
See Section 3.3.1.1.31 for more details on the Worn Duration field.
3.5.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.6. Step Counter Activity Summary Data
The Step Counter Activity Summary Data characteristic is identified using the UUID «Step Counter Activity Summary Data», as defined in [1].
The Step Counter Activity Summary Data characteristic is used to send session/sub-session summary‑type data to the client (see the definition of summary data in Section 2.2). The data is related to measurements that are typically supported by physical activity monitors that have step-counting capabilities.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.14.
3.6.1. Characteristic behavior
The Step Counter Activity Summary Data characteristic shall be indicated when it is configured for indication via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be indicated approximately once every 5 to 60 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
All the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple indications.
3.6.1.1. Characteristic structure
The structure of the Step Counter Activity Summary Data characteristic is defined in Table 3.14.
The characteristic value is of variable length, ranging up to 29 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
8 bit |
1 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Normal Walking Steps |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.unitless |
Intensity Steps |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.unitless |
Floor Steps |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.unitless |
Distance |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.length.metre Represented values: M = 1, d = 1, b = 0 Unit is 1 m |
Worn Duration |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
- C.1
-
Mandatory if no segmentation into multiple indications is used.
Also mandatory if segmentation into multiple indications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.6.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.6.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.15.
When the server includes a given data field, the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the Step Counter Activity Summary Data characteristic.
Bit Number |
Definition |
---|---|
0 |
Normal Walking Steps Present |
1 |
Intensity Steps Present |
2 |
Floor Steps Present |
3 |
Distance Present |
4 |
Worn Duration Present |
5 to 7 |
RFU |
3.6.1.1.3. Session ID field
The Session ID field represents the physical activity session identifier to which the data is related.
3.6.1.1.4. Sub-session ID field
The Sub-session ID field represents the physical activity sub-session identifier to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.6.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the data time stamp that is included in the Step Counter Activity Summary Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.6.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number that is included in the Step Counter Activity Summary Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.6.1.1.7. Normal Walking Steps field
The Normal Walking Steps field may be included in the Step Counter Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Normal Walking Steps.
The Normal Walking Steps field represents the number of normal walking steps taken by the user during the physical activity session/sub-session.
3.6.1.1.8. Intensity Steps field
The Intensity Steps field may be included in the Step Counter Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Intensity Steps.
The Intensity Steps field represents the number of intensity walking steps taken by the user during the physical activity session/sub-session.
3.6.1.1.9. Floor Steps field
The Floor Steps field may be included in the Step Counter Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Floor Steps.
The Floor Steps field represents the number of steps taken by the user to climb up stairs (floors) during the physical activity session/sub-session.
3.6.1.1.10. Distance field
The Distance field may be included in the Step Counter Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Distance.
See Section 3.3.1.1.14 for more details on the Distance field.
3.6.1.1.11. Worn Duration field
The Worn Duration field may be included in the Step Counter Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Worn Duration.
See Section 3.3.1.1.31 for more details on the Worn Duration field.
3.6.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.7. Sleep Activity Instantaneous Data
The Sleep Activity Instantaneous Data characteristic is identified using the UUID «Sleep Activity Instantaneous Data», as defined in [1].
The Sleep Activity Instantaneous Data characteristic is used to send session/sub-session-related data of an instantaneous nature (as defined in Section 2.2) to the client. The data is related to measurements that are typically supported by physical activity monitors that have sleep-monitoring capabilities.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.16.
3.7.1. Characteristic behavior
The Sleep Activity Instantaneous Data characteristic shall be notified when it is configured for notification via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be notified approximately once every 1 to 30 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
For Bluetooth LE, all the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple notifications.
For BR/EDR, this restriction does not exist due to a larger MTU size.
3.7.1.1. Characteristic structure
The structure of the Sleep Activity Instantaneous Data characteristic is defined in Table 3.16.
The characteristic value is of variable length, ranging up to 28 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
16 bit |
2 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Visible Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
UV Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
IR Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Sleep Stage |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.unitless |
Sleeping Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
- C.1
-
Mandatory if no segmentation into multiple notifications is used.
Also mandatory if segmentation into multiple notifications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.7.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.7.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.17.
When the server includes a given data field—in any of the segments, in case of Data Record segmentation—the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the Sleep Activity Instantaneous Data characteristic.
If the Physical Activity Monitor Features characteristic denotes server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 1 when the device is worn and shall be set to 0 when the device is not worn.
If the Physical Activity Monitor Features characteristic does not denote server support for the Device Worn feature, then the associated bit of the Flags field shall be set to 0.
Bit Number |
Definition |
---|---|
0 |
Visible Light Level Present |
1 |
UV Light Level Present |
2 |
IR Light Level Present |
3 |
Sleep Stage Present |
4 |
Sleeping Heart Rate Present |
5 to 14 |
RFU |
15 |
Device Worn |
3.7.1.1.3. Session ID field
The Session ID field represents the identifier of the physical activity session to which the data is related.
3.7.1.1.4. Sub-session ID field
The Sub-session ID field represents the identifier of the physical activity sub-session to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.7.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the time stamp of the data included in the Sleep Activity Instantaneous Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.7.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number included in the Sleep Activity Instantaneous Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.7.1.1.7. Visible Light Level field
The Visible Light Level field may be included in the Sleep Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Visible Light Level.
The Visible Light Level field represents the amount of visible light to which the user is exposed.
3.7.1.1.8. UV Light Level field
The UV Light Level field may be included in the Sleep Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for UV Light Level.
The UV Light Level field represents the amount of UV light to which the user is exposed.
3.7.1.1.9. IR Light Level field
The IR Light Level field may be included in the Sleep Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for IR Light Level.
The IR Light Level field represents the amount of IR light to which the user is exposed.
3.7.1.1.10. Sleep Stage field
The Sleep Stage field may be included in the Sleep Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Sleep Stage.
The Sleep Stage field represents the user’s sleep stage, as defined in Table 3.18.
The associated bit of the sleep stages in Table 3.18 shall be set to 1 when the sleep stage is applicable and shall be set to 0 when not applicable. Multiple stages may be concurrently applicable.
Bit Number |
Definition |
Description |
---|---|---|
0 |
Wake |
– |
1 |
Sleep |
Maps to any of REM, N1, N2, N3, and N4 |
2 |
REM |
Rapid Eye Movement (REM) stage |
3 |
Non-REM |
Non-REM stage; maps to any of N1, N2, N3, and N4 |
4 |
Light Sleep |
Typically maps to any of N1 and N2 |
5 |
Deep Sleep |
Typically maps to any of N3 and N4 |
6 |
N1 |
Non-REM stage 1 |
7 |
N2 |
Non-REM stage 2 |
8 |
N3 |
Non-REM stage 3 |
9 |
N4 |
Non-REM stage 4 |
10 |
Active Sleep |
Applicable to infants |
11 |
Quiet Sleep |
Applicable to infants |
12 |
Intermediate Sleep |
Applicable to infants; typically a transitional stage |
13 |
Arousal |
Applicable to infants |
14 to 22 |
RFU |
– |
23 |
Unknown |
Stage is unknown or undetermined |
3.7.1.1.11. Sleeping Heart Rate field
The Sleeping Heart Rate field may be included in the Sleep Activity Instantaneous Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Sleeping Heart Rate.
The Sleeping Heart Rate field represents the user’s heart rate during sleep.
3.7.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.8. Sleep Activity Summary Data
The Sleep Activity Summary Data characteristic is identified using the UUID «Sleep Activity Summary Data», as defined in [1].
The Sleep Activity Summary Data characteristic is used to send session/sub-session summary-type data to the client (see the definition of summary data in Section 2.2). The data is related to measurements that are typically supported by physical activity monitors that have sleep-monitoring capabilities.
Included in the characteristic value are a Header field and a set of conditional fields, as shown in Table 3.19.
3.8.1. Characteristic behavior
The Sleep Activity Summary Data characteristic shall be indicated when it is configured for indication via the Client Characteristic Configuration descriptor and new data is available. This characteristic should be indicated approximately once every 5 to 60 seconds as new data becomes available during a connection. This interval may vary, is determined by the server implementation, and is not configurable by the client.
All the data fields of this characteristic cannot be present simultaneously if using a default ATT_MTU size. See Section 2.4 for additional requirements on the transmission of a Data Record in multiple indications.
3.8.1.1. Characteristic structure
The structure of the Sleep Activity Summary Data characteristic is defined in Table 3.19.
The characteristic value is of variable length, ranging up to 68 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Header |
M |
N/A |
1 |
|
Flags |
C.1 |
24 bit |
3 |
|
Session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session ID |
C.1 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Relative Timestamp |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sequence Number |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.unitless |
Total Sleep Time |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Total Wake Time |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Total Bed Time |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Number of Awakenings |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sleep Latency |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.time.second |
Sleep Efficiency |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.percentage |
Snooze Time |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.time.second |
Number of Toss-&-turn Events |
C.2 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Time of Awakening After Alarm |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
Minimum Visible Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Maximum Visible Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Average Visible Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Minimum UV Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Maximum UV Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Average UV Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Minimum IR Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Maximum IR Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Average IR Light Level |
C.2 |
uint24 |
3 |
Base Unit: org.bluetooth.unit.illuminance.lux Represented values: M = 1, d = -2, b = 0 Unit is 0.01 lux |
Average Sleeping Heart Rate |
C.2 |
uint8 |
1 |
Unit: org.bluetooth.unit.period.beats_per_minute |
Worn Duration |
C.2 |
uint24 |
3 |
Unit: org.bluetooth.unit.time.second |
- C.1
-
Mandatory if no segmentation into multiple indications is used.
Also mandatory if segmentation into multiple indications is used, but only included in the first segment.
- C.2:
-
Optional if the server implementation supports the respective feature as specified by the Physical Activity Monitor Features characteristic (see Table 3.3), otherwise excluded.
- M:
-
Mandatory
Note: Value representation information indicated in the description fields uses the terminology defined and explained in the GATT Specification Supplement [3].
3.8.1.1.1. Header field
The Header field and its use are described in Section 2.4.
3.8.1.1.2. Flags field
The Flags field bits and their function are defined in Table 3.20.
When the server includes a given data field, the associated bit of the Flags field shall be set to 1 (field present); otherwise, the associated bit shall be set to 0 (field not present).
If a given bit in the Physical Activity Monitor Features characteristic is set to 0, then the corresponding Flags field bit(s) shall be set to 0 and the associated field(s) shall not be present in the Sleep Activity Summary Data characteristic.
Bit Number |
Definition |
---|---|
0 |
Total Sleep Time Present |
1 |
Total Wake Time Present |
2 |
Total Bed Time Present |
3 |
Number of Awakenings Present |
4 |
Sleep Latency Present |
5 |
Sleep Efficiency Present |
6 |
Snooze Time Present |
7 |
Number of Toss-&-turn Events Present |
8 |
Time of Awakening After Alarm Present |
9 |
Minimum Visible Light Level Present |
10 |
Maximum Visible Light Level Present |
11 |
Average Visible Light Level Present |
12 |
Minimum UV Light Level Present |
13 |
Maximum UV Light Level Present |
14 |
Average UV Light Level Present |
15 |
Minimum IR Light Level Present |
16 |
Maximum IR Light Level Present |
17 |
Average IR Light Level Present |
18 |
Average Sleeping Heart Rate Present |
19 |
Worn Duration Present |
20 to 23 |
RFU |
3.8.1.1.3. Session ID field
The Session ID field represents the physical activity session identifier to which the data is related.
3.8.1.1.4. Sub-session ID field
The Sub-session ID field represents the physical activity sub-session identifier to which the data is related. The value 0xFFFF is reserved to denote that the data in the characteristic relates to an entire session (i.e., including all its sub-sessions).
3.8.1.1.5. Relative Timestamp field
The Relative Timestamp field represents the data time stamp that is included in the Sleep Activity Summary Data characteristic. The time stamp is represented as the elapsed number of seconds since the start of the physical activity session that is denoted in the Session ID field.
3.8.1.1.6. Sequence Number field
The Sequence Number field represents the data sequence number that is included in the Sleep Activity Summary Data characteristic.
See Section 3.2.1.1.6 for more details about the Sequence Number field values.
3.8.1.1.7. Total Sleep Time field
The Total Sleep Time field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Total Sleep Time.
The Total Sleep Time field represents the amount of time the user was sleeping during the (sleep) physical activity session/sub-session.
3.8.1.1.8. Total Wake Time field
The Total Wake Time field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Total Wake Time.
The Total Wake Time field represents the amount of time the user was awake during the (sleep) physical activity session/sub-session.
3.8.1.1.9. Total Bed Time field
The Total Bed Time field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Total Bed Time.
The Total Bed Time field represents the amount of time the user was in bed during the (sleep) physical activity session/sub-session.
3.8.1.1.10. Number of Awakenings field
The Number of Awakenings field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Number of Awakenings.
The Number of Awakenings field represents the number of awakenings the user experienced during the (sleep) physical activity session/sub-session.
3.8.1.1.11. Sleep Latency field
The Sleep Latency field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Sleep Latency.
The Sleep Latency field represents the amount of time the user required to fall asleep during the (sleep) physical activity session/sub-session.
3.8.1.1.12. Sleep Efficiency field
The Sleep Efficiency field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Sleep Efficiency.
The Sleep Efficiency field represents the ratio of total sleep time compared to total bed time during the (sleep) physical activity session/sub-session.
3.8.1.1.13. Snooze Time field
The Snooze Time field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Snooze Time.
The Snooze Time field represents the amount of time during which the wake-up alarm repetition was delayed during the (sleep) physical activity session/sub-session.
3.8.1.1.14. Number of Toss-&-turn Events field
The Number of Toss-&-turn Events field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Number of Toss-&-turn Events.
The Number of Toss-&-turn Events field represents the number of times the user changed posture in bed attempting to fall asleep during the (sleep) physical activity session/sub-session.
3.8.1.1.15. Time of Awakening After Alarm field
The Time of Awakening After Alarm field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Time of Awakening After Alarm.
The Time of Awakening After Alarm represents the amount of time the user spent in bed after the wake-up alarm during the (sleep) physical activity session/sub-session.
3.8.1.1.16. Minimum Visible Light Level field
The Minimum Visible Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Visible Light Level.
The Minimum Visible Light Level field represents the minimum amount of visible light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.17. Maximum Visible Light Level field
The Maximum Visible Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Visible Light Level.
The Maximum Visible Light Level field represents the maximum amount of visible light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.18. Average Visible Light Level field
The Average Visible Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Visible Light Level.
The Average Visible Light Level field represents the average amount of visible light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.19. Minimum UV Light Level field
The Minimum UV Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for UV Light Level.
The Minimum UV Light Level field represents the minimum amount of UV light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.20. Maximum UV Light Level field
The Maximum UV Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for UV Light Level.
The Maximum UV Light Level field represents the maximum amount of UV light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.21. Average UV Light Level field
The Average UV Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for UV Light Level.
The Average UV Light Level field represents the average amount of UV light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.22. Minimum IR Light Level field
The Minimum IR Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for IR Light Level.
The Minimum IR Light Level field represents the minimum amount of IR light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.23. Maximum IR Light Level field
The Maximum IR Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for IR Light Level.
The Maximum IR Light Level field represents the maximum amount of IR light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.24. Average IR Light Level field
The Average IR Light Level field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for IR Light Level.
The Average IR Light Level field represents the average amount of IR light to which the user was exposed during the (sleep) physical activity session/sub-session.
3.8.1.1.25. Average Sleeping Heart Rate field
The Average Sleeping Heart Rate field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Sleeping Heart Rate.
The Average Sleeping Heart Rate field represents the user’s average heart rate during sleep in the (sleep) physical activity session/sub-session.
3.8.1.1.26. Worn Duration field
The Worn Duration field may be included in the Sleep Activity Summary Data characteristic if the Physical Activity Monitor Features characteristic denotes server support for Worn Duration.
See Section 3.3.1.1.31 for more details on the Worn Duration field.
3.8.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.9. Physical Activity Monitor Control Point
The Physical Activity Monitor Control Point characteristic is identified using the UUID «Physical Activity Monitor Control Point», as defined in [1].
The Physical Activity Monitor Control Point characteristic is used to request a specific procedure to be executed by the server when a value is written to it using the GATT Write Characteristic Value sub‑procedure.
3.9.1. Characteristic behavior
A procedure is triggered by writing a value that includes an opcode specifying the operation. This might require a parameter that is valid within the context of that opcode, as specified in Section 3.9.1.1.
The server shall respond either by sending an ATT Write Response to confirm that it has accepted the request or by sending an appropriate ATT Error or ATT Application Error code.
Sending an ATT Write Response signifies that the request was successfully accepted by the server.
If the server cannot perform the requested procedure, then it shall reject the ATT Write Request to the Physical Activity Monitor Control Point, as defined in Section 3.9.3.
3.9.1.1. Characteristic structure
The structure of the Physical Activity Monitor Control Point characteristic and its related procedures are defined in Table 3.21.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
See Table 3.22 |
Parameter |
C.1 |
variable |
0 to 5 |
See Table 3.22 |
- C.1:
-
Mandatory if the opcode requires a parameter, in which case the field size is 1 to 5 octets depending on the opcode requirements.
- M
-
Mandatory
Table 3.22 defines the opcodes of the Physical Activity Monitor Control Point characteristic.
Opcode Value |
Requirement |
Definition |
Parameter Value |
Description |
---|---|---|---|---|
0x00 |
N/A |
Reserved for Future Use |
N/A |
N/A |
0x01 |
M |
Enquire Sessions |
None |
Request information about all sessions stored in the database of the server. This means that all stored sessions must be listed in the Physical Activity Session Descriptor characteristic. See Section 3.9.1.1.1 for details. |
0x02 |
M |
Enquire Sub-sessions |
Session ID (uint16) |
Request information about all sub-sessions that comprise the session identified by the Session ID parameter. This means that all stored sub-sessions must be listed in the Physical Activity Session Descriptor characteristic. See Section 3.9.1.1.2 for details. |
0x03 |
M |
Get Ended Session Data |
Data Request Specification, see Section 3.9.1.1.3 |
Request to receive the data associated with the ended session/sub-session indicated by the Data Request Specification parameter. See Section 3.9.1.1.3 for details. |
0x04 |
M |
Start Session/Sub-session |
Type (8 bit) This parameter value indicates whether a session (value 0x00) or a sub-session (value 0x01) shall be started. All other values are RFU. |
Request the start of a new session or sub-session as specified by the Type parameter. This means that the current session/sub-session must end at the point in time at which the requested new session/sub-session starts. See Section 3.9.1.1.4 for details. |
0x05 |
M |
Stop Session |
None |
Request the current session to stop running. See Section 3.9.1.1.5 for details. |
0x06 |
M |
Delete Ended Session |
Session ID (uint16) |
Request the deletion of the session identified by the Session ID parameter from the database of the server, including all its sub-sessions. See Section 3.9.1.1.6 for details. |
0x07 |
C.1 |
Set Average Activity Type |
Set Average Activity Type Specification, see Section 3.9.1.1.7 |
Request to set average activity type of current session/sub-session. See Section 3.9.1.1.7 for details. |
0x08 to 0xF9 |
N/A |
Reserved for Future Use |
N/A |
N/A |
0xFA |
M |
Get Ended Session Data Success Response |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.3 for details. |
|
0xFB |
M |
Enquire Sub-sessions Success Response |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.2 for details. |
|
0xFC |
M |
Enquire Sessions Success Response |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.1 for details. |
|
0xFD |
M |
Get Ended Session Data Error Response |
See Section 3.9.3.5 |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.3 and Section 3.9.3.5 for details. |
0xFE |
M |
Enquire Sub-sessions Error Response |
See Section 3.9.3.4 |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.2 and Section 3.9.3.4 for details. |
0xFF |
M |
Enquire Sessions Error Response |
See Section 3.9.3.3 |
May be sent to the client in an indication of the Physical Activity Monitor Control Point characteristic. See Section 3.9.1.1.1 and Section 3.9.3.3 for details. |
- C.1:
-
Mandatory to support if the Activity Type feature is supported; otherwise excluded.
- M:
-
Mandatory
3.9.1.1.1. Enquire Sessions procedure
If the Enquire Sessions procedure is successfully executed, then the server shall send to the client a description of all sessions in the server database via indications of the Physical Activity Session Descriptor characteristic.
Therefore, for every existing session in the server database, including the current session, the server shall update and indicate the Physical Activity Session Descriptor characteristic. The Describes Session bit of the Physical Activity Session Descriptor characteristic Flags field shall be set to 1. The remaining bits shall be set to correctly describe the status of the described session.
If the Enquire Sessions procedure is successfully executed, then the server shall conclude the procedure by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.23.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFC |
Enquire Sessions Success Response (as defined in Table 3.22) |
Parameter |
M |
uint16 |
2 |
0x0000 |
RFU |
0x0001 to 0xFFFF |
Number of reported sessions |
- M:
-
Mandatory
If the Client Characteristic Configuration descriptor of the Physical Activity Monitor Control Point characteristic is not configured for indications, then the server shall reject the request for the Enquire Sessions procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured” (ATT error code 0xFD).
Likewise, if the Client Characteristic Configuration descriptor of the Physical Activity Session Descriptor characteristic is not configured for indications, then the server shall reject the request for the Enquire Sessions procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured.”
If, for any other reason, the Enquire Sessions procedure is not successfully executed, the error condition shall be handled as defined in Section 3.9.3
3.9.1.1.2. Enquire Sub-sessions procedure
If the Enquire Sub-sessions procedure is successfully executed, then the server shall send to the client a description of all sub-sessions in its database that are associated with the session identified by the Session ID parameter defined in Table 3.22.
The description of the sub-sessions is sent via indications of the Physical Activity Session Descriptor characteristic. Therefore, for every sub-session, including the current sub-session, the server shall update and indicate the Physical Activity Session Descriptor characteristic. The Describes Session bit of the Physical Activity Session Descriptor characteristic Flags field shall be set to 0. The remaining bits shall be set to correctly describe the status of the described sub-session.
If the Enquire Sub-sessions procedure is successfully executed, then the server shall conclude the procedure by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.24.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFC |
Enquire Sessions Success Response (as defined in Table 3.22) |
Parameter |
M |
uint16 |
2 |
0x0000 |
RFU |
0x0001 to 0xFFFF |
Number of reported sub-sessions |
- M:
-
Mandatory
If the Client Characteristic Configuration descriptor of the Physical Activity Monitor Control Point characteristic is not configured for indications, then the server shall reject the request for the Enquire Sub‑sessions procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured” (ATT error code 0xFD).
Likewise, if the Client Characteristic Configuration descriptor of the Physical Activity Session Descriptor characteristic is not configured for indications, then the server shall reject the request for the Enquire Sub-sessions procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured.”
If, for any other reason, the Enquire Sub-sessions procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3
3.9.1.1.3. Get Ended Session Data procedure
If the Get Ended Session Data procedure is successfully executed, then the server shall send to the client the data associated to the Session ID, Sub-session ID, and Data Characteristic parameters defined in Table 3.25.
Due to memory or other constraints, a server implementation might not always be able to keep entire session data in memory. In those cases the procedure would not be successful and would hence return an error response as described in Section 3.9.3.
If the requested data characteristic is a summary data characteristic (i.e., the Data Characteristic parameter value is 0x01, 0x03, 0x04, or 0x06, as defined in Table 3.25), then the server shall send the summary of the requested session/sub-session via indication of the requested data characteristic. The summary of a session/sub-session considers its entirety and therefore contains data values calculated at the end of the session/sub-session.
If the requested data characteristic is an instantaneous data characteristic (i.e., the Data Characteristic parameter value is 0x00, 0x02, or 0x05, as defined in Table 3.25), then the server shall send the entire data log of the requested session/sub-session via a series of notifications of the requested data characteristic.
Parameter |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Session ID |
M |
uint16 |
2 |
0x0000 to 0xFFFE |
Data is requested for the session identified by the Session ID parameter. |
0xFFFF |
RFU. |
||||
Sub-session ID |
M |
uint16 |
2 |
0x0000 to 0xFFFE |
Data is requested for the sub-session identified by the Sub-session ID parameter. |
0xFFFF |
Data is requested for all sub-sessions of the session identified by the Session ID parameter. |
||||
Data Characteristic |
M |
uint8 |
1 |
0x00 |
Data is requested for the General Activity Instantaneous Data characteristic. See Section 3.2. |
0x01 |
Data is requested for the General Activity Summary Data characteristic. See Section 3.3. |
||||
0x02 |
Data is requested for the CardioRespiratory Activity Instantaneous Data characteristic. See Section 3.4. |
||||
0x03 |
Data is requested for the CardioRespiratory Activity Summary Data characteristic. See Section 3.5. |
||||
0x04 |
Data is requested for the Step Counter Activity Summary Data characteristic. See Section 3.6. |
||||
0x05 |
Data is requested for the Sleep Activity Instantaneous Data characteristic. See Section 3.7. |
||||
0x06 |
Data is requested for the Sleep Activity Summary Data characteristic. See Section 3.8. |
||||
0x07 to 0xFF |
RFU. |
- M:
-
Mandatory
If the Get Ended Session Data procedure is successfully executed, then the server shall conclude the procedure by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.26.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFA |
Get Ended Session Data Success Response (as defined in Table 3.22) |
Parameter |
M |
uint24 |
3 |
0x000000 |
RFU |
0x000001 to 0xFFFFFF |
Number of reported Data Records |
- M:
-
Mandatory
If the requested data characteristic is a summary data characteristic, then the time between the server receiving the Get Ended Session Data procedure request and the following indication sent by the server shall be less than 30 seconds. Also, the time between the server receiving a Handle Value Confirmation and the following indication sent by the server shall be less than 30 seconds. This is illustrated by means of example in Figure 3.1.
If the requested data characteristic is an instantaneous data characteristic, then the time between the server receiving the Get Ended Session Data procedure request and the following notification sent by the server shall be less than 30 seconds. Also, the time between the server sending a notification and the server sending the following notification (or indication in case of the Physical Activity Monitor Control Point response) shall be less than 30 seconds. This is illustrated by means of example in Figure 3.2.
If the Client Characteristic Configuration descriptor of the Physical Activity Monitor Control Point characteristic is not configured for indications, then the server shall reject the request for the Get Ended Session Data procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured” (ATT error code 0xFD).
Likewise, if the Client Characteristic Configuration descriptor of the characteristic specified by the Data Characteristic parameter is not configured for indications or notifications, then the server shall reject the request for the Get Ended Session Data procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured.”
If, for any other reason, the Get Ended Session Data procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3
3.9.1.1.4. Start Session/Sub-session procedure
If the Start Session/Sub-session procedure is successfully executed, then the server shall start a new physical activity session or a new physical activity sub-session.
The Type parameter defined in Table 3.22 determines whether the server shall start a new session or a new sub-session.
If the server receives a Type parameter value 0x00, then the server shall start a new session. The server also starts a new sub-session associated to the new session. If a session is currently running at the time the new session is started, then the server also stops the current session and sub-session.
If the server receives a Type parameter value 0x01, then the server shall start a new sub-session associated to the current session. This also means that the server stops the current sub-session.
If the Start Session/Sub-session procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3.
3.9.1.1.5. Stop Session procedure
If the Stop Session procedure is successfully executed, then the server shall stop the current physical activity session. The server also stops the current sub-session associated to the current session.
When a session stops, the server typically retains the associated physical activity data so that it is retrievable via the Get Ended Session Data procedure.
If the Stop Session procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3.
3.9.1.1.6. Delete Ended Session procedure
If the Delete Ended Session procedure is successfully executed, then the server shall delete from the server database the session identified by the Session ID parameter defined in Table 3.22. The deletion of the session includes the deletion of its associated sub-sessions.
For the Delete Ended Session procedure, whether the sensor Data Records measured during the deleted session are equally deleted from the server memory is implementation-specific.
If the Delete Ended Session procedure is successfully executed, then the server shall also update and indicate the Physical Activity Session Descriptor characteristic to describe the deleted session. The Deleted Session bit of the Physical Activity Session Descriptor characteristic Flags field shall be set to 1. The remaining bits shall be set to correctly describe the status of the described session.
If the Client Characteristic Configuration descriptor of the Physical Activity Session Descriptor characteristic is not configured for indications, then the server shall reject the request for the Delete Ended Session procedure with an ATT error response “Client Characteristic Configuration Descriptor Improperly Configured.”
If, for any other reason, the Delete Ended Session procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3.
3.9.1.1.7. Set Average Activity Type procedure
If the Set Average Activity Type procedure is successfully executed, then the server shall update the server database to set the User-Defined sub-field of the average activity type of one or more sub‑sessions to the value specified by the User-Defined Activity Type parameter defined in Table 3.27. The server shall set the scope of the procedure in accordance to the value specified by the Scope parameter defined in Table 3.27.
After the successful execution of the Set Average Activity Type procedure, the server exposes the newly set average activity type value via the Average Activity Type field of the General Activity Summary Data characteristic.
Parameter |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Scope |
M |
uint8 |
1 |
0x00 |
This parameter value indicates that the request concerns only the current sub-session. |
0x01 |
This parameter value indicates that the request concerns all sub-sessions within the current session. |
||||
0x02 to 0xFF |
RFU. |
||||
User-Defined Activity Type |
M |
uint8 |
1 |
0x00 to 0xFF |
This parameter value indicates the value with which the User-Defined sub-field of the average activity type shall be set. See Section 3.2.1.1.17 for the description of activity type values. |
- M:
-
Mandatory
If the Set Average Activity Type procedure is not successfully executed, then the error condition shall be handled as defined in Section 3.9.3.
3.9.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.9.3. General error handling
Writing an opcode to the Physical Activity Monitor Control Point could result in an ATT error response as described in Section 3.9.3.1 through Section 3.9.3.5.
3.9.3.1. ATT error
An ATT Write Request to the Physical Activity Monitor Control Point characteristic could be rejected with an ATT error response under certain conditions, as defined in the Bluetooth Core Specification [2]. Reasons for sending an ATT error response include, but are not limited to, Insufficient Encryption, Client Characteristic Configuration Descriptor Improperly Configured, Procedure Already in Progress, or Invalid Attribute Value Length.
3.9.3.2. ATT Application Error
An ATT Write Request to the Physical Activity Monitor Control Point characteristic could be rejected with an appropriate ATT Application Error, as defined in Table 1.2. The following sub-sections define conditions when the appropriate ATT Application Error shall be sent.
If more than one error condition listed in the sub-sections below occurs in the same transaction, then the applicable ATT Application Error whose code is nearest to the top of Table 1.2 shall take priority and only this error response shall be sent.
3.9.3.2.1. Op Code Not Supported error
The Op Code Not Supported error response shall be sent if the opcode written to the Physical Activity Monitor Control Point characteristic is not supported by the server. This situation occurs when the server implementation does not support the procedure associated with the opcode value (e.g., the Set Average Activity Type procedure) or when the opcode value is in the RFU value range.
3.9.3.2.2. Invalid Session ID error
The Invalid Session ID error response shall be sent if the Session ID parameter received is not recognized. This could occur if the client erroneously writes a Session ID parameter value that has not been defined by the server.
3.9.3.2.3. Invalid Sub-session ID error
The Invalid Sub-session ID error response shall be sent if the Sub-session ID parameter received is not recognized. This could occur if the client erroneously writes a Sub-session ID parameter value that has not been defined by the server.
3.9.3.2.4. Session Still Running error
The Session Still Running error response shall be sent in response to a Get Ended Session Data procedure request or a Delete Ended Session procedure request if the Session ID parameter value received refers to a session that has not yet ended.
3.9.3.2.5. No Data Available error
The No Data Available error response shall be sent in response to a Get Ended Session Data procedure request if the server has no data stored in the server database that matches the parameter values.
3.9.3.2.6. No Sessions Available error
The No Sessions Available error response shall be sent in response to an Enquire Sessions procedure request if the server has no sessions stored in the server database.
3.9.3.2.7. Invalid Type error
The Invalid Type error response shall be sent in response to a Start Session/Sub-session or Set Average Activity Type procedure request if the Type or Scope parameter value received is in the RFU value range.
3.9.3.2.8. No Session Running error
The No Session Running error response shall be sent in response to a Start Session/Sub-session procedure request or a Set Average Activity Type procedure request if the request cannot be executed because there is no session currently running.
3.9.3.2.9. Nothing To Stop error
The Nothing To Stop error response shall be sent in response to a Stop Session procedure request if the request cannot be executed because there is no session currently running that could be stopped.
3.9.3.2.10. Activity Type Out Of Range error
The Activity Type Out Of Range error response shall be sent in response to a Set Average Activity Type procedure request if the request cannot be executed because the User-Defined Activity Type parameter value received is in the RFU value range.
3.9.3.2.11. Operation Failed error
The Operation Failed error response shall be sent if a requested control point procedure failed for any reason not enumerated above.
3.9.3.3. Enquire Sessions error
When the server has accepted a request for the Enquire Sessions procedure—by sending an ATT Write Response—it is possible that the procedure still fails.
If the Enquire Sessions procedure fails after having accepted the procedure request, then the server shall inform the client that the procedure has failed by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.28.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFF |
Enquire Sessions Error Response (as defined in Table 3.22) |
Parameter |
M |
uint8 |
1 |
0x00 to 0xFE |
RFU |
0xFF |
Undetermined Error |
- M:
-
Mandatory
3.9.3.4. Enquire Sub-sessions error
When the server has accepted a request for the Enquire Sub-sessions procedure—by sending an ATT Write Response—it is possible that the procedure still fails.
If the Enquire Sub-sessions procedure fails after having accepted the procedure request, then the server shall inform the client that the procedure has failed by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.29.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFE |
Enquire Sub-sessions Error Response (as defined in Table 3.22) |
Parameter |
M |
uint8 |
1 |
0x00 to 0xFE |
RFU |
0xFF |
Undetermined Error |
- M:
-
Mandatory
3.9.3.5. Get Ended Session Data error
When the server has accepted a request for the Get Ended Session Data procedure—by sending an ATT Write Response—it is possible that the procedure still fails. For example, the server might have such a long log of instantaneous data to report that it takes over 30 seconds to successfully send all notifications of the applicable data characteristic.
If the Get Ended Session Data procedure fails after having accepted the procedure request, then the server shall inform the client that the procedure has failed by sending an indication of the Physical Activity Monitor Control Point characteristic in the format defined in Table 3.30.
Field |
Field Status |
Data Type |
Size (octets) |
Value |
Description |
---|---|---|---|---|---|
Op Code |
M |
uint8 |
1 |
0xFD |
Get Ended Session Data Error Response (as defined in Table 3.22) |
Parameter |
M |
uint8 |
1 |
0x00 to 0xFE |
RFU |
0xFF |
Undetermined Error |
- M:
-
Mandatory
3.10. Physical Activity Current Session
The Physical Activity Current Session characteristic is identified using the UUID « Physical Activity Current Session», as defined in [1].
The Physical Activity Current Session characteristic is used to send information about whether a session is currently running and other session-related information.
3.10.1. Characteristic behavior
When the Physical Activity Current Session characteristic is configured for indication via the Client Characteristic Configuration descriptor and new information becomes available, this characteristic shall be indicated. New information becomes available when a new session starts, a new sub-session starts, or when the session stops running.
When a new session starts while another session is running, the Physical Activity Current Session characteristic is indicated only twice: once for the stopped session and once again for the started session and sub-session.
3.10.1.1. Characteristic structure
The structure of the Physical Activity Current Session characteristic is defined in Table 3.31.
The characteristic value is 17 octets in length.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Flags |
M |
8 bit |
1 |
|
Session ID |
M |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Session Start Base Time |
M |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Session Start Time Offset |
M |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
Sub-session ID |
M |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session Start Base Time |
M |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sub-session Start Time Offset |
M |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
- M:
-
Mandatory
3.10.1.1.1. Flags field
The Flags field bits and their function are defined in Table 3.32.
When a physical activity session is currently running, the associated bit of the Flags field shall be set to 1. Otherwise, the associated bit shall be set to 0.
Bit Number |
Definition |
---|---|
0 |
Session Running |
1 to 7 |
RFU |
3.10.1.1.2. Session ID field
The Session ID field represents the identifier of the current physical activity session.
3.10.1.1.3. Session Start Base Time field
The Session Start Base Time field represents the start time stamp of the current physical activity session.
The value of the Session Start Base Time field is derived from a source of date and time at the time of session start.
The value of the Session Start Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the Coordinated Universal Time (UTC) time when the device is properly synchronized. It is left to the implementation to request that the user sets the correct date and time before the Physical Activity Monitor is used.
3.10.1.1.4. Session Start Time Offset field
The Session Start Time Offset field represents the offset between the UTC base time (represented by the Session Start Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, Daylight Saving Time (DST), and user time adjustments.
3.10.1.1.5. Sub-session ID field
The Sub-session ID field represents the identifier of the current physical activity sub-session.
3.10.1.1.6. Sub-session Start Base Time field
The Sub-session Start Base Time field represents the start time stamp of the current physical activity sub-session.
The value of the Sub-session Start Base Time field is derived from a source of date and time at the time of sub-session start.
The value of the Sub-session Start Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the UTC time when the device is properly synchronized. It is left to the implementation to ensure the user sets the correct date and time before the Physical Activity Monitor is used.
3.10.1.1.7. Sub-session Start Time Offset field
The Sub-session Start Time Offset field represents the offset between the UTC base time (represented by the Sub-session Start Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, DST, and user time adjustments.
3.10.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
3.11. Physical Activity Session Descriptor
The Physical Activity Session Descriptor characteristic is identified using the UUID « Physical Activity Session Descriptor», as defined in [1].
The Physical Activity Session Descriptor characteristic is used to send information related to a session/sub-session that is not necessarily the session currently running.
3.11.1. Characteristic behavior
When the Physical Activity Session Descriptor characteristic is configured for indication via the Client Characteristic Configuration descriptor, this characteristic is indicated as a result of certain Physical Activity Monitor Control Point procedures, which are described in Section 3.9.
3.11.1.1. Characteristic structure
The structure of the Physical Activity Session Descriptor characteristic is defined in Table 3.33.
The characteristic value is of variable length, ranging up to 17 octets.
Field |
Field Status |
Data Type |
Size (octets) |
Description |
---|---|---|---|---|
Flags |
M |
8 bit |
1 |
|
Session ID |
M |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Session Start Base Time |
C.1 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Session Start Time Offset |
C.1 |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
Session End Base Time |
C.2 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Session End Time Offset |
C.2 |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
Sub-session ID |
C.3 |
uint16 |
2 |
Unit: org.bluetooth.unit.unitless |
Sub-session Start Base Time |
C.3 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sub-session Start Time Offset |
C.3 |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
Sub-session End Base Time |
C.4 |
uint32 |
4 |
Unit: org.bluetooth.unit.time.second |
Sub-session End Time Offset |
C.4 |
sint16 |
2 |
Unit: org.bluetooth.unit.time.minute |
- C.1:
-
Mandatory if the characteristic refers to a session (denoted in the Flags field); otherwise excluded.
- C.2:
-
Mandatory if the characteristic refers to a session (denoted in the Flags field) and the session is not running (denoted in the Flags field); otherwise excluded.
- C.3:
-
Mandatory if the characteristic refers to a sub-session (denoted in the Flags field); otherwise excluded.
- C.4:
-
Mandatory if the characteristic refers to a sub-session (denoted in the Flags field) and the sub-session is not running (denoted in the Flags field); otherwise excluded.
- M:
-
Mandatory
3.11.1.1.1. Flags field
The Flags field bits and their function are defined in Table 3.34.
When the Physical Activity Session Descriptor characteristic describes a session, the associated bit of the Flags field shall be set to 1. Otherwise, the associated bit shall be set to 0, which implies that the Physical Activity Session Descriptor characteristic describes a sub-session.
When a physical activity session/sub-session is currently running, the associated bit of the Flags field shall be set to 1. Otherwise, the associated bit shall be set to 0.
When the Physical Activity Session Descriptor characteristic describes (or refers to) a session that has been deleted, the associated bit of the Flags field shall be set to 1. Otherwise, the associated bit shall be set to 0.
Bit Number |
Definition |
---|---|
0 |
Describes Session |
1 |
Session/Sub-session Running |
2 |
Deleted Session |
3 to 7 |
RFU |
3.11.1.1.2. Session ID field
The Session ID field represents the identifier of the described physical activity session.
3.11.1.1.3. Session Start Base Time field
The Session Start Base Time field represents the start time stamp of the described physical activity session.
The value of the Session Start Base Time field is derived from a source of date and time at the time of session start.
The value of the Session Start Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the UTC time when the device is properly synchronized. It is left to the implementation to ensure the user sets the correct date and time before the Physical Activity Monitor is used.
3.11.1.1.4. Session Start Time Offset field
The Session Start Time Offset field represents the offset between the UTC base time (represented by the Session Start Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, DST, and user time adjustments.
3.11.1.1.5. Session End Base Time field
The Session End Base Time field represents the end time stamp of the described physical activity session.
The value of the Session End Base Time field is derived from a source of date and time at the time of session end.
The value of the Session End Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the UTC time when the device is properly synchronized. It is left to the implementation to ensure the user sets the correct date and time before the Physical Activity Monitor is used.
3.11.1.1.6. Session End Time Offset field
The Session End Time Offset field represents the offset between the UTC base time (represented by the Session End Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, DST, and user time adjustments.
3.11.1.1.7. Sub-session ID field
The Sub-session ID field represents the identifier of the described physical activity sub-session.
3.11.1.1.8. Sub-session Start Base Time field
The Sub-session Start Base Time field represents the start time stamp of the described physical activity sub-session.
The value of the Sub-session Start Base Time field is derived from a source of date and time at the time of sub-session start.
The value of the Sub-session Start Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the UTC time when the device is properly synchronized. It is left to the implementation to ensure the user sets the correct date and time before the Physical Activity Monitor is used.
3.11.1.1.9. Sub-session Start Time Offset field
The Sub-session Start Time Offset field represents the offset between the UTC base time (represented by the Sub-session Start Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, DST, and user time adjustments.
3.11.1.1.10. Sub-session End Base Time field
The Sub-session End Base Time field represents the end time stamp of the described physical activity sub-session.
The value of the Sub-session End Base Time field is derived from a source of date and time at the time of sub-session end.
The value of the Sub-session End Base Time field represents the base time of a synchronized time source in seconds since midnight of January 1, 2000 (00:00:00 January 1, 2000). This should be the UTC time when the device is properly synchronized. It is left to the implementation to ensure the user sets the correct date and time before the Physical Activity Monitor is used.
3.11.1.1.11. Sub-session End Time Offset field
The Sub-session End Time Offset field represents the offset between the UTC base time (represented by the Sub-session End Base Time field) and the local time that is known to the device. That is, the time has considered the time zone, DST, and user time adjustments.
3.11.2. Descriptor
The Client Characteristic Configuration descriptor shall be exposed, and it shall support the Read Characteristic Descriptor and Write Characteristic Descriptor GATT sub-procedures.
4. SDP interoperability
Services that are exposed over BR/EDR shall include a Service Discovery Protocol (SDP) Record table that contains the information defined in Table 4.1.
Item |
Definition |
Type |
Value |
Status |
---|---|---|---|---|
Service Class ID List |
– |
– |
– |
M |
Service Class #0 |
– |
UUID |
«Physical Activity Monitor» |
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 |
BrowseGroupList |
– |
– |
PublicBrowseRoot* |
M |
- M:
-
Mandatory
* PublicBrowseRoot shall be present; however, other browse UUIDs may also be included in the list.
5. Acronyms and abbreviations
Abbreviation |
Meaning |
---|---|
ATT |
Attribute Protocol |
BR/EDR |
Basic Rate/Enhanced Data Rate |
DST |
Daylight Saving Time |
GATT |
Generic Attribute Profile |
IR |
Infrared |
L2CAP |
Logical Link Control and Adaptation Protocol |
LE |
Low Energy |
LSO |
Least Significant Octet |
MSO |
Most Significant Octet |
PAMS |
Physical Activity Monitor Service |
REM |
Rapid Eye Movement |
RFU |
Reserved for Future Use |
SDP |
Service Discovery Protocol |
UI |
User Interface |
UTC |
Coordinated Universal Time |
UUID |
Universal Unique Identifier |
UV |
Ultraviolet |
6. References
Bibliography
[1] Characteristic and Descriptor descriptions are accessible via the Bluetooth SIG Assigned Numbers, https://www.bluetooth.com/specifications/assigned-numbers/
[2] Bluetooth Core Specification, Version 4.2 or later
[3] GATT Specification Supplement, Version 1.1 or later
[4] User Data Service, Version 1.0 or later
[5] Physical Activity Monitor Profile, Version 1.0 or later