Go to the documentation of this file.
68 #include "custom_config.h"
77 #define GLS_CONNECTION_MAX (10 < CFG_MAX_CONNECTIONS ?\
78 10 : CFG_MAX_CONNECTIONS)
79 #define GLS_MEAS_VAL_LEN_MAX 20
80 #define GLS_MEAS_CTX_LEN_MAX 20
81 #define GLS_REC_ACCESS_CTRL_LEN_MIN 2
82 #define GLS_REC_ACCESS_CTRL_LEN_MAX 21
85 #define GLS_NTF_OF_NULL 0x00
86 #define GLS_NTF_OF_MEAS 0x01
87 #define GLS_NTF_OF_MEAS_CTX 0x10
89 #define GLS_ERROR_PROC_IN_PROCESS 0x80
90 #define GLS_ERROR_CCCD_INVALID 0x81
97 #define GLS_CHAR_MANDATORY 0x0f8f
98 #define GLS_CHAR_MEAS_CTX_SUP 0x0070
99 #define GLS_CHAR_FULL 0x0fff
107 #define GLS_FEAT_LOW_BATT (0x01 << 0)
108 #define GLS_FEAT_MALFUNC (0x01 << 1)
109 #define GLS_FEAT_SAMPLE_SIZE (0x01 << 2)
110 #define GLS_FEAT_INSERT_ERR (0x01 << 3)
111 #define GLS_FEAT_TYPE_ERR (0x01 << 4)
112 #define GLS_FEAT_RES_HIGH_LOW (0x01 << 5)
113 #define GLS_FEAT_TEMP_HIGH_LOW (0x01 << 6)
114 #define GLS_FEAT_READ_INT (0x01 << 7)
115 #define GLS_FEAT_GENERAL_FAULT (0x01 << 8)
116 #define GLS_FEAT_TIME_FAULT (0x01 << 9)
117 #define GLS_FEAT_MULTI_BOND (0x01 << 10)
118 #define GLS_FEAT_FULL (0x07ff)
127 #define GLS_MEAS_FLAG_TIME_OFFSET 0x01
128 #define GLS_MEAS_FLAG_CONC_TYPE_LOC 0x02
129 #define GLS_MEAS_FLAG_UNITS_KG_L 0x00
130 #define GLS_MEAS_FLAG_UNITS_MOL_L 0x04
131 #define GLS_MEAS_FLAG_SENSOR_STATUS 0x08
132 #define GLS_MEAS_FLAG_CONTEXT_INFO 0x10
140 #define GLS_MEAS_CTX_FLAG_CARB (0x01 << 0)
141 #define GLS_MEAS_CTX_FLAG_MEAL (0x01 << 1)
142 #define GLS_MEAS_CTX_FLAG_TESTER (0x01 << 2)
143 #define GLS_MEAS_CTX_FLAG_EXERCISE (0x01 << 3)
144 #define GLS_MEAS_CTX_FLAG_MED (0x01 << 4)
145 #define GLS_MEAS_CTX_FLAG_MED_KG (0x01 << 5)
146 #define GLS_MEAS_CTX_FLAG_MED_L (0x01 << 6)
147 #define GLS_MEAS_CTX_FLAG_HBA1C (0x01 << 7)
148 #define GLS_MEAS_CTX_FLAG_EXT (0x01 << 8)
156 #define GLS_MEAS_STATUS_BATT_LOW (0x01 << 0)
157 #define GLS_MEAS_STATUS_SENSOR_FAULT (0x01 << 1)
158 #define GLS_MEAS_STATUS_SAMPLE_SIZE (0x01 << 2)
159 #define GLS_MEAS_STATUS_STRIP_INSERT (0x01 << 3)
160 #define GLS_MEAS_STATUS_STRIP_TYPE (0x01 << 4)
161 #define GLS_MEAS_STATUS_RESULT_HIGH (0x01 << 5)
162 #define GLS_MEAS_STATUS_RESULT_LOW (0x01 << 6)
163 #define GLS_MEAS_STATUS_TEMP_HIGH (0x01 << 7)
164 #define GLS_MEAS_STATUS_TEMP_LOW (0x01 << 8)
165 #define GLS_MEAS_STATUS_STRIP_PULL (0x01 << 9)
166 #define GLS_MEAS_STATUS_GENERAL_FAULT (0x01 << 10)
167 #define GLS_MEAS_STATUS_TIME_FAULT (0x01 << 11)
bool gls_new_meas_record(gls_rec_t *p_rec)
Record a new glucose measurement.
@ GLS_MEAS_CTX_TESTER_LAB
Definition: gls.h:227
@ GLS_MEAS_CTX_CARB_SUPPER
Definition: gls.h:208
@ GLS_MEAS_CTX_CARB_BREAKFAST
Definition: gls.h:203
Glucose Measurement structure. This contains glucose measurement value.
Definition: gls.h:301
@ GLS_MEAS_LOC_EAR
Definition: gls.h:195
gls_meas_loc_t
Glucose measurement location.
Definition: gls.h:192
ieee_float16_t carbohydrate
Definition: gls.h:318
prf_date_time_t base_time
Definition: gls.h:304
@ GLS_MEAS_CTX_MED_LONG
Definition: gls.h:248
uint8_t conn_idx
Definition: gls.h:281
@ GLS_MEAS_TYPE_UNDET_BLOOD
Definition: gls.h:184
gls_evt_type_t evt_type
Definition: gls.h:280
@ GLS_EVT_CTRL_INDICATION_ENABLED
Definition: gls.h:260
ieee_float16_t medication
Definition: gls.h:324
void(* gls_evt_handler_t)(gls_evt_t *p_evt)
Glucose Service event handler type.
Definition: gls.h:292
uint16_t sequence_number
Definition: gls.h:303
gls_meas_type_t
Glucose measurement type.
Definition: gls.h:177
@ GLS_MEAS_CTX_CARB_DRINK
Definition: gls.h:207
uint8_t type
Definition: gls.h:307
@ GLS_EVT_CTRL_INDICATION_DISABLED
Definition: gls.h:261
gls_evt_handler_t evt_handler
Definition: gls.h:338
gls_meas_ctx_health_t
Glucose measurement context health.
Definition: gls.h:233
@ GLS_MEAS_CTX_MED_PREMIX
Definition: gls.h:249
@ GLS_MEAS_TYPE_UNDET_PLASMA
Definition: gls.h:185
@ GLS_EVT_MEAS_NOTIFICATION_DISABLED
Definition: gls.h:257
@ GLS_MEAS_CTX_MEAL_PREPRANDIAL
Definition: gls.h:215
@ GLS_MEAS_CTX_HEALTH_MAJOR
Definition: gls.h:235
gls_meas_ctx_carb_id_t
Glucose measurement context carbohydrate ID.
Definition: gls.h:202
uint8_t flags
Definition: gls.h:315
@ GLS_MEAS_CTX_TESTER_SELF
Definition: gls.h:225
@ GLS_MEAS_LOC_FINGER
Definition: gls.h:193
uint8_t tester_and_health
Definition: gls.h:320
ieee_float16_t glucose_concentration
Definition: gls.h:306
uint16_t exercise_duration
Definition: gls.h:321
@ GLS_MEAS_CTX_MED_RAPID
Definition: gls.h:245
@ GLS_MEAS_TYPE_CONTROL
Definition: gls.h:187
@ GLS_MEAS_TYPE_CAP_PLASMA
Definition: gls.h:179
@ GLS_MEAS_LOC_CONTROL
Definition: gls.h:196
@ GLS_MEAS_CTX_MEAL_CASUAL
Definition: gls.h:218
@ GLS_EVT_CTX_NOTIFICATION_ENABLED
Definition: gls.h:258
@ GLS_MEAS_CTX_MED_INTERMED
Definition: gls.h:247
Glucose Service event.
Definition: gls.h:279
uint8_t exercise_intensity
Definition: gls.h:322
@ GLS_MEAS_CTX_CARB_BRUNCH
Definition: gls.h:209
@ GLS_EVT_MEAS_NOTIFICATION_ENABLED
Definition: gls.h:256
@ GLS_MEAS_CTX_TESTER_PRO
Definition: gls.h:226
sdk_err_t gls_racp_rsp_send(uint8_t conn_idx, uint8_t *p_data, uint16_t length)
Send RACP responce if indication has been enabled.
@ GLS_MEAS_CTX_CARB_DINNER
Definition: gls.h:205
@ GLS_MEAS_TYPE_VEN_BLOOD
Definition: gls.h:180
@ GLS_MEAS_TYPE_ART_BLOOD
Definition: gls.h:182
@ GLS_MEAS_CTX_HEALTH_MINOR
Definition: gls.h:234
uint16_t sdk_err_t
SDK API result type.
Definition: ble_error.h:243
uint8_t sample_location
Definition: gls.h:308
sdk_err_t gls_service_init(gls_init_t *p_gls_init)
Initialize a Glucose Service instance and add in the DB.
@ GLS_MEAS_CTX_TESTER_NOT_AVAIL
Definition: gls.h:228
The date and time structure. The packed size is 7 bytes.
Definition: ble_prf_types.h:101
@ GLS_MEAS_CTX_CARB_SNACK
Definition: gls.h:206
@ GLS_MEAS_CTX_HEALTH_NOT_AVAIL
Definition: gls.h:239
@ GLS_MEAS_LOC_AST
Definition: gls.h:194
@ GLS_MEAS_CTX_HEALTH_MENSES
Definition: gls.h:236
uint8_t flags
Definition: gls.h:302
int16_t time_offset
Definition: gls.h:305
gls_meas_val_t meas_val
Definition: gls.h:331
@ GLS_MEAS_TYPE_ART_PLASMA
Definition: gls.h:183
@ GLS_MEAS_CTX_HEALTH_NONE
Definition: gls.h:238
uint16_t sensor_status_annunciation
Definition: gls.h:309
@ GLS_EVT_CTX_NOTIFICATION_DISABLED
Definition: gls.h:259
gls_meas_ctx_tester_t
Glucose measurement context tester.
Definition: gls.h:224
@ GLS_MEAS_TYPE_CAP_BLOOD
Definition: gls.h:178
uint8_t medication_id
Definition: gls.h:323
uint16_t hba1c
Definition: gls.h:325
@ GLS_EVT_CTRL_WRITE
Definition: gls.h:262
@ GLS_MEAS_CTX_MEAL_BEDTIME
Definition: gls.h:219
uint8_t meal
Definition: gls.h:319
@ GLS_MEAS_CTX_CARB_LUNCH
Definition: gls.h:204
uint16_t char_mask
Definition: gls.h:339
Glucose Service init stucture. This contains all option and data needed for initialization of the ser...
Definition: gls.h:337
gls_meas_ctx_medic_id_t
Glucose measurement context medication ID.
Definition: gls.h:244
Glucose measurement context structure.
Definition: gls.h:314
Profile/Service Utilities API.
@ GLS_MEAS_CTX_MEAL_FASTING
Definition: gls.h:217
@ GLS_EVT_INVALID
Definition: gls.h:255
gls_evt_type_t
Glucose Service event type.
Definition: gls.h:254
uint8_t carbohydrate_id
Definition: gls.h:317
@ GLS_MEAS_CTX_MEAL_POSTPRANDIAL
Definition: gls.h:216
SFLOAT format (IEEE-11073 16-bit FLOAT, defined as a 16-bit value with 12-bit mantissa and 4-bit expo...
Definition: bps.h:139
Glucose measurement record.
Definition: gls.h:330
uint16_t feature
Definition: gls.h:340
@ GLS_MEAS_TYPE_FLUID
Definition: gls.h:186
uint16_t length
Definition: gls.h:283
@ GLS_MEAS_TYPE_VEN_PLASMA
Definition: gls.h:181
@ GLS_MEAS_CTX_MED_SHORT
Definition: gls.h:246
gls_meas_ctx_t meas_ctx
Definition: gls.h:332
@ GLS_MEAS_CTX_HEALTH_STRESS
Definition: gls.h:237
@ GLS_MEAS_LOC_NOT_AVAIL
Definition: gls.h:197
const uint8_t * p_data
Definition: gls.h:282
gls_meas_ctx_meal_t
Glucose measurement context meal.
Definition: gls.h:214
uint8_t extended_flags
Definition: gls.h:316