Goodix
GR551x API Reference  V1_6_06_B5676
bcs.h
Go to the documentation of this file.
1 /**
2  *****************************************************************************************
3  *
4  * @file bcs.h
5  *
6  * @brief Body Composition Service API.
7  *
8  *****************************************************************************************
9  * @attention
10  #####Copyright (c) 2019 GOODIX
11  All rights reserved.
12 
13  Redistribution and use in source and binary forms, with or without
14  modification, are permitted provided that the following conditions are met:
15  * Redistributions of source code must retain the above copyright
16  notice, this list of conditions and the following disclaimer.
17  * Redistributions in binary form must reproduce the above copyright
18  notice, this list of conditions and the following disclaimer in the
19  documentation and/or other materials provided with the distribution.
20  * Neither the name of GOODIX nor the names of its contributors may be used
21  to endorse or promote products derived from this software without
22  specific prior written permission.
23 
24  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  POSSIBILITY OF SUCH DAMAGE.
35  *****************************************************************************************
36  */
37 
38 /**
39  * @addtogroup BLE_SRV BLE Services
40  * @{
41  * @brief Definitions and prototypes for the BLE Service interface.
42  */
43 
44 /**
45  * @defgroup BLE_SDK_BCS Body Composition Service (BCS)
46  * @{
47  * @brief Definitions and prototypes for the BCS interface.
48  *
49  * @details The Body Composition Service (BCS) exposes data related to body composition from a
50  * body composition analyzer (Server) intended for consumer healthcare as well as
51  * sports/fitness applications. This module implements the Body Compositon Service
52  * with the Body Composition Feature and Body Composition Measurement characteristics.
53  *
54  * After \ref hts_init_t variable is initialized, the application must call \ref hts_service_init()
55  * to optionally add the Health Thermometer Service, Temperature Meaturement, Temperature Type,
56  * Intermediate Temperature, and Measurement Interval characteristics to the BLE stack database
57  * according to \ref hts_init_t.char_mask. However the value of Temperature Type is stored within
58  * \ref hts_init_t.temp_type which locates in user space.
59  */
60 
61 #ifndef _BCS_H_
62 #define _BCS_H_
63 
64 #include "gr55xx_sys.h"
65 #include "custom_config.h"
66 #include "ble_prf_utils.h"
67 #include <stdint.h>
68 #include <stdbool.h>
69 
70 /**
71  * @defgroup BCS_MACRO Defines
72  * @{
73  */
74 #define BCS_CONNECTION_MAX (10 < CFG_MAX_CONNECTIONS ?\
75  10 : CFG_MAX_CONNECTIONS) /**< Maximum number of Body Composition Service connections. */
76 #define BCS_MEAS_VAL_LEN_MAX 20 /**< Maximum length of BC Measurment value. */
77 #define BCS_FEAT_VAL_LEN_MAX 4 /**< Maximum length of BC Feature value. */
78 
79 /* Reference section 3.4.7.2 Handle Value Indication, ATT, Core Spec. */
80 #define INDI_PAYLOAD_HEADER_LEN 3
81 
82 /* The least value of MTU is 23 octets. The size of Attribute Value is (23-3)
83  * octets which could be less than the size (30 octets) of all fields of Body
84  * Composition Measurement. If the required data exceeds the current size (MTU - 3)
85  * octets, the remaining optional fields shall be sent in the subsequent indication.
86  * So we need no more than 2 packets. */
87 #define NUM_PACKETS 2
88 #define MEAS_PACKET_FIRST 0
89 #define MEAS_PACKET_SUB 1
90 
91 #define BCS_CACHE_MEAS_NUM_MAX 25 /**< Maximum number of cache muasurements value for each user. */
92 
93 #define BCS_MEAS_UNSUCCESS 0xFFFF /**< Measurement unsuccessful. */
94 
95 /**
96  * @defgroup BCS_CHAR_MASK Characteristics Mask
97  * @{
98  * @brief Bit masks for the initialization of \ref bcs_init_t.char_mask.
99  */
100 #define BCS_CHAR_FEAT_MANDATORY 0x3F /**< Bit mask for mandatory characteristic in BCS. */
101 /** @} */
102 /** @} */
103 
104 /**
105  * @defgroup BCS_MEAS_FLAG_BIT Measurement Flag Bits
106  * @{
107  * @brief Body Composition Measurement Flags.
108  */
110 {
111  BCS_MEAS_FLAG_UNIT_SI = 0x0000, /**< Flag bit for SI Measurement Units Present. */
112  BCS_MEAS_FLAG_UNIT_IMPERIAL = 0x0001, /**< Flag bit for Imperial Measurement Units Present. */
113  BCS_MEAS_FLAG_DATE_TIME_PRESENT = 0x0002, /**< Flag bit for Time Stamp Present. */
114  BCS_MEAS_FLAG_USER_ID_PRESENT = 0x0004, /**< Flag bit for User ID Present. */
115  BCS_MEAS_FLAG_BASAL_METABOLISM = 0x0008, /**< Flag bit for Basal Metabolism Present. */
116  BCS_MEAS_FLAG_MUSCLE_PERCENTAGE = 0x0010, /**< Flag bit for Muscle Percentage Present. */
117  BCS_MEAS_FLAG_MUSCLE_MASS = 0x0020, /**< Flag bit for Muscle Mass Present. */
118  BCS_MEAS_FLAG_FAT_FREE_MASS = 0x0040, /**< Flag bit for Fat Free Mass Present. */
119  BCS_MEAS_FLAG_SOFT_LEAN_MASS = 0x0080, /**< Flag bit for Soft Lean Mass Present. */
120  BCS_MEAS_FLAG_BODY_WATER_MASS = 0x0100, /**< Flag bit for Body Water Mass Present. */
121  BCS_MEAS_FLAG_IMPEDANCE = 0x0200, /**< Flag bit for Impedance Present. */
122  BCS_MEAS_FLAG_WEIGHT = 0x0400, /**< Flag bit for Weight Present. */
123  BCS_MEAS_FLAG_HEIGHT = 0x0800, /**< Flag bit for Height Present. */
124  BCS_MEAS_FLAG_MUTI_PACKET = 0x1000, /**< Flag bit for Multiple Packet Measurement Present. */
125 };
126 /** @} */
127 
128 /**
129  * @defgroup BCS_ENUM Enumerations
130  * @{
131  */
132 /**@brief Body Composition Feature characteristic bit values. */
133 typedef enum
134 {
135  /* Supported Flags */
136  BCS_FEAT_TIME_STAMP = 0x00000001, /**< Time Stamp supported */
137  BCS_FEAT_MULTI_USER = 0x00000002, /**< Multiple Users supported */
138  BCS_FEAT_BASAL_METABOLISM = 0x00000004, /**< Basal metabolism supported */
139  BCS_FEAT_MUSCLE_PERCENTAGE = 0x00000008, /**< Muscle percentage supported */
140  BCS_FEAT_MUSCLE_MASS = 0x00000010, /**< Muscle mass supported */
141  BCS_FEAT_FAT_FREE_MASS = 0x00000020, /**< Fat free mass supported */
142  BCS_FEAT_SOFT_LEAN_MASS = 0x00000040, /**< Soft lean mass supported */
143  BCS_FEAT_BODY_WATER_MASS = 0x00000080, /**< Body water mass supported */
144  BCS_FEAT_IMPEDANCE = 0x00000100, /**< Impedance supported */
145  BCS_FEAT_WEIGHT = 0x00000200, /**< Weight supported */
146  BCS_FEAT_HEIGHT = 0x00000400, /**< Height supported */
147 
148  /* Mass Resolution */
149  BCS_FEAT_MASS_RES_500G = 0x00000800, /**< Resolution of 0.5kg or 1lb */
150  BCS_FEAT_MASS_RES_200G = 0x00001000, /**< Resolution of 0.2kg or 0.5lb */
151  BCS_FEAT_MASS_RES_100G = 0x00001800, /**< Resolution of 0.1kg or 0.2lb */
152  BCS_FEAT_MASS_RES_50G = 0x00002000, /**< Resolution of 0.05kg or 0.1lb */
153  BCS_FEAT_MASS_RES_20G = 0x00002800, /**< Resolution of 0.02kg or 0.05lb */
154  BCS_FEAT_MASS_RES_10G = 0x00003000, /**< Resolution of 0.01kg or 0.02lb */
155  BCS_FEAT_MASS_RES_5G = 0x00003800, /**< Resolution of 0.005kg or 0.01lb */
156 
157  /* Height Resolution */
158  BCS_FEAT_HEIGHT_RES_10MM = 0x00008000, /**< Resolution of 0.01m or 1in */
159  BCS_FEAT_HEIGHT_RES_5MM = 0x00010000, /**< Resolution of 0.005m or 0.5in */
160  BCS_FEAT_HEIGHT_RES_1MM = 0x00018000, /**< Resolution of 0.001m or 0.1in */
161 
162  BCS_FEAT_FULL_BIT = 0x0001BFFF,
163 } bcs_feature_t;
164 
165 /**@brief BCS Weight Measurement resolutions. */
166 typedef enum
167 {
168  BCS_MASS_RES_500G, /**< Resolution of 0.5kg or 1lb. */
169  BCS_MASS_RES_200G, /**< Resolution of 0.2kg or 0.5lb. */
170  BCS_MASS_RES_100G, /**< Resolution of 0.1kg or 0.2lb. */
171  BCS_MASS_RES_50G, /**< Resolution of 0.05kg or 0.1lb. */
172  BCS_MASS_RES_20G, /**< Resolution of 0.02kg or 0.05lb. */
173  BCS_MASS_RES_10G, /**< Resolution of 0.01kg or 0.02lb. */
174  BCS_MASS_RES_5G, /**< Resolution of 0.005kg or 0.01lb. */
176 
177 /**@brief BCS Height Measurement resolutions. */
178 typedef enum
179 {
180  BCS_HEIGHT_RES_10MM, /**< Resolution of 0.01m or 1in. */
181  BCS_HEIGHT_RES_5MM, /**< Resolution of 0.005m or 0.5in. */
182  BCS_HEIGHT_RES_1MM, /**< Resolution of 0.001m or 0.1in. */
184 
185 /**@brief BCS unit types. */
186 typedef enum
187 {
188  BCS_UNIT_SI, /**< Weight in kilograms and height in meters */
189  BCS_UNIT_IMPERIAL, /**< Weight in pounds and height in inches */
190 } bcs_unit_t;
191 
192  /**@brief Body Composition Service event type. */
193 typedef enum
194 {
195  BCS_EVT_INVALID, /**< Indicate that invalid event. */
196  BCS_EVT_MEAS_INDICATION_ENABLE, /**< Indicate that body composition measurement indication has been enabled. */
197  BCS_EVT_MEAS_INDICATION_DISABLE, /**< Indicate that body composition measurement indication has been disabled. */
198  BCS_EVT_MEAS_INDICATION_CPLT, /**< Indicate that BC Measurement has been indicated. */
199  BCS_EVT_MEAS_READ_CHARACTERISTIC, /**< The peer reads the characteristic. */
201 /** @} */
202 
203 /**
204  * @defgroup BCS_STRUCT Structures
205  * @{
206  */
207 /**@brief Body composition Measurement flag data. */
208 typedef struct
209 {
210  uint8_t time_stamp_present :1;
211  uint8_t user_id_present :1;
218  uint8_t impedance_present :1;
219  uint8_t weight_present :1;
220  uint8_t height_present :1;
222 
223 /**@brief Body composition Measurement data. */
224 typedef struct
225 {
226  uint16_t body_fat_percentage; /** Body Fat Percentage. */
227  prf_date_time_t time_stamp; /** Time stamp. */
228  uint8_t user_id; /** User index. */
229  uint16_t basal_metabolism; /** Basal Metabolism. */
230  uint16_t muscle_percentage; /** Muscle Percentage. */
231  uint16_t muscle_mass; /** Muscle mass. */
232  uint16_t fat_free_mass; /** Fat Free Mass. */
233  uint16_t soft_lean_mass; /** Soft Lean Mass. */
234  uint16_t body_water_mass; /** Body Water Mass. */
235  uint16_t impedance; /** Impedance. */
236  uint16_t weight; /** Weight. */
237  uint16_t height; /** Height. */
239 
240 /**@brief Body Composition Service event. */
241 typedef struct
242 {
243  bcs_evt_type_t evt_type; /**< The BCS event type. */
244  uint8_t conn_idx; /**< The index of the connection. */
245  const uint8_t *p_data; /**< Pointer to event data. */
246  uint16_t length; /**< Length of event data. */
247 } bcs_evt_t;
248 /** @} */
249 
250 /**
251  * @defgroup BCS_TYPEDEF Typedefs
252  * @{
253  */
254 /**@brief Body Composition Service event handler type. */
255 typedef void (*bcs_evt_handler_t)(bcs_evt_t *p_evt);
256 /** @} */
257 
258 /**
259  * @defgroup BCS_STRUCT Structures
260  * @{
261  */
262 /**@brief Body Composition Service Init variable. */
263 typedef struct
264 {
265  bcs_evt_handler_t evt_handler; /**< Body Composition Service event handler. */
266  uint32_t feature; /**< Initial value for features. */
267  uint8_t char_mask; /**< Initial mask of Supported characteristics, and configured with \ref BCS_CHAR_MASK */
268  bcs_unit_t bcs_unit; /**< Initial unit system as SI or Imperial. */
269  bcs_meas_flag_t bcs_meas_flags; /**< Initial measurement flags. */
270  bcs_mass_res_t bcs_mass_res; /**< Initial resolution of mass value. */
271  bcs_height_res_t bcs_height_res; /**< Initial resolution of height value. */
272 } bcs_init_t;
273 /** @} */
274 
275 /**
276  * @defgroup BCS_FUNCTION Functions
277  * @{
278  */
279 /**
280  *****************************************************************************************
281  * @brief Initialize a Body Composition Service instance and add in the DB.
282  *
283  * @param[in] p_bcs_init: Pointer to BC Service initialization variable.
284  *
285  * @return Result of service initialization.
286  *****************************************************************************************
287  */
289 
290 /**@brief Send Body Composition Measurement indication.
291  *****************************************************************************************
292  *
293  * @param[in] conn_idx: Connection index.
294  * @param[in] p_meas: Pointer to body composition measurement data.
295  * @param[in] cache_num: The number of measurement caches.
296  *
297  * @return Result of indicate value.
298  *****************************************************************************************
299  */
300 sdk_err_t bcs_measurement_send(uint8_t conn_idx, bcs_meas_val_t *p_meas, uint8_t cache_num);
301 
302 /** @} */
303 
304 #endif
305 /** @} */
306 /** @} */
307 
bcs_meas_val_t::height
uint16_t height
Weight.
Definition: bcs.h:237
BCS_MEAS_FLAG_SOFT_LEAN_MASS
@ BCS_MEAS_FLAG_SOFT_LEAN_MASS
Flag bit for Soft Lean Mass Present.
Definition: bcs.h:119
bcs_meas_flag_t::basal_metabolism_present
uint8_t basal_metabolism_present
Definition: bcs.h:212
bcs_init_t::char_mask
uint8_t char_mask
Initial mask of Supported characteristics, and configured with Characteristics Mask.
Definition: bcs.h:267
BCS_MEAS_FLAG_HEIGHT
@ BCS_MEAS_FLAG_HEIGHT
Flag bit for Height Present.
Definition: bcs.h:123
bcs_feature_t
bcs_feature_t
Body Composition Feature characteristic bit values.
Definition: bcs.h:134
BCS_MASS_RES_500G
@ BCS_MASS_RES_500G
Resolution of 0.5kg or 1lb.
Definition: bcs.h:168
bcs_unit_t
bcs_unit_t
BCS unit types.
Definition: bcs.h:187
bcs_evt_t::p_data
const uint8_t * p_data
Pointer to event data.
Definition: bcs.h:245
bcs_init_t::bcs_meas_flags
bcs_meas_flag_t bcs_meas_flags
Initial measurement flags.
Definition: bcs.h:269
BCS_MEAS_FLAG_FAT_FREE_MASS
@ BCS_MEAS_FLAG_FAT_FREE_MASS
Flag bit for Fat Free Mass Present.
Definition: bcs.h:118
bcs_mass_res_t
bcs_mass_res_t
BCS Weight Measurement resolutions.
Definition: bcs.h:167
BCS_MEAS_FLAG_MUSCLE_PERCENTAGE
@ BCS_MEAS_FLAG_MUSCLE_PERCENTAGE
Flag bit for Muscle Percentage Present.
Definition: bcs.h:116
bcs_meas_flag_t::time_stamp_present
uint8_t time_stamp_present
Definition: bcs.h:210
bcs_evt_type_t
bcs_evt_type_t
Body Composition Service event type.
Definition: bcs.h:194
bcs_evt_t
Body Composition Service event.
Definition: bcs.h:242
BCS_HEIGHT_RES_10MM
@ BCS_HEIGHT_RES_10MM
Resolution of 0.01m or 1in.
Definition: bcs.h:180
BCS_MEAS_FLAG_UNIT_IMPERIAL
@ BCS_MEAS_FLAG_UNIT_IMPERIAL
Flag bit for Imperial Measurement Units Present.
Definition: bcs.h:112
gr55xx_sys.h
GR55XX System API.
bcs_init_t::bcs_mass_res
bcs_mass_res_t bcs_mass_res
Initial resolution of mass value.
Definition: bcs.h:270
bcs_evt_t::evt_type
bcs_evt_type_t evt_type
The BCS event type.
Definition: bcs.h:243
BCS_MASS_RES_5G
@ BCS_MASS_RES_5G
Resolution of 0.005kg or 0.01lb.
Definition: bcs.h:174
BCS_FEAT_HEIGHT_RES_1MM
@ BCS_FEAT_HEIGHT_RES_1MM
Resolution of 0.001m or 0.1in.
Definition: bcs.h:160
BCS_HEIGHT_RES_5MM
@ BCS_HEIGHT_RES_5MM
Resolution of 0.005m or 0.5in.
Definition: bcs.h:181
bcs_meas_val_t::impedance
uint16_t impedance
Body Water Mass.
Definition: bcs.h:235
BCS_MEAS_FLAG_UNIT_SI
@ BCS_MEAS_FLAG_UNIT_SI
Flag bit for SI Measurement Units Present.
Definition: bcs.h:111
BCS_FEAT_MASS_RES_20G
@ BCS_FEAT_MASS_RES_20G
Resolution of 0.02kg or 0.05lb.
Definition: bcs.h:153
BCS_FEAT_MASS_RES_200G
@ BCS_FEAT_MASS_RES_200G
Resolution of 0.2kg or 0.5lb.
Definition: bcs.h:150
bcs_measurement_send
sdk_err_t bcs_measurement_send(uint8_t conn_idx, bcs_meas_val_t *p_meas, uint8_t cache_num)
Send Body Composition Measurement indication.
bcs_init_t::bcs_height_res
bcs_height_res_t bcs_height_res
Initial resolution of height value.
Definition: bcs.h:271
BCS_EVT_MEAS_INDICATION_ENABLE
@ BCS_EVT_MEAS_INDICATION_ENABLE
Indicate that body composition measurement indication has been enabled.
Definition: bcs.h:196
bcs_init_t
Body Composition Service Init variable.
Definition: bcs.h:264
bcs_meas_flag_t::fat_free_mass_present
uint8_t fat_free_mass_present
Definition: bcs.h:215
BCS_FEAT_MUSCLE_MASS
@ BCS_FEAT_MUSCLE_MASS
Muscle mass supported.
Definition: bcs.h:140
BCS_FEAT_MASS_RES_10G
@ BCS_FEAT_MASS_RES_10G
Resolution of 0.01kg or 0.02lb.
Definition: bcs.h:154
bcs_meas_val_t::weight
uint16_t weight
Impedance.
Definition: bcs.h:236
BCS_MEAS_FLAG_USER_ID_PRESENT
@ BCS_MEAS_FLAG_USER_ID_PRESENT
Flag bit for User ID Present.
Definition: bcs.h:114
bcs_meas_flag_t::soft_lean_mass_present
uint8_t soft_lean_mass_present
Definition: bcs.h:216
BCS_FEAT_HEIGHT_RES_10MM
@ BCS_FEAT_HEIGHT_RES_10MM
Resolution of 0.01m or 1in.
Definition: bcs.h:158
BCS_MEAS_FLAG_MUSCLE_MASS
@ BCS_MEAS_FLAG_MUSCLE_MASS
Flag bit for Muscle Mass Present.
Definition: bcs.h:117
bcs_meas_val_t::time_stamp
prf_date_time_t time_stamp
Body Fat Percentage.
Definition: bcs.h:227
BCS_FEAT_MASS_RES_100G
@ BCS_FEAT_MASS_RES_100G
Resolution of 0.1kg or 0.2lb.
Definition: bcs.h:151
bcs_meas_val_t::muscle_mass
uint16_t muscle_mass
Muscle Percentage.
Definition: bcs.h:231
bcs_meas_val_t::body_water_mass
uint16_t body_water_mass
Soft Lean Mass.
Definition: bcs.h:234
BCS_FEAT_MASS_RES_50G
@ BCS_FEAT_MASS_RES_50G
Resolution of 0.05kg or 0.1lb.
Definition: bcs.h:152
BCS_MASS_RES_200G
@ BCS_MASS_RES_200G
Resolution of 0.2kg or 0.5lb.
Definition: bcs.h:169
sdk_err_t
uint16_t sdk_err_t
SDK API result type.
Definition: ble_error.h:243
BCS_FEAT_WEIGHT
@ BCS_FEAT_WEIGHT
Weight supported.
Definition: bcs.h:145
bcs_meas_flag_t
Body composition Measurement flag data.
Definition: bcs.h:209
BCS_FEAT_TIME_STAMP
@ BCS_FEAT_TIME_STAMP
Time Stamp supported.
Definition: bcs.h:136
bcs_evt_handler_t
void(* bcs_evt_handler_t)(bcs_evt_t *p_evt)
Body Composition Service event handler type.
Definition: bcs.h:255
bcs_meas_flag_t::impedance_present
uint8_t impedance_present
Definition: bcs.h:218
prf_date_time_t
The date and time structure.
Definition: ble_prf_types.h:101
bcs_meas_flag_t::muscle_percentage_present
uint8_t muscle_percentage_present
Definition: bcs.h:213
BCS_MEAS_FLAG_BASAL_METABOLISM
@ BCS_MEAS_FLAG_BASAL_METABOLISM
Flag bit for Basal Metabolism Present.
Definition: bcs.h:115
bcs_evt_t::conn_idx
uint8_t conn_idx
The index of the connection.
Definition: bcs.h:244
BCS_MASS_RES_10G
@ BCS_MASS_RES_10G
Resolution of 0.01kg or 0.02lb.
Definition: bcs.h:173
bcs_meas_flag_bits
bcs_meas_flag_bits
Definition: bcs.h:110
BCS_UNIT_SI
@ BCS_UNIT_SI
Weight in kilograms and height in meters.
Definition: bcs.h:188
bcs_meas_flag_t::body_water_mass_present
uint8_t body_water_mass_present
Definition: bcs.h:217
BCS_FEAT_MULTI_USER
@ BCS_FEAT_MULTI_USER
Multiple Users supported.
Definition: bcs.h:137
BCS_FEAT_MASS_RES_5G
@ BCS_FEAT_MASS_RES_5G
Resolution of 0.005kg or 0.01lb.
Definition: bcs.h:155
bcs_meas_val_t::user_id
uint8_t user_id
Time stamp.
Definition: bcs.h:228
BCS_FEAT_SOFT_LEAN_MASS
@ BCS_FEAT_SOFT_LEAN_MASS
Soft lean mass supported.
Definition: bcs.h:142
BCS_FEAT_MUSCLE_PERCENTAGE
@ BCS_FEAT_MUSCLE_PERCENTAGE
Muscle percentage supported.
Definition: bcs.h:139
BCS_MEAS_FLAG_WEIGHT
@ BCS_MEAS_FLAG_WEIGHT
Flag bit for Weight Present.
Definition: bcs.h:122
BCS_UNIT_IMPERIAL
@ BCS_UNIT_IMPERIAL
Weight in pounds and height in inches.
Definition: bcs.h:189
BCS_EVT_MEAS_READ_CHARACTERISTIC
@ BCS_EVT_MEAS_READ_CHARACTERISTIC
The peer reads the characteristic.
Definition: bcs.h:199
BCS_MEAS_FLAG_MUTI_PACKET
@ BCS_MEAS_FLAG_MUTI_PACKET
Flag bit for Multiple Packet Measurement Present.
Definition: bcs.h:124
BCS_FEAT_BASAL_METABOLISM
@ BCS_FEAT_BASAL_METABOLISM
Basal metabolism supported.
Definition: bcs.h:138
bcs_init_t::feature
uint32_t feature
Initial value for features.
Definition: bcs.h:266
BCS_FEAT_IMPEDANCE
@ BCS_FEAT_IMPEDANCE
Impedance supported.
Definition: bcs.h:144
bcs_height_res_t
bcs_height_res_t
BCS Height Measurement resolutions.
Definition: bcs.h:179
bcs_init_t::evt_handler
bcs_evt_handler_t evt_handler
Body Composition Service event handler.
Definition: bcs.h:265
BCS_MASS_RES_50G
@ BCS_MASS_RES_50G
Resolution of 0.05kg or 0.1lb.
Definition: bcs.h:171
bcs_meas_flag_t::weight_present
uint8_t weight_present
Definition: bcs.h:219
BCS_EVT_MEAS_INDICATION_DISABLE
@ BCS_EVT_MEAS_INDICATION_DISABLE
Indicate that body composition measurement indication has been disabled.
Definition: bcs.h:197
bcs_evt_t::length
uint16_t length
Length of event data.
Definition: bcs.h:246
ble_prf_utils.h
Profile/Service Utilities API.
bcs_meas_val_t::muscle_percentage
uint16_t muscle_percentage
Basal Metabolism.
Definition: bcs.h:230
BCS_FEAT_HEIGHT_RES_5MM
@ BCS_FEAT_HEIGHT_RES_5MM
Resolution of 0.005m or 0.5in.
Definition: bcs.h:159
bcs_meas_val_t::fat_free_mass
uint16_t fat_free_mass
Muscle mass.
Definition: bcs.h:232
BCS_MEAS_FLAG_BODY_WATER_MASS
@ BCS_MEAS_FLAG_BODY_WATER_MASS
Flag bit for Body Water Mass Present.
Definition: bcs.h:120
bcs_meas_flag_t::height_present
uint8_t height_present
Definition: bcs.h:220
bcs_meas_val_t
Body composition Measurement data.
Definition: bcs.h:225
bcs_meas_val_t::body_fat_percentage
uint16_t body_fat_percentage
Definition: bcs.h:226
BCS_FEAT_MASS_RES_500G
@ BCS_FEAT_MASS_RES_500G
Resolution of 0.5kg or 1lb.
Definition: bcs.h:149
bcs_meas_val_t::soft_lean_mass
uint16_t soft_lean_mass
Fat Free Mass.
Definition: bcs.h:233
BCS_MASS_RES_20G
@ BCS_MASS_RES_20G
Resolution of 0.02kg or 0.05lb.
Definition: bcs.h:172
bcs_meas_val_t::basal_metabolism
uint16_t basal_metabolism
User index.
Definition: bcs.h:229
BCS_MEAS_FLAG_IMPEDANCE
@ BCS_MEAS_FLAG_IMPEDANCE
Flag bit for Impedance Present.
Definition: bcs.h:121
bcs_init_t::bcs_unit
bcs_unit_t bcs_unit
Initial unit system as SI or Imperial.
Definition: bcs.h:268
BCS_FEAT_BODY_WATER_MASS
@ BCS_FEAT_BODY_WATER_MASS
Body water mass supported.
Definition: bcs.h:143
BCS_FEAT_FAT_FREE_MASS
@ BCS_FEAT_FAT_FREE_MASS
Fat free mass supported.
Definition: bcs.h:141
BCS_FEAT_HEIGHT
@ BCS_FEAT_HEIGHT
Height supported.
Definition: bcs.h:146
BCS_MEAS_FLAG_DATE_TIME_PRESENT
@ BCS_MEAS_FLAG_DATE_TIME_PRESENT
Flag bit for Time Stamp Present.
Definition: bcs.h:113
bcs_service_init
sdk_err_t bcs_service_init(bcs_init_t *p_bcs_init)
Initialize a Body Composition Service instance and add in the DB.
bcs_meas_flag_t::muscle_mass_present
uint8_t muscle_mass_present
Definition: bcs.h:214
bcs_meas_flag_t::user_id_present
uint8_t user_id_present
Definition: bcs.h:211
BCS_HEIGHT_RES_1MM
@ BCS_HEIGHT_RES_1MM
Resolution of 0.001m or 0.1in.
Definition: bcs.h:182
BCS_EVT_INVALID
@ BCS_EVT_INVALID
Indicate that invalid event.
Definition: bcs.h:195
BCS_FEAT_FULL_BIT
@ BCS_FEAT_FULL_BIT
Definition: bcs.h:162
BCS_EVT_MEAS_INDICATION_CPLT
@ BCS_EVT_MEAS_INDICATION_CPLT
Indicate that BC Measurement has been indicated.
Definition: bcs.h:198
BCS_MASS_RES_100G
@ BCS_MASS_RES_100G
Resolution of 0.1kg or 0.2lb.
Definition: bcs.h:170