Wirepas SDK
wms_state.h
Go to the documentation of this file.
1/* Copyright 2017 Wirepas Ltd. All Rights Reserved.
2 *
3 * See file LICENSE.txt for full license details.
4 *
5 */
6
15#ifndef APP_LIB_STATE_H_
16#define APP_LIB_STATE_H_
17
18#include <stdlib.h>
19#include <stdint.h>
20#include <stdbool.h>
21#include <limits.h>
22
23#include "wms_app.h"
24#include "wms_settings.h" // For app_lib_settings_net_channel_t
25
27#define APP_LIB_STATE_NAME 0x02f9c165
28
30#define APP_LIB_STATE_VERSION 0x20F
31
37#define APP_LIB_STATE_INVALID_ROUTE_COST UINT8_MAX
38
44#define APP_LIB_STATE_COST_UNKNOWN 0
45
51#define APP_LIB_STATE_LINKREL_UNKNOWN 0
52
53
69
85
97
146
159
175
185
194
198typedef struct
199{
212 int8_t rssi;
218 int8_t txpower;
219 bool is_sink;
220 bool is_ll;
221 uint8_t cost;
222 uint8_t type;
232
241
258
274
285typedef struct
286{
291 uint8_t quality;
293 uint8_t error_codes;
295
299typedef enum
300{
301 // Scan originated by application (by using call @ref
302 // app_lib_state_start_scan_nbors_f "lib_state->startScanNbors()")
304 // Scan originated by stack
307
311typedef struct
312{
313 // Type of scan, @ref app_lib_state_scan_type_e
314 uint8_t scan_type;
316
320typedef struct
321{
322 // Type (originator) of the scan
324 // Scan completion status: complete (true) or aborted (false)
327
334 (const app_lib_state_beacon_rx_t * beacon);
335
365
383
397typedef uint8_t (*app_lib_state_get_stack_state_f)(void);
398
407typedef app_res_e (*app_lib_state_get_access_cycle_f)(uint16_t * ac_value_p);
408
432
477 (app_lib_stack_event_e event, void *param);
478
487
506
531 (app_lib_state_nbor_list_t * nbors_list);
532
541
556typedef app_res_e (*app_lib_state_get_sink_cost_f)(uint8_t * cost_p);
557
577typedef app_res_e (*app_lib_state_set_sink_cost_f)(const uint8_t cost);
578
579
580
589
608
617
623 (void);
624
645
646#endif /* APP_LIB_STATE_H_ */
app_res_e
Definition wms_app.h:202
uint32_t app_addr_t
Definition wms_app.h:228
uint8_t app_lib_settings_net_channel_t
Channel type definition.
app_lib_state_get_install_quality_f getInstallQual
Definition wms_state.h:641
app_lib_settings_net_channel_t(* app_lib_state_get_cluster_channel_t)(void)
Query cluster channel (i.e. operating channel) currently in use.
Definition wms_state.h:623
bool is_ll
Device is LL.
Definition wms_state.h:220
app_lib_state_get_access_cycle_f getAccessCycle
Definition wms_state.h:633
install_quality_error_code_e
Error codes for installation quality, if an error code is active, corrective action regarding the ins...
Definition wms_state.h:264
@ APP_LIB_STATE_INSTALL_QUALITY_ERROR_NONE
Definition wms_state.h:266
@ APP_LIB_STATE_INSTALL_QUALITY_ERROR_BADRSSI
Definition wms_state.h:272
@ APP_LIB_STATE_INSTALL_QUALITY_ERROR_NOROUTE
Definition wms_state.h:268
@ APP_LIB_STATE_INSTALL_QUALITY_ERROR_NONBORS
Definition wms_state.h:270
app_lib_state_scan_type_e scan_type
Definition wms_state.h:323
app_lib_state_set_on_beacon_cb_f setOnBeaconCb
Definition wms_state.h:636
app_lib_state_nbor_type_e
Neighbor type.
Definition wms_state.h:60
@ APP_LIB_STATE_NEIGHBOR_IS_NEXT_HOP
Definition wms_state.h:63
@ APP_LIB_STATE_NEIGHBOR_IS_MEMBER
Definition wms_state.h:65
@ APP_LIB_STATE_NEIGHBOR_IS_CLUSTER
Definition wms_state.h:67
app_lib_state_scan_stop_f stopScanNbors
Definition wms_state.h:640
app_res_e(* app_lib_state_get_install_quality_f)(app_lib_state_install_quality_t *qual_out)
Read installation quality, app_lib_state_install_quality_t.
Definition wms_state.h:616
app_res_e(* app_lib_state_set_sink_cost_f)(const uint8_t cost)
Set additional penalty for the sink usage.
Definition wms_state.h:577
app_res_e(* app_lib_state_stop_stack_f)(void)
Stop the stack.
Definition wms_state.h:382
int8_t rssi
RSSI in dBm.
Definition wms_state.h:212
app_res_e(* app_lib_state_get_nbors_f)(app_lib_state_nbor_list_t *nbors_list)
Get list of neighbors.
Definition wms_state.h:531
app_res_e(* app_lib_state_start_scan_nbors_f)(void)
Start neighbor scan.
Definition wms_state.h:505
app_lib_state_route_state_e state
Definition wms_state.h:248
void(* app_lib_state_on_stack_event_cb_f)(app_lib_stack_event_e event, void *param)
Function type stack events callback.
Definition wms_state.h:477
app_lib_state_get_route_f getRouteInfo
Definition wms_state.h:639
app_lib_state_set_stack_event_cb_f setOnStackEventCb
Definition wms_state.h:642
app_lib_state_stop_stack_f stopStack
Definition wms_state.h:631
uint8_t(* app_lib_state_get_stack_state_f)(void)
Get the stack state.
Definition wms_state.h:397
app_lib_state_route_state_e
Route state.
Definition wms_state.h:180
@ APP_LIB_STATE_ROUTE_STATE_PENDING
Acquiring next hop / route.
Definition wms_state.h:182
@ APP_LIB_STATE_ROUTE_STATE_INVALID
No next hop / route.
Definition wms_state.h:181
@ APP_LIB_STATE_ROUTE_STATE_VALID
Valid next hop / route.
Definition wms_state.h:183
app_lib_state_get_sink_cost_f getSinkCost
Definition wms_state.h:637
app_lib_state_beacon_type_e
Type for beacons, passed in app_lib_state_beacon_rx_t.
Definition wms_state.h:190
@ APP_LIB_STATE_BEACON_TYPE_CB
Cluster beacon.
Definition wms_state.h:192
@ APP_LIB_STATE_BEACON_TYPE_NB
Network beacon.
Definition wms_state.h:191
bool is_da_support
Sender supports Directed Advertiser sending packets to it.
Definition wms_state.h:226
bool is_sink
Device is sink.
Definition wms_state.h:219
app_lib_state_start_stack_f startStack
Definition wms_state.h:630
app_res_e(* app_lib_state_get_route_f)(app_lib_state_route_info_t *info)
Get route information.
Definition wms_state.h:588
void(* app_lib_state_on_beacon_cb_f)(const app_lib_state_beacon_rx_t *beacon)
Function type for a beacon reception callback.
Definition wms_state.h:334
app_lib_settings_net_channel_t channel
Definition wms_state.h:128
bool is_secured
This beacon is secured with encryption.
Definition wms_state.h:230
app_res_e(* app_lib_state_start_stack_f)(void)
Start the stack.
Definition wms_state.h:364
app_lib_state_nbor_info_t * nbors
Definition wms_state.h:157
app_lib_state_stack_state_e
Stack state flags.
Definition wms_state.h:164
@ APP_LIB_STATE_NETWORK_ADDRESS_NOT_SET
Network address is not set.
Definition wms_state.h:168
@ APP_LIB_STATE_NODE_ADDRESS_NOT_SET
Node address is not set.
Definition wms_state.h:167
@ APP_LIB_STATE_NETWORK_CHANNEL_NOT_SET
Network channel is not set.
Definition wms_state.h:169
@ APP_LIB_STATE_STOPPED
Stack is stopped.
Definition wms_state.h:166
@ APP_LIB_STATE_ACCESS_DENIED
Operation is not allowed.
Definition wms_state.h:173
@ APP_LIB_STATE_STARTED
Stack is started.
Definition wms_state.h:165
@ APP_LIB_STATE_ROLE_NOT_SET
Node role is not set.
Definition wms_state.h:170
@ APP_LIB_STATE_APP_CONFIG_DATA_NOT_SET
Definition wms_state.h:171
app_res_e(* app_lib_state_set_stack_event_cb_f)(app_lib_state_on_stack_event_cb_f cb)
Register callback for stack events.
Definition wms_state.h:486
app_lib_stack_event_e
List of event generated by the stack when registering to app_lib_state_set_stack_event_cb_f.
Definition wms_state.h:415
@ APP_LIB_STATE_STACK_EVENT_SCRAT_XFER_STARTED
Definition wms_state.h:426
@ APP_LIB_STATE_STACK_EVENT_ROUTE_CHANGED
Definition wms_state.h:430
@ APP_LIB_STATE_STACK_EVENT_SCAN_STARTED
Definition wms_state.h:421
@ APP_LIB_STATE_STACK_EVENT_SCRAT_XFER_STOPPED
Definition wms_state.h:428
@ APP_LIB_STATE_STACK_EVENT_SCAN_STOPPED
Definition wms_state.h:423
@ APP_LIB_STATE_STACK_EVENT_STACK_STARTED
Definition wms_state.h:419
@ APP_LIB_STATE_STACK_EVENT_STACK_STOPPED
Definition wms_state.h:417
app_lib_state_start_scan_nbors_f startScanNbors
Definition wms_state.h:634
app_lib_state_scan_type_e
Types of scans.
Definition wms_state.h:300
@ SCAN_TYPE_APP_ORIGINATED
Definition wms_state.h:303
@ SCAN_TYPE_STACK_ORIGINATED
Definition wms_state.h:305
app_lib_state_get_stack_state_f getStackState
Definition wms_state.h:632
app_lib_state_get_nbors_f getNbors
Definition wms_state.h:635
app_lib_state_diradv_support_e
Support type for directed advertiser, i.e. does neighbor support sending directed advertiser packets ...
Definition wms_state.h:75
@ APP_LIB_STATE_DIRADV_NOT_SUPPORTED
Definition wms_state.h:80
@ APP_LIB_STATE_DIRADV_UNKNOWN
Definition wms_state.h:83
@ APP_LIB_STATE_DIRADV_SUPPORTED
Definition wms_state.h:78
app_lib_state_set_sink_cost_f setSinkCost
Definition wms_state.h:638
int8_t txpower
Tx power in dB This equals maximum transmission power that sender can transmit (which is used when tr...
Definition wms_state.h:218
app_addr_t address
Address of the beacon sender.
Definition wms_state.h:200
app_res_e(* app_lib_state_get_sink_cost_f)(uint8_t *cost_p)
Query the currently set additional penalty for the sink usage.
Definition wms_state.h:556
app_lib_state_scan_nbors_type_e
Scan neighbor type to specify the scans that trigger the callback.
Definition wms_state.h:90
@ APP_LIB_STATE_SCAN_NBORS_ALL
Definition wms_state.h:92
@ APP_LIB_STATE_SCAN_NBORS_ONLY_REQUESTED
Definition wms_state.h:95
app_res_e(* app_lib_state_get_access_cycle_f)(uint16_t *ac_value_p)
Get current access cycle.
Definition wms_state.h:407
app_res_e(* app_lib_state_scan_stop_f)(void)
Stops an ongoing scan operation before it has ended.
Definition wms_state.h:607
app_res_e(* app_lib_state_set_on_beacon_cb_f)(app_lib_state_on_beacon_cb_f cb)
Set a callback to be called when a beacon is received.
Definition wms_state.h:540
app_lib_state_get_cluster_channel_t getClusterChannel
Definition wms_state.h:643
Neighbors info definition.
Definition wms_state.h:102
Neighbors list definition.
Definition wms_state.h:151
Information on started scan.
Definition wms_state.h:312
Structure for route information.
Definition wms_state.h:246
List of library functions.
Definition wms_state.h:629
Structure to hold the information about received beacons.
Definition wms_state.h:199
Information on neighbor scan.
Definition wms_state.h:321
Installation quality information. Contains information about the nodes installation location i....
Definition wms_state.h:286