Heart Rate Service module.
More...
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_OTHER 0 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_CHEST 1 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_WRIST 2 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_FINGER 3 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_HAND 4 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_EAR_LOBE 5 |
|
#define | BLE_HRS_BODY_SENSOR_LOCATION_FOOT 6 |
|
#define | BLE_HRS_MAX_BUFFERED_RR_INTERVALS 20 |
|
|
struct | ble_hrs_evt_t |
| Heart Rate Service event. More...
|
|
struct | ble_hrs_init_t |
| Heart Rate Service init structure. This contains all options and data needed for initialization of the service. More...
|
|
struct | ble_hrs_s |
| Heart Rate Service structure. This contains various status information for the service. More...
|
|
This module implements the Heart Rate Service with the Heart Rate Measurement, Body Sensor Location and Heart Rate Control Point characteristics. During initialization it adds the Heart Rate Service and Heart Rate Measurement characteristic to the BLE stack database. Optionally it also adds the Body Sensor Location and Heart Rate Control Point characteristics.
If enabled, notification of the Heart Rate Measurement characteristic is performed when the application calls ble_hrs_heart_rate_measurement_send().
The Heart Rate Service also provides a set of functions for manipulating the various fields in the Heart Rate Measurement characteristic, as well as setting the Body Sensor Location characteristic value.
If an event handler is supplied by the application, the Heart Rate Service will generate Heart Rate Service events to the application.
- Note
- The application must propagate BLE stack events to the Heart Rate Service module by calling ble_hrs_on_ble_evt() from the from the BLE Stack Event Handler callback.
#define BLE_HRS_MAX_BUFFERED_RR_INTERVALS 20 |
Size of RR Interval buffer inside service.
Enumerator |
---|
BLE_HRS_EVT_NOTIFICATION_ENABLED |
Heart Rate value notification enabled event.
|
BLE_HRS_EVT_NOTIFICATION_DISABLED |
Heart Rate value notification disabled event.
|
- Parameters
-
[out] | p_hrs | Heart Rate Service structure. This structure will have to be supplied by the application. It will be initialized by this function, and will later be used to identify this particular service instance. |
[in] | p_hrs_init | Information needed to initialize the service. |
- Returns
- NRF_SUCCESS on successful initialization of service, otherwise an error code.
Handles all events from the BLE stack of interest to the Heart Rate Service.
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | p_ble_evt | Event received from the BLE stack. |
uint32_t ble_hrs_heart_rate_measurement_send |
( |
ble_hrs_t * |
p_hrs, |
|
|
uint16_t |
heart_rate |
|
) |
| |
The application calls this function after having performed a heart rate measurement. If notification has been enabled, the heart rate measurement data is encoded and sent to the client.
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | heart_rate | New heart rate measurement. |
[in] | include_expended_energy | Determines if expended energy will be included in the heart rate measurement data. |
- Returns
- NRF_SUCCESS on success, otherwise an error code.
void ble_hrs_rr_interval_add |
( |
ble_hrs_t * |
p_hrs, |
|
|
uint16_t |
rr_interval |
|
) |
| |
All buffered RR Interval measurements will be included in the next heart rate measurement message, up to the maximum number of measurements that will fit into the message. If the buffer is full, the oldest measurement in the buffer will be deleted.
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | rr_interval | New RR Interval measurement (will be buffered until the next transmission of Heart Rate Measurement). |
bool ble_hrs_rr_interval_buffer_is_full |
( |
ble_hrs_t * |
p_hrs | ) |
|
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
- Returns
- true if RR Interval buffer is full, false otherwise.
uint32_t ble_hrs_sensor_contact_supported_set |
( |
ble_hrs_t * |
p_hrs, |
|
|
bool |
is_sensor_contact_supported |
|
) |
| |
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | is_sensor_contact_supported | New state of the Sensor Contact Supported bit. |
- Returns
- NRF_SUCCESS on success, otherwise an error code.
void ble_hrs_sensor_contact_detected_update |
( |
ble_hrs_t * |
p_hrs, |
|
|
bool |
is_sensor_contact_detected |
|
) |
| |
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | is_sensor_contact_detected | TRUE if sensor contact is detected, FALSE otherwise. |
uint32_t ble_hrs_body_sensor_location_set |
( |
ble_hrs_t * |
p_hrs, |
|
|
uint8_t |
body_sensor_location |
|
) |
| |
Sets a new value of the Body Sensor Location characteristic. The new value will be sent to the client the next time the client reads the Body Sensor Location characteristic.
- Parameters
-
[in] | p_hrs | Heart Rate Service structure. |
[in] | body_sensor_location | New Body Sensor Location. |
- Returns
- NRF_SUCCESS on success, otherwise an error code.