Wirepas SDK
poslib.h
Go to the documentation of this file.
1 
6 #ifndef _POSLIB_H_
7 #define _POSLIB_H_
8 
9 
10 #if (APP_LIB_STATE_VERSION > 0x205)
11 //#define DA_SUPPORT
12 #endif
13 
14 
18 #define POS_DESTINATION_ENDPOINT 238
19 #define POS_SOURCE_ENDPOINT 238
20 
24 #define POSLIB_MIN_MEAS_RATE_S 8
25 #define POSLIB_MAX_MEAS_RATE_S 86400
26 
30 #define POSLIB_VOLTAGE_SAMPLING_MAX_S 60
31 #define POSLIB_VOLTAGE_FILTER_SAMPLES 30
32 
33 
37 typedef enum
38 {
57 } poslib_ret_e;
58 
62 typedef enum
63 {
71 
75 typedef enum
76 {
80 
84 typedef enum
85 {
86  POSLIB_BLE_OFF = 0, // OFF
87  POSLIB_BLE_ON = 1, // always ON
88  POSLIB_BLE_ON_WHEN_OFFLINE = 2 //activated when outside coverage
90 
94 typedef enum
95 {
105 
109 typedef enum
110 {
115 
116 #define POSLIB_FLAG_EVENT_SUBSCRIBERS_MAX 8
117 
122 typedef enum
123 {
145  POSLIB_FLAG_EVENT_ALL = 511 /* ! Update when adding a new event */
147 
151 typedef enum
152 {
157 
161 typedef enum
162 {
164  // Wirepas defined - required types
167  // Wirepas defined - optional types
173  // 8-15 reserved
174  // Application specific types (use only when standard records not available)
179  // 20-31 reserved. !!! type cannot be > 31
182 
184 #define POSLIB_MBCN_RECORD_MAX_SIZE 16
185 
187 #define POSLIB_MBCN_RECORDS 8
188 
189 #define POSLIB_MBCN_SRC_EP 238
190 #define POSLIB_MBCN_DEST_EP 238
191 
192 typedef enum
193 {
198 
202 typedef struct
203 {
204  uint8_t type; // according to poslib_mbcn_record_types_e
205  uint8_t length; // shall be <= POSLIB_MBCN_RECORD_MAX_SIZE, invalid record when 0
208 
212 typedef struct
213 {
214  bool enabled;
215  uint16_t tx_interval_ms;
218 
219 
223 typedef struct
224 {
225  uint16_t seq;
226  uint16_t tx_interval_ms;
227  uint16_t features;
230 
231 
235 typedef struct
236 {
237  int8_t tx_power;
239  uint16_t tx_interval_ms;
241 
245 typedef struct
246 {
251  uint16_t activation_delay_s; //BLE beacons activation delay when outside coverage
253 
257 typedef struct
258 {
259  bool enabled;
260  uint16_t threshold_mg;
261  uint16_t duration_ms;
263 
267 typedef struct
268 {
272 
276 typedef struct
277 {
278  /* mode defined using PosLib_setConfig */
280  /* class defined using PosLib_setConfig */
282  /* defined using PosLib_setConfig. Used for normal PosLib update period */
284  /* defined using PosLib_setConfig. Used when api call PosLib_motion */
286  /* defined using PosLib_setConfig. Used when autoscan mode and stack is offline */
288  /* defined using PosLib_setConfig. Configuration of ble */
290  /* Motion settings*/
292  /*Mini-beacon settings*/
294  /* DA settings */
297 
301 typedef struct
302 {
303  /* duration for LED to be turned on */
305  /* LED control command sequence */
306  uint8_t led_cmd_seq;
308 
310 typedef struct
311 {
312  uint16_t event_id;
316 
323 
330 
337 
344 
352 
358 
368 
376 
382 
392  uint8_t * id);
393 
398 void PosLib_eventDeregister(uint8_t id);
399 
407 bool PosLib_decodeMbcn(uint8_t * buf, uint8_t length, poslib_mbcn_data_t * mbcn);
408 
430 #endif
poslib_mbcn_config_t::tx_interval_ms
uint16_t tx_interval_ms
Definition: poslib.h:215
POSLIB_FLAG_EVENT_OFLINE
@ POSLIB_FLAG_EVENT_OFLINE
Definition: poslib.h:135
POSLIB_FLAG_EVENT_UPDATE_END
@ POSLIB_FLAG_EVENT_UPDATE_END
Definition: poslib.h:129
poslib_motion_mon_settings_t
position library motion settings.
Definition: poslib.h:257
poslib_settings_t::update_period_static_s
uint32_t update_period_static_s
Definition: poslib.h:283
POSLIB_MBCN_TX_INTERVAL_500
@ POSLIB_MBCN_TX_INTERVAL_500
Definition: poslib.h:195
POSLIB_EDDYSTONE
@ POSLIB_EDDYSTONE
Definition: poslib.h:111
poslib_mbcn_data_t::features
uint16_t features
Definition: poslib.h:227
ble_beacon_settings_t::mode
poslib_ble_mode_e mode
Definition: poslib.h:248
PosLib_sendData
app_lib_data_send_res_e PosLib_sendData(app_lib_data_to_send_t *data, app_lib_data_data_sent_cb_f sent_cb)
Send data. The packet to send is represented as a app_lib_data_to_send_t struct. In node has Advertis...
poslib_da_settings_t::routing_enabled
bool routing_enabled
Definition: poslib.h:269
POSLIB_MBCN_X
@ POSLIB_MBCN_X
Definition: poslib.h:170
POSLIB_FLAG_EVENT_info_t
Definition: poslib.h:310
app_lib_data_send_res_e
app_lib_data_send_res_e
A result code returned from lib_data->sendData().
Definition: wms_data.h:141
POSLIB_CLASS_F
@ POSLIB_CLASS_F
Definition: poslib.h:103
poslib_ble_mode_config_t::channels
app_lib_beacon_tx_channels_mask_e channels
Definition: poslib.h:238
PosLib_decodeMbcn
bool PosLib_decodeMbcn(uint8_t *buf, uint8_t length, poslib_mbcn_data_t *mbcn)
Decodes the mini-beacon payload.
poslib_ble_mode_config_t::tx_power
int8_t tx_power
Definition: poslib.h:237
POSLIB_MBCN_Y
@ POSLIB_MBCN_Y
Definition: poslib.h:171
PosLib_motion
poslib_ret_e PosLib_motion(poslib_motion_mode_e mode)
Used to indicate that the tag is static or dynamic. The update rate used will be adjusted according t...
POSLIB_FLAG_EVENT_CONFIG_CHANGE
@ POSLIB_FLAG_EVENT_CONFIG_CHANGE
Definition: poslib.h:139
POSLIB_MOTION_STATIC
@ POSLIB_MOTION_STATIC
Definition: poslib.h:77
poslib_mbcn_tx_interval_e
poslib_mbcn_tx_interval_e
Definition: poslib.h:192
ble_beacon_settings_t::eddystone
poslib_ble_mode_config_t eddystone
Definition: poslib.h:249
POSLIB_MBCN_CUSTOM_4
@ POSLIB_MBCN_CUSTOM_4
Definition: poslib.h:178
POSLIB_IBEACON
@ POSLIB_IBEACON
Definition: poslib.h:112
poslib_mbcn_config_t
defines mini-beacon configuration.
Definition: poslib.h:212
PosLib_eventDeregister
void PosLib_eventDeregister(uint8_t id)
De-register the event subscriber with the provided id.
POSLIB_MBCN_RECORD_MAX_SIZE
#define POSLIB_MBCN_RECORD_MAX_SIZE
Definition: poslib.h:184
POSLIB_MBCN_CUSTOM_3
@ POSLIB_MBCN_CUSTOM_3
Definition: poslib.h:177
poslib_settings_t::node_mode
poslib_mode_e node_mode
Definition: poslib.h:279
POSLIB_FLAG_EVENT_ONLINE
@ POSLIB_FLAG_EVENT_ONLINE
Definition: poslib.h:137
POS_RET_OK
@ POS_RET_OK
Definition: poslib.h:40
POSLIB_FLAG_EVENT_info_t::nrls_sleep_time_sec
uint32_t nrls_sleep_time_sec
Definition: poslib.h:314
POSLIB_MBCN_TX_INTERVAL
@ POSLIB_MBCN_TX_INTERVAL
Definition: poslib.h:165
POSLIB_BLE_OFF
@ POSLIB_BLE_OFF
Definition: poslib.h:86
poslib_settings_t::node_class
poslib_class_e node_class
Definition: poslib.h:281
poslib_motion_mode_e
poslib_motion_mode_e
defines the position motion mode.
Definition: poslib.h:75
POSLIB_CLASS_B
@ POSLIB_CLASS_B
Definition: poslib.h:99
POSLIB_FLAG_EVENT_LED_OFF
@ POSLIB_FLAG_EVENT_LED_OFF
Definition: poslib.h:143
poslib_ret_e
poslib_ret_e
Return codes of positioning functions.
Definition: poslib.h:37
poslib_mbcn_data_t
defines mini-beacon data payload.
Definition: poslib.h:223
PosLib_startOneshot
poslib_ret_e PosLib_startOneshot(void)
Triggers one position update. If PosLib is started the scheduled operation will continue after the on...
POSLIB_CLASS_A
@ POSLIB_CLASS_A
Definition: poslib.h:98
poslib_da_settings_t::follow_network
bool follow_network
Definition: poslib.h:270
POSLIB_MBCN_Z
@ POSLIB_MBCN_Z
Definition: poslib.h:172
PosLib_setConfig
poslib_ret_e PosLib_setConfig(poslib_settings_t *settings)
Sets PosLib configuration.
POSLIB_CLASS_DEFAULT
@ POSLIB_CLASS_DEFAULT
Definition: poslib.h:97
poslib_mode_e
poslib_mode_e
defines the device's positioning mode.
Definition: poslib.h:62
POS_RET_INVALID_STATE
@ POS_RET_INVALID_STATE
Definition: poslib.h:42
poslib_ble_mode_e
poslib_ble_mode_e
defines the state (started/stopped) of the BLE beacon sent by PosLib
Definition: poslib.h:84
poslib_mbcn_data_t::seq
uint16_t seq
Definition: poslib.h:225
PosLib_stopPeriodic
poslib_ret_e PosLib_stopPeriodic(void)
Stops the positioning updates.
POSLIB_BLE_ON
@ POSLIB_BLE_ON
Definition: poslib.h:87
app_lib_data_data_sent_cb_f
void(* app_lib_data_data_sent_cb_f)(const app_lib_data_sent_status_t *status)
Sent packet tracking callback.
Definition: wms_data.h:420
POSLIB_MODE_NRLS_TAG
@ POSLIB_MODE_NRLS_TAG
Definition: poslib.h:64
poslib_ble_mode_config_t
defines BLE mode mode configuration.
Definition: poslib.h:235
POSLIB_MODE_AUTOSCAN_ANCHOR
@ POSLIB_MODE_AUTOSCAN_ANCHOR
Definition: poslib.h:66
PosLib_getConfig
poslib_ret_e PosLib_getConfig(poslib_settings_t *settings)
Gets PosLib configuration.
POSLIB_MBCN_CUSTOM_2
@ POSLIB_MBCN_CUSTOM_2
Definition: poslib.h:176
poslib_mbcn_record_t::type
uint8_t type
Definition: poslib.h:204
POS_RET_EVENT_REG_ERROR
@ POS_RET_EVENT_REG_ERROR
Definition: poslib.h:54
POSLIB_BLE_ON_WHEN_OFFLINE
@ POSLIB_BLE_ON_WHEN_OFFLINE
Definition: poslib.h:88
POSLIB_MBCN_FEATURES
@ POSLIB_MBCN_FEATURES
Definition: poslib.h:166
POSLIB_MBCN_CUSTOM_1
@ POSLIB_MBCN_CUSTOM_1
Definition: poslib.h:175
poslib_mbcn_record_t
defines mini-beacon record.
Definition: poslib.h:202
POSLIB_MOTION_DYNAMIC
@ POSLIB_MOTION_DYNAMIC
Definition: poslib.h:78
poslib_events_e
poslib_events_e
Defines the events triggered by PosLib.
Definition: poslib.h:122
POSLIB_MODE_OPPORTUNISTIC_ANCHOR
@ POSLIB_MODE_OPPORTUNISTIC_ANCHOR
Definition: poslib.h:67
POSLIB_CLASS_C
@ POSLIB_CLASS_C
Definition: poslib.h:100
POSLIB_IDLE
@ POSLIB_IDLE
Definition: poslib.h:154
poslib_settings_t::ble
ble_beacon_settings_t ble
Definition: poslib.h:289
PosLib_status
poslib_status_e PosLib_status(void)
Returns the current status of PosLib.
POS_RET_MOTION_NOT_ENABLED
@ POS_RET_MOTION_NOT_ENABLED
Definition: poslib.h:56
POSLIB_UPDATE_START
@ POSLIB_UPDATE_START
Definition: poslib.h:155
app_lib_data_to_send_t
A struct for lib_data->sendData().
Definition: wms_data.h:331
poslib_settings_t::update_period_dynamic_s
uint32_t update_period_dynamic_s
Definition: poslib.h:285
POSLIB_FLAG_EVENT_NONE
@ POSLIB_FLAG_EVENT_NONE
Definition: poslib.h:125
ble_beacon_settings_t::type
poslib_ble_type_e type
Definition: poslib.h:247
poslib_events_listen_info_f
void(* poslib_events_listen_info_f)(POSLIB_FLAG_EVENT_info_t *msg)
Function used with POSLIB_FLAG_EVENT_setCb.
Definition: poslib.h:322
ble_beacon_settings_t::activation_delay_s
uint16_t activation_delay_s
Definition: poslib.h:251
poslib_da_settings_t
position library DA settings.
Definition: poslib.h:267
POSLIB_FLAG_EVENT_ALL
@ POSLIB_FLAG_EVENT_ALL
Definition: poslib.h:145
poslib_class_e
poslib_class_e
defines the device's operational class.
Definition: poslib.h:94
poslib_settings_t::motion
poslib_motion_mon_settings_t motion
Definition: poslib.h:291
POS_RET_INVALID_DATA
@ POS_RET_INVALID_DATA
Definition: poslib.h:46
app_lib_beacon_tx_channels_mask_e
app_lib_beacon_tx_channels_mask_e
Definition: wms_beacon_tx.h:92
POSLIB_CLASS_NODE_SPECIFIC
@ POSLIB_CLASS_NODE_SPECIFIC
Definition: poslib.h:96
POSLIB_MBCN_RECORDS
#define POSLIB_MBCN_RECORDS
Definition: poslib.h:187
POSLIB_STOPPED
@ POSLIB_STOPPED
Definition: poslib.h:153
POSLIB_MODE_DA_TAG
@ POSLIB_MODE_DA_TAG
Definition: poslib.h:68
POS_RET_NOT_CONFIGURED
@ POS_RET_NOT_CONFIGURED
Definition: poslib.h:52
POSLIB_MBCN_INVALID_TYPE
@ POSLIB_MBCN_INVALID_TYPE
Definition: poslib.h:163
POSLIB_MBCN_AREA_ID
@ POSLIB_MBCN_AREA_ID
Definition: poslib.h:168
PosLib_eventRegister
poslib_ret_e PosLib_eventRegister(poslib_events_e event, poslib_events_listen_info_f cb, uint8_t *id)
Register an event subscriber.
POSLIB_FLAG_EVENT_info_t::event_id
uint16_t event_id
Definition: poslib.h:312
POSLIB_MODE_ENDS
@ POSLIB_MODE_ENDS
Definition: poslib.h:69
POSLIB_FLAG_EVENT_info_t::time_hp
app_lib_time_timestamp_hp_t time_hp
Definition: poslib.h:313
poslib_ble_type_e
poslib_ble_type_e
Beacon devices types.
Definition: poslib.h:109
poslib_mbcn_record_types_e
poslib_mbcn_record_types_e
defines the mini-beacon payload records types
Definition: poslib.h:161
poslib_settings_t
position library settings.
Definition: poslib.h:276
POSLIB_CLASS_E
@ POSLIB_CLASS_E
Definition: poslib.h:102
POSLIB_MODE_AUTOSCAN_TAG
@ POSLIB_MODE_AUTOSCAN_TAG
Definition: poslib.h:65
poslib_events_callback_f
void(* poslib_events_callback_f)(poslib_events_listen_info_f callback)
This callback is used to receive Poslib generated events.
Definition: poslib.h:329
POSLIB_CLASS_D
@ POSLIB_CLASS_D
Definition: poslib.h:101
POSLIB_BEACON_ALL
@ POSLIB_BEACON_ALL
Definition: poslib.h:113
POSLIB_MBCN_TX_INTERVAL_DEFAULT
@ POSLIB_MBCN_TX_INTERVAL_DEFAULT
Definition: poslib.h:194
POS_RET_INVALID_PARAM
@ POS_RET_INVALID_PARAM
Definition: poslib.h:44
PosLib_startPeriodic
poslib_ret_e PosLib_startPeriodic(void)
Start the positioning updates according to provided configuration. Calls PosLib initialization functi...
ble_beacon_settings_t::ibeacon
poslib_ble_mode_config_t ibeacon
Definition: poslib.h:250
poslib_mbcn_record_t::length
uint8_t length
Definition: poslib.h:205
poslib_settings_t::update_period_offline_s
uint32_t update_period_offline_s
Definition: poslib.h:287
POSLIB_FLAG_EVENT_UPDATE_START
@ POSLIB_FLAG_EVENT_UPDATE_START
Definition: poslib.h:127
POSLIB_FLAG_EVENT_BLE_STOP
@ POSLIB_FLAG_EVENT_BLE_STOP
Definition: poslib.h:133
poslib_settings_t::da
poslib_da_settings_t da
Definition: poslib.h:295
POS_RET_LIB_ERROR
@ POS_RET_LIB_ERROR
Definition: poslib.h:48
POSLIB_FLAG_EVENT_BLE_START
@ POSLIB_FLAG_EVENT_BLE_START
Definition: poslib.h:131
poslib_mbcn_config_t::enabled
bool enabled
Definition: poslib.h:214
POSLIB_MBCN_MAX_TYPE
@ POSLIB_MBCN_MAX_TYPE
Definition: poslib.h:180
poslib_aux_settings_t::led_on_duration_s
uint16_t led_on_duration_s
Definition: poslib.h:304
poslib_settings_t::mbcn
poslib_mbcn_config_t mbcn
Definition: poslib.h:293
POSLIB_MBCN_FLOOR_ID
@ POSLIB_MBCN_FLOOR_ID
Definition: poslib.h:169
app_lib_time_timestamp_hp_t
uint32_t app_lib_time_timestamp_hp_t
Highest-precision timestamp type available on the platform.
Definition: wms_time.h:41
POS_RET_INTERNAL_ERROR
@ POS_RET_INTERNAL_ERROR
Definition: poslib.h:50
poslib_aux_settings_t::led_cmd_seq
uint8_t led_cmd_seq
Definition: poslib.h:306
poslib_aux_settings_t
positioning library auxiliary settings
Definition: poslib.h:301
poslib_status_e
poslib_status_e
defines status returned in PosLib_status().
Definition: poslib.h:151
ble_beacon_settings_t
position library ble settings.
Definition: poslib.h:245
POSLIB_MBCN_TX_INTERVAL_250
@ POSLIB_MBCN_TX_INTERVAL_250
Definition: poslib.h:196
poslib_motion_mon_settings_t::threshold_mg
uint16_t threshold_mg
Definition: poslib.h:260
poslib_motion_mon_settings_t::duration_ms
uint16_t duration_ms
Definition: poslib.h:261
POSLIB_FLAG_EVENT_LED_ON
@ POSLIB_FLAG_EVENT_LED_ON
Definition: poslib.h:141