SmartSnippets DA1459x SDK
wss.h
Go to the documentation of this file.
1 
43 #ifndef WSS_H_
44 #define WSS_H_
45 
46 #include <stdint.h>
47 #include "ble_service.h"
48 #include "svc_types.h"
49 
50 typedef void (* wss_indication_changed_cb_t) (uint16_t conn_idx, bool enabled);
51 typedef void (* wss_indication_sent_cb_t) (uint16_t conn_idx, bool status);
52 
58 typedef struct {
60  wss_indication_changed_cb_t indication_changed;
62  wss_indication_sent_cb_t indication_sent;
64 
70 typedef enum {
73 } wss_unit_t;
74 
80 typedef struct {
83  uint16_t weight;
86  uint8_t user_id;
87  uint16_t bmi;
88  uint16_t height;
92 
98 typedef enum
99 {
106  /* Weight Resolution */
115  /* Height Resolution */
119 } wss_feature_t;
120 
134  const wss_callbacks_t *cb);
135 
148 ble_error_t wss_indicate_weight(ble_service_t *svc, uint16_t conn_idx,
149  const wss_weight_measurement_t *measurement);
150 
160 void wss_indicate_weight_all(ble_service_t *svc, const wss_weight_measurement_t *measurement);
161 
171 bool wss_is_indication_enabled(ble_service_t *svc, uint16_t conn_idx);
172 
173 #endif /* WSS_H_ */
174 
WSS_FEAT_MULTI_USER_SUPPORTED
Definition: wss.h:102
WSS_FEAT_BMI_SUPPORTED
Definition: wss.h:104
WSS_FEAT_WT_DISPLAY_20G_ACC
Definition: wss.h:111
WSS_FEAT_WT_DISPLAY_10G_ACC
Definition: wss.h:112
WSS_FEAT_WT_DISPLAY_100G_ACC
Definition: wss.h:109
WSS_FEAT_WT_DISPLAY_500G_ACC
Definition: wss.h:107
svc_types.h
Characteristics common types.
wss_init
ble_service_t * wss_init(const ble_service_config_t *config, wss_feature_t features, const wss_callbacks_t *cb)
Register Weight Scale Service instance.
WSS_UNIT_IMPERIAL
Definition: wss.h:72
wss_weight_measurement_t
WSS weight measurement data.
Definition: wss.h:80
wss_weight_measurement_t::height
uint16_t height
Definition: wss.h:88
wss_unit_t
wss_unit_t
WSS unit types.
Definition: wss.h:70
WSS_UNIT_SI
Definition: wss.h:71
wss_weight_measurement_t::unit
wss_unit_t unit
Definition: wss.h:81
wss_callbacks_t
WSS application callbacks.
Definition: wss.h:58
wss_indicate_weight
ble_error_t wss_indicate_weight(ble_service_t *svc, uint16_t conn_idx, const wss_weight_measurement_t *measurement)
Send weight indication to client.
svc_date_time_t
Definition: svc_types.h:62
WSS_FEAT_TIME_STAMP_SUPPORTED
Definition: wss.h:100
ble_service.h
Services handling routines API.
wss_is_indication_enabled
bool wss_is_indication_enabled(ble_service_t *svc, uint16_t conn_idx)
Check if indication is enabled.
wss_weight_measurement_t::bmi
uint16_t bmi
Definition: wss.h:87
WSS_FEAT_HT_DISPLAY_1MM_ACC
Definition: wss.h:118
wss_weight_measurement_t::user_id
uint8_t user_id
Definition: wss.h:86
WSS_FEAT_WT_DISPLAY_200G_ACC
Definition: wss.h:108
wss_weight_measurement_t::time_stamp
svc_date_time_t time_stamp
Definition: wss.h:85
WSS_FEAT_WT_DISPLAY_5G_ACC
Definition: wss.h:113
WSS_FEAT_HT_DISPLAY_10MM_ACC
Definition: wss.h:116
wss_feature_t
wss_feature_t
Weight Feature characteristic bit values.
Definition: wss.h:98
ble_error_t
ble_error_t
Definition: ble_common.h:53
WSS_FEAT_WT_DISPLAY_50G_ACC
Definition: wss.h:110
WSS_FEAT_HT_DISPLAY_5MM_ACC
Definition: wss.h:117
wss_weight_measurement_t::weight
uint16_t weight
Definition: wss.h:83
ble_service_config_t
Definition: ble_service.h:150
wss_indicate_weight_all
void wss_indicate_weight_all(ble_service_t *svc, const wss_weight_measurement_t *measurement)
Send weight indication to all interested clients.
wss_weight_measurement_t::time_stamp_present
bool time_stamp_present
Definition: wss.h:84
ble_service
Definition: ble_service.h:132