SmartSnippets DA1459x SDK
bcs.h
Go to the documentation of this file.
1 
43 #ifndef BCS_H_
44 #define BCS_H_
45 
46 #include <stdbool.h>
47 #include <stdint.h>
48 #include "ble_service.h"
49 #include "svc_types.h"
50 
51 typedef void (* bcs_indication_changed_cb_t) (uint16_t conn_idx, bool enabled);
52 typedef void (* bcs_indication_sent_cb_t) (uint16_t conn_idx, bool status);
53 
59 typedef struct {
61  bcs_indication_changed_cb_t indication_changed;
63  bcs_indication_sent_cb_t indication_sent;
65 
71 typedef enum {
74 } bcs_unit_t;
75 
81 typedef enum {
82  BCS_FEAT_TIME_STAMP = 0x000001,
86  BCS_FEAT_MUSCLE_MASS = 0x000010,
90  BCS_FEAT_IMPEDANCE = 0x000100,
91  BCS_FEAT_WEIGHT = 0x000200,
92  BCS_FEAT_HEIGHT = 0x000400,
117 } bcs_feat_t;
118 
125 typedef struct {
129  uint8_t user_id;
131  uint16_t basal_metabolism;
132  uint16_t muscle_percentage;
133  uint16_t muscle_mass;
134  uint16_t fat_free_mass;
135  uint16_t soft_lean_mass;
136  uint16_t body_water_mass;
137  uint16_t impedance;
138  uint16_t weight;
139  uint16_t height;
141 
153  const bcs_callbacks_t *cb);
154 
167 ble_error_t bcs_indicate(ble_service_t *svc, uint16_t conn_idx, bcs_body_measurement_t *meas);
168 
179 
189 bool bcs_is_indication_enabled(ble_service_t *svc, uint16_t conn_idx);
190 
191 #endif /* BCS_H_ */
192 
BCS_FEAT_HEIGHT_RES_0001_M
Definition: bcs.h:112
BCS_FEAT_MASS_RES_01_LB
Definition: bcs.h:104
bcs_body_measurement_t::fat_free_mass
uint16_t fat_free_mass
Definition: bcs.h:134
bcs_indicate_all
void bcs_indicate_all(ble_service_t *svc, bcs_body_measurement_t *meas)
BCS_FEAT_MASS_RES_001_KG
Definition: bcs.h:99
BCS_UNIT_SI
Definition: bcs.h:72
bcs_indicate
ble_error_t bcs_indicate(ble_service_t *svc, uint16_t conn_idx, bcs_body_measurement_t *meas)
BCS_FEAT_BASAL_METABOLISM
Definition: bcs.h:84
svc_types.h
Characteristics common types.
BCS_FEAT_MASS_RES_005_LB
Definition: bcs.h:105
BCS_FEAT_MASS_RES_01_KG
Definition: bcs.h:96
bcs_body_measurement_t::impedance
uint16_t impedance
Definition: bcs.h:137
BCS_FEAT_WEIGHT
Definition: bcs.h:91
BCS_FEAT_BODY_WATER_MASS
Definition: bcs.h:89
bcs_body_measurement_t::body_water_mass
uint16_t body_water_mass
Definition: bcs.h:136
BCS_FEAT_TIME_STAMP
Definition: bcs.h:82
BCS_FEAT_MULTIPLE_USERS
Definition: bcs.h:83
BCS_FEAT_HEIGHT
Definition: bcs.h:92
BCS_FEAT_HEIGHT_RES_001_M
Definition: bcs.h:110
bcs_body_measurement_t::user_id
uint8_t user_id
Definition: bcs.h:129
svc_date_time_t
Definition: svc_types.h:62
bcs_body_measurement_t::soft_lean_mass
uint16_t soft_lean_mass
Definition: bcs.h:135
BCS_FEAT_HEIGHT_RES_1_INCH
Definition: bcs.h:114
bcs_body_measurement_t::weight
uint16_t weight
Definition: bcs.h:138
BCS_FEAT_HEIGHT_RES_05_INCH
Definition: bcs.h:115
ble_service.h
Services handling routines API.
BCS_FEAT_MASS_RES_0005_KG
Definition: bcs.h:100
BCS_FEAT_MASS_RES_02_LB
Definition: bcs.h:103
BCS_FEAT_FAT_FREE_MASS
Definition: bcs.h:87
bcs_unit_t
bcs_unit_t
BCS unit types.
Definition: bcs.h:71
BCS_FEAT_HEIGHT_RES_01_INCH
Definition: bcs.h:116
BCS_FEAT_MASS_RES_05_LB
Definition: bcs.h:102
BCS_FEAT_MUSCLE_PERCENTAGE
Definition: bcs.h:85
bcs_feat_t
bcs_feat_t
BCS feature types.
Definition: bcs.h:81
BCS_FEAT_HEIGHT_RES_005_M
Definition: bcs.h:111
BCS_FEAT_MASS_RES_005_KG
Definition: bcs.h:97
BCS_FEAT_MASS_RES_002_LB
Definition: bcs.h:106
BCS_FEAT_MUSCLE_MASS
Definition: bcs.h:86
bcs_is_indication_enabled
bool bcs_is_indication_enabled(ble_service_t *svc, uint16_t conn_idx)
Check if indication is enabled.
bcs_init
ble_service_t * bcs_init(const ble_service_config_t *config, bcs_feat_t feat, const bcs_callbacks_t *cb)
BCS_FEAT_MASS_RES_002_KG
Definition: bcs.h:98
BCS_FEAT_SOFT_LEAN_MASS
Definition: bcs.h:88
BCS_UNIT_IMPERIAL
Definition: bcs.h:73
BCS_FEAT_IMPEDANCE
Definition: bcs.h:90
bcs_body_measurement_t::muscle_mass
uint16_t muscle_mass
Definition: bcs.h:133
bcs_body_measurement_t::measurement_unit
bcs_unit_t measurement_unit
Definition: bcs.h:126
ble_error_t
ble_error_t
Definition: ble_common.h:53
BCS_FEAT_MASS_RES_02_KG
Definition: bcs.h:95
bcs_body_measurement_t::basal_metabolism
uint16_t basal_metabolism
Definition: bcs.h:131
bcs_body_measurement_t
Definition: bcs.h:125
ble_service_config_t
Definition: ble_service.h:150
bcs_body_measurement_t::body_fat_percentage
uint16_t body_fat_percentage
Definition: bcs.h:130
BCS_FEAT_MASS_RES_05_KG
Definition: bcs.h:94
bcs_body_measurement_t::muscle_percentage
uint16_t muscle_percentage
Definition: bcs.h:132
bcs_body_measurement_t::time_stamp_present
bool time_stamp_present
Definition: bcs.h:127
bcs_body_measurement_t::height
uint16_t height
Definition: bcs.h:139
BCS_FEAT_MASS_RES_0005_LB
Definition: bcs.h:108
bcs_callbacks_t
BCS application callbacks.
Definition: bcs.h:59
bcs_body_measurement_t::time_stamp
svc_date_time_t time_stamp
Definition: bcs.h:128
ble_service
Definition: ble_service.h:132
BCS_FEAT_MASS_RES_001_LB
Definition: bcs.h:107