Wirepas SDK
wms_data.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 
19 #ifndef APP_LIB_DATA_H_
20 #define APP_LIB_DATA_H_
21 
22 #include <stdlib.h>
23 #include <stdint.h>
24 #include <stdbool.h>
25 
26 #include "wms_app.h"
27 
29 #define APP_LIB_DATA_NAME 0x0003f161
30 
31 
32 #define APP_LIB_DATA_VERSION 0x212
33 
52 typedef uint16_t app_lib_data_tracking_id_t;
53 
60 #define APP_LIB_DATA_NO_TRACKING_ID (app_lib_data_tracking_id_t)(-1)
61 
72 #define APP_LIB_DATA_MAX_APP_CONFIG_NUM_BYTES 80
73 
81 typedef enum
82 {
89 
93 typedef enum
94 {
132 
136 typedef enum
137 {
177 
184 typedef enum
185 {
198 
205 typedef enum
206 {
223 
231 typedef enum
232 {
246 
247 
258 #define APP_LIB_DATA_RX_HOPS_UNDETERMINED 0
259 
263 typedef struct
264 {
266  uint16_t packet_id;
268  uint16_t fragment_offset;
272 
279 typedef struct
280 {
282  const uint8_t * bytes;
284  size_t num_bytes;
288  uint32_t delay;
292  uint8_t src_endpoint;
294  uint8_t dest_endpoint;
296  uint8_t hops;
307  int8_t tx_power;
311  int8_t rssi;
313  uint32_t delay_hp;
319 
323 typedef struct
324 {
326  const uint8_t * bytes;
328  size_t num_bytes;
338  uint8_t flags;
340  uint8_t src_endpoint;
342  uint8_t dest_endpoint;
346  uint8_t hop_limit;
352 
360 typedef struct
361 {
368  uint32_t queue_time;
373  uint8_t src_endpoint;
375  uint8_t dest_endpoint;
377  bool success;
379 
396 
406 typedef void
408 
426 typedef void (*app_lib_data_new_app_config_cb_f)(const uint8_t * bytes,
427  uint8_t seq,
428  uint16_t interval);
429 
469 typedef app_res_e
471 
500 typedef app_res_e
502 
517 typedef app_res_e
520 
522 typedef struct
523 {
531 
532 
549 
569 typedef size_t
571 
597 typedef app_res_e
598  (*app_lib_data_get_num_free_buffers_f)(size_t * num_buffers_p);
599 
616 
640 typedef void
642 
669  (*app_lib_data_read_app_config_f)(uint8_t * bytes,
670  uint8_t * seq,
671  uint16_t * interval);
672 
682 typedef size_t
684 
685 
715  (*app_lib_data_write_app_config_data_f)(const uint8_t * bytes);
716 
723 typedef enum
724 {
745 
749 typedef struct
750 {
752  uint8_t * bytes;
754  uint16_t endpoint;
756  uint8_t length;
758 
805  const app_lib_config_data_item_t * item);
806 
839 
840 
863 typedef uint8_t (*app_lib_data_get_all_config_data_endpoints_f)(uint16_t * endpoints, uint8_t max_items);
864 
879  const app_lib_config_data_item_t * item);
880 
888 typedef app_res_e
891 
921 
953 typedef app_res_e
955 
960 #define APP_DATA_DISABLE_LOCAL_MULTICAST 0
961 
967 {
972  uint8_t hops_left;
974 
991 typedef app_res_e
993 
999 typedef app_res_e
1001 
1005 typedef struct
1006 {
1031 } app_lib_data_t;
1032 
1033 #endif /* APP_LIB_DATA_H_ */
app_lib_data_get_app_config_num_bytes_f
size_t(* app_lib_data_get_app_config_num_bytes_f)(void)
Get size of appconfig "app config".
Definition: wms_data.h:683
APP_LIB_DATA_SEND_RES_OUT_OF_MEMORY
@ APP_LIB_DATA_SEND_RES_OUT_OF_MEMORY
Definition: wms_data.h:147
APP_LIB_DATA_SEND_FLAG_TRACK
@ APP_LIB_DATA_SEND_FLAG_TRACK
Definition: wms_data.h:100
app_lib_data_set_fragmented_mode_f
app_res_e(* app_lib_data_set_fragmented_mode_f)(const app_lib_data_fragmented_mode_e mode)
Set the fragmentation behavior for RX packets.
Definition: wms_data.h:1000
app_lib_data_sent_status_t
Struct to tracking callback function.
Definition: wms_data.h:360
app_lib_data_t::writeDiagnosticInterval
app_lib_data_write_diagnostic_interval_f writeDiagnosticInterval
Definition: wms_data.h:1018
app_lib_data_data_size_t::max_data_size
size_t max_data_size
Definition: wms_data.h:525
app_lib_data_t::setDataSentCb
app_lib_data_set_data_sent_cb_f setDataSentCb
Definition: wms_data.h:1008
app_lib_data_received_t::rssi
int8_t rssi
Definition: wms_data.h:311
APP_LIB_DATA_CONFIG_DATA_RES_INVALID_INPUT
@ APP_LIB_DATA_CONFIG_DATA_RES_INVALID_INPUT
Definition: wms_data.h:739
app_lib_data_allow_reception_f
void(* app_lib_data_allow_reception_f)(bool allow)
Allow or block reception The application may temporarily tell the stack to not call the reception dat...
Definition: wms_data.h:641
app_lib_data_send_res_e
app_lib_data_send_res_e
A result code returned from lib_data->sendData().
Definition: wms_data.h:136
APP_LIB_DATA_APP_CONFIG_RES_INVALID_ROLE
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_ROLE
Definition: wms_data.h:210
app_lib_data_qos_e
app_lib_data_qos_e
Data quality of service class. Used when sending and receiving data packets.
Definition: wms_data.h:81
app_lib_data_t::readAppConfig
app_lib_data_read_app_config_f readAppConfig
Definition: wms_data.h:1015
app_lib_data_t::disableBootDiagnostics
app_lib_data_disable_boot_diagnostics_f disableBootDiagnostics
Definition: wms_data.h:1030
APP_LIB_DATA_APP_CONFIG_RES_INVALID_SEQ
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_SEQ
Definition: wms_data.h:215
APP_LIB_DATA_CONFIG_DATA_RES_NOT_SUPPORTED
@ APP_LIB_DATA_CONFIG_DATA_RES_NOT_SUPPORTED
Definition: wms_data.h:741
app_lib_data_t::setNewAppConfigCb
app_lib_data_set_new_app_config_cb_f setNewAppConfigCb
Definition: wms_data.h:1009
app_lib_data_set_config_data_item_f
app_lib_data_config_data_res_e(* app_lib_data_set_config_data_item_f)(const app_lib_config_data_item_t *item)
Set the config data item of a specific endpoint. If a config data item is already set,...
Definition: wms_data.h:804
APP_LIB_DATA_SEND_FLAG_UNACK_CSMA_CA
@ APP_LIB_DATA_SEND_FLAG_UNACK_CSMA_CA
Definition: wms_data.h:120
APP_LIB_DATA_SEND_NW_CH_ONLY
@ APP_LIB_DATA_SEND_NW_CH_ONLY
Definition: wms_data.h:127
app_lib_data_new_app_config_cb_f
void(* app_lib_data_new_app_config_cb_f)(const uint8_t *bytes, uint8_t seq, uint16_t interval)
Type of the new app config callback function.
Definition: wms_data.h:426
APP_LIB_DATA_SEND_RES_INVALID_PARAM
@ APP_LIB_DATA_SEND_RES_INVALID_PARAM
Definition: wms_data.h:175
app_lib_data_to_send_t::tracking_id
app_lib_data_tracking_id_t tracking_id
Definition: wms_data.h:334
app_lib_data_disable_boot_diagnostics_f
app_res_e(* app_lib_data_disable_boot_diagnostics_f)(void)
Disable power on boot diagnostics.
Definition: wms_data.h:954
app_res_e
app_res_e
Definition: wms_app.h:201
APP_LIB_DATA_SEND_RES_INVALID_QOS
@ APP_LIB_DATA_SEND_RES_INVALID_QOS
Definition: wms_data.h:143
app_lib_data_received_t::src_endpoint
uint8_t src_endpoint
Definition: wms_data.h:292
APP_LIB_DATA_SEND_FLAG_NONE
@ APP_LIB_DATA_SEND_FLAG_NONE
Definition: wms_data.h:96
app_lib_data_received_t::dest_address
app_addr_t dest_address
Definition: wms_data.h:300
APP_LIB_DATA_APP_CONFIG_RES_INVALID_NULL_POINTER
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_NULL_POINTER
Definition: wms_data.h:219
APP_LIB_DATA_SEND_RES_INVALID_DEST_ADDRESS
@ APP_LIB_DATA_SEND_RES_INVALID_DEST_ADDRESS
Definition: wms_data.h:152
app_lib_data_t
List of library services.
Definition: wms_data.h:1005
wms_app.h
app_lib_data_app_config_res_e
app_lib_data_app_config_res_e
Result of the app config.
Definition: wms_data.h:205
APP_LIB_DATA_CONFIG_DATA_RES_INVALID_ROLE
@ APP_LIB_DATA_CONFIG_DATA_RES_INVALID_ROLE
Definition: wms_data.h:728
app_lib_data_received_t::num_bytes
size_t num_bytes
Definition: wms_data.h:284
app_lib_data_data_size_t
Definition: wms_data.h:522
APP_LIB_DATA_RECEIVE_RES_HANDLED
@ APP_LIB_DATA_RECEIVE_RES_HANDLED
Definition: wms_data.h:188
app_lib_data_get_num_free_buffers_f
app_res_e(* app_lib_data_get_num_free_buffers_f)(size_t *num_buffers_p)
Get number of currently available buffers.
Definition: wms_data.h:598
APP_LIB_DATA_SEND_RES_RESERVED_ENDPOINT
@ APP_LIB_DATA_SEND_RES_RESERVED_ENDPOINT
Definition: wms_data.h:162
APP_LIB_DATA_CONFIG_DATA_RES_INTERNAL_ERROR
@ APP_LIB_DATA_CONFIG_DATA_RES_INTERNAL_ERROR
Definition: wms_data.h:743
app_lib_data_new_config_data_item_cb_f
void(* app_lib_data_new_config_data_item_cb_f)(const app_lib_config_data_item_t *item)
Callback to be notified when a new config data item is received.
Definition: wms_data.h:878
app_lib_data_received_t::src_address
app_addr_t src_address
Definition: wms_data.h:286
APP_LIB_DATA_SEND_RES_INVALID_FRAGMENT_INFO
@ APP_LIB_DATA_SEND_RES_INVALID_FRAGMENT_INFO
Definition: wms_data.h:173
app_lib_data_sent_status_t::success
bool success
Definition: wms_data.h:377
app_lib_data_send_flags_e
app_lib_data_send_flags_e
Flags to use with lib_data->sendData().
Definition: wms_data.h:93
APP_LIB_DATA_SEND_FRAGMENTED_PACKET
@ APP_LIB_DATA_SEND_FRAGMENTED_PACKET
Definition: wms_data.h:130
app_lib_data_t::allowReception
app_lib_data_allow_reception_f allowReception
Definition: wms_data.h:1014
APP_LIB_DATA_SEND_RES_OUT_OF_TRACKING_IDS
@ APP_LIB_DATA_SEND_RES_OUT_OF_TRACKING_IDS
Definition: wms_data.h:157
APP_LIB_DATA_SEND_RES_INVALID_HOP_LIMIT
@ APP_LIB_DATA_SEND_RES_INVALID_HOP_LIMIT
Definition: wms_data.h:169
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:407
app_lib_data_write_app_config_data_f
app_lib_data_app_config_res_e(* app_lib_data_write_app_config_data_f)(const uint8_t *bytes)
Write appconfig "app config DATA".
Definition: wms_data.h:715
app_lib_data_read_app_config_f
app_lib_data_app_config_res_e(* app_lib_data_read_app_config_f)(uint8_t *bytes, uint8_t *seq, uint16_t *interval)
Read appconfig "app config".
Definition: wms_data.h:669
app_lib_data_t::setConfigDataItem
app_lib_data_set_config_data_item_f setConfigDataItem
Definition: wms_data.h:1022
APP_LIB_DATA_SEND_RES_INVALID_TRACKING_ID
@ APP_LIB_DATA_SEND_RES_INVALID_TRACKING_ID
Definition: wms_data.h:159
app_lib_data_receive_res_e
app_lib_data_receive_res_e
Return value of data reception callback.
Definition: wms_data.h:184
app_lib_data_t::setFragmentMode
app_lib_data_set_fragmented_mode_f setFragmentMode
Definition: wms_data.h:1020
app_lib_data_received_t::dest_endpoint
uint8_t dest_endpoint
Definition: wms_data.h:294
app_lib_data_set_data_sent_cb_f
app_res_e(* app_lib_data_set_data_sent_cb_f)(app_lib_data_data_sent_cb_f cb)
Set data sent tracking callback.
Definition: wms_data.h:501
APP_LIB_DATA_SEND_RES_ACCESS_DENIED
@ APP_LIB_DATA_SEND_RES_ACCESS_DENIED
Definition: wms_data.h:167
APP_LIB_DATA_RECEIVE_RES_NO_SPACE
@ APP_LIB_DATA_RECEIVE_RES_NO_SPACE
Definition: wms_data.h:196
APP_LIB_DATA_SEND_RES_INVALID_STACK_STATE
@ APP_LIB_DATA_SEND_RES_INVALID_STACK_STATE
Definition: wms_data.h:141
app_lib_data_set_data_received_cb_f
app_res_e(* app_lib_data_set_data_received_cb_f)(app_lib_data_data_received_cb_f cb)
Set data reception callback.
Definition: wms_data.h:470
APP_LIB_DATA_APP_CONFIG_RES_INVALID_APP_CONFIG
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_APP_CONFIG
Definition: wms_data.h:213
app_lib_data_to_send_t
A struct for lib_data->sendData().
Definition: wms_data.h:323
app_lib_data_received_t::fragment_info
app_lib_data_fragment_t * fragment_info
Definition: wms_data.h:317
app_lib_config_data_item_t::endpoint
uint16_t endpoint
Definition: wms_data.h:754
app_lib_data_t::getNumBuffers
app_lib_data_get_num_buffers_f getNumBuffers
Definition: wms_data.h:1011
APP_LIB_DATA_CONFIG_DATA_RES_INVALID_NULL_POINTER
@ APP_LIB_DATA_CONFIG_DATA_RES_INVALID_NULL_POINTER
Definition: wms_data.h:733
app_lib_data_get_num_buffers_f
size_t(* app_lib_data_get_num_buffers_f)(void)
Get total number of packet buffers.
Definition: wms_data.h:570
app_lib_data_t::getNumFreeBuffers
app_lib_data_get_num_free_buffers_f getNumFreeBuffers
Definition: wms_data.h:1012
APP_LIB_DATA_SEND_RES_INVALID_FLAGS
@ APP_LIB_DATA_SEND_RES_INVALID_FLAGS
Definition: wms_data.h:145
app_lib_data_t::getDataMaxNumBytes
app_lib_data_get_data_max_num_bytes_f getDataMaxNumBytes
Definition: wms_data.h:1010
app_lib_data_t::setLocalMulticastInfo
app_lib_data_set_local_mc_f setLocalMulticastInfo
Definition: wms_data.h:1019
APP_LIB_DATA_QOS_HIGH
@ APP_LIB_DATA_QOS_HIGH
Definition: wms_data.h:87
app_lib_data_t::getAllConfigDataEndpoints
app_lib_data_get_all_config_data_endpoints_f getAllConfigDataEndpoints
Definition: wms_data.h:1028
app_lib_data_set_new_config_data_item_cb_f
app_res_e(* app_lib_data_set_new_config_data_item_cb_f)(app_lib_data_new_config_data_item_cb_f cb)
Set the callback function to be called when a new config data item is received.
Definition: wms_data.h:890
APP_LIB_DATA_APP_CONFIG_RES_OUT_OF_MEMORY
@ APP_LIB_DATA_APP_CONFIG_RES_OUT_OF_MEMORY
Definition: wms_data.h:221
APP_LIB_DATA_CONFIG_DATA_RES_INVALID_CONTENT
@ APP_LIB_DATA_CONFIG_DATA_RES_INVALID_CONTENT
Definition: wms_data.h:737
app_lib_config_data_item_t::length
uint8_t length
Definition: wms_data.h:756
app_lib_data_received_t::hops
uint8_t hops
Definition: wms_data.h:296
app_lib_data_local_mc_info_t::hops_left
uint8_t hops_left
Amount of hops left set when multicast packet goes out of target multicast group.
Definition: wms_data.h:972
APP_LIB_DATA_SEND_SET_HOP_LIMITING
@ APP_LIB_DATA_SEND_SET_HOP_LIMITING
Definition: wms_data.h:112
app_lib_data_received_t
Struct passed to data reception callback functions.
Definition: wms_data.h:279
app_lib_data_fragment_t
Fragmentation information.
Definition: wms_data.h:263
app_addr_t
uint32_t app_addr_t
Definition: wms_app.h:228
app_lib_data_t::sendData
app_lib_data_send_data_f sendData
Definition: wms_data.h:1013
app_lib_data_fragment_t::fragment_offset
uint16_t fragment_offset
Definition: wms_data.h:268
app_lib_data_fragmented_mode_e
app_lib_data_fragmented_mode_e
Fragmentation mode. Use to specify if reassembly is done by stack or by application itself.
Definition: wms_data.h:231
app_lib_data_get_data_max_num_bytes_f
app_lib_data_data_size_t(* app_lib_data_get_data_max_num_bytes_f)(void)
Return the maximum number of bytes per data packet or data segment.
Definition: wms_data.h:548
app_lib_data_to_send_t::flags
uint8_t flags
Definition: wms_data.h:338
app_lib_data_received_t::mac_src_address
app_addr_t mac_src_address
Definition: wms_data.h:303
APP_LIB_DATA_FRAGMENTED_MODE_ENABLED
@ APP_LIB_DATA_FRAGMENTED_MODE_ENABLED
Definition: wms_data.h:236
app_lib_data_t::getConfigDataItem
app_lib_data_get_config_data_item_f getConfigDataItem
Definition: wms_data.h:1024
app_lib_data_received_t::qos
app_lib_data_qos_e qos
Definition: wms_data.h:290
app_lib_config_data_item_t
Config Data Item information.
Definition: wms_data.h:749
app_lib_data_received_t::delay_hp
uint32_t delay_hp
Definition: wms_data.h:313
app_lib_data_send_data_f
app_lib_data_send_res_e(* app_lib_data_send_data_f)(const app_lib_data_to_send_t *data)
Send data.
Definition: wms_data.h:615
APP_LIB_DATA_CONFIG_DATA_RES_INVALID_ENDPOINT
@ APP_LIB_DATA_CONFIG_DATA_RES_INVALID_ENDPOINT
Definition: wms_data.h:731
APP_LIB_DATA_APP_CONFIG_RES_INVALID_INTERVAL
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_INTERVAL
Definition: wms_data.h:217
app_lib_data_t::setDataReceivedCb
app_lib_data_set_data_received_cb_f setDataReceivedCb
Definition: wms_data.h:1007
app_lib_data_get_all_config_data_endpoints_f
uint8_t(* app_lib_data_get_all_config_data_endpoints_f)(uint16_t *endpoints, uint8_t max_items)
Get the endpoints of all config data items stored on the node.
Definition: wms_data.h:863
APP_LIB_DATA_SEND_RES_UNINITIALIZED
@ APP_LIB_DATA_SEND_RES_UNINITIALIZED
Definition: wms_data.h:171
APP_LIB_DATA_RECEIVE_RES_NOT_FOR_APP
@ APP_LIB_DATA_RECEIVE_RES_NOT_FOR_APP
Definition: wms_data.h:191
APP_LIB_DATA_CONFIG_DATA_RES_SUCCESS
@ APP_LIB_DATA_CONFIG_DATA_RES_SUCCESS
Definition: wms_data.h:726
APP_LIB_DATA_SEND_RES_SUCCESS
@ APP_LIB_DATA_SEND_RES_SUCCESS
Definition: wms_data.h:139
app_lib_data_fragment_t::last_fragment
bool last_fragment
Definition: wms_data.h:270
app_lib_data_local_mc_info_t
Information on setting local multicast functionality. To be used with service lib_data->setLocalMulti...
Definition: wms_data.h:966
APP_LIB_DATA_CONFIG_DATA_RES_OUT_OF_MEMORY
@ APP_LIB_DATA_CONFIG_DATA_RES_OUT_OF_MEMORY
Definition: wms_data.h:735
app_lib_data_t::writeAppConfigData
app_lib_data_write_app_config_data_f writeAppConfigData
Definition: wms_data.h:1017
app_lib_data_data_size_t::max_fragment_size
size_t max_fragment_size
Definition: wms_data.h:529
APP_LIB_DATA_SEND_RES_INVALID_NUM_BYTES
@ APP_LIB_DATA_SEND_RES_INVALID_NUM_BYTES
Definition: wms_data.h:154
app_lib_data_data_received_cb_f
app_lib_data_receive_res_e(* app_lib_data_data_received_cb_f)(const app_lib_data_received_t *data)
Data reception callback.
Definition: wms_data.h:395
app_lib_data_received_t::bytes
const uint8_t * bytes
Definition: wms_data.h:282
app_lib_data_write_diagnostic_interval_f
app_lib_data_app_config_res_e(* app_lib_data_write_diagnostic_interval_f)(uint16_t interval)
Write appconfig "Diagnostic interval".
Definition: wms_data.h:920
app_lib_data_sent_status_t::queue_time
uint32_t queue_time
Definition: wms_data.h:368
app_lib_data_fragment_t::packet_id
uint16_t packet_id
Definition: wms_data.h:266
app_lib_data_t::getAppConfigNumBytes
app_lib_data_get_app_config_num_bytes_f getAppConfigNumBytes
Definition: wms_data.h:1016
APP_LIB_DATA_QOS_NORMAL
@ APP_LIB_DATA_QOS_NORMAL
Definition: wms_data.h:84
app_lib_data_t::setConfigDataItemReceivedCb
app_lib_data_set_new_config_data_item_cb_f setConfigDataItemReceivedCb
Definition: wms_data.h:1026
APP_LIB_DATA_APP_CONFIG_RES_SUCCESS
@ APP_LIB_DATA_APP_CONFIG_RES_SUCCESS
Definition: wms_data.h:208
app_lib_data_tracking_id_t
uint16_t app_lib_data_tracking_id_t
Type of tracking ID for data packets.
Definition: wms_data.h:52
app_lib_data_set_local_mc_f
app_res_e(* app_lib_data_set_local_mc_f)(const app_lib_data_local_mc_info_t *info)
Set local multicast functionality.
Definition: wms_data.h:992
app_lib_data_received_t::delay
uint32_t delay
Definition: wms_data.h:288
app_lib_config_data_item_t::bytes
uint8_t * bytes
Definition: wms_data.h:752
app_lib_data_config_data_res_e
app_lib_data_config_data_res_e
Result of the config data item.
Definition: wms_data.h:723
app_lib_data_get_config_data_item_f
app_lib_data_config_data_res_e(* app_lib_data_get_config_data_item_f)(app_lib_config_data_item_t *item)
Get the config data item of a specific endpoint.
Definition: wms_data.h:837
app_lib_data_set_new_app_config_cb_f
app_res_e(* app_lib_data_set_new_app_config_cb_f)(app_lib_data_new_app_config_cb_f cb)
Set the callback function to be called when new appconfig "app config data" is received.
Definition: wms_data.h:519
APP_LIB_DATA_FRAGMENTED_MODE_DISABLED
@ APP_LIB_DATA_FRAGMENTED_MODE_DISABLED
Definition: wms_data.h:244
app_lib_data_to_send_t::fragment_info
app_lib_data_fragment_t fragment_info
Definition: wms_data.h:350
app_lib_data_to_send_t::hop_limit
uint8_t hop_limit
Definition: wms_data.h:346
app_lib_data_received_t::tx_power
int8_t tx_power
Definition: wms_data.h:307