Wirepas SDK
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 "app/app.h"
27 
29 #define APP_LIB_DATA_NAME 0x0003f161
30 
31 
32 #define APP_LIB_DATA_VERSION 0x209
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 
75 #define APP_LIB_DATA_MAX_APP_CONFIG_NUM_BYTES 80
76 
87 typedef enum
88 {
95 
99 typedef enum
100 {
135 
140 typedef enum
141 {
175 
184 typedef enum
185 {
198 
206 typedef enum
207 {
222 
234 #define APP_LIB_DATA_RX_HOPS_UNDETERMINED 0
235 
244 typedef struct
245 {
247  const uint8_t * bytes;
249  size_t num_bytes;
255  uint32_t delay;
259  uint8_t src_endpoint;
261  uint8_t dest_endpoint;
263  uint8_t hops;
274  int8_t tx_power;
278  int8_t rssi;
282  uint32_t delay_hp;
284 
288 typedef struct
289 {
291  const uint8_t * bytes;
293  size_t num_bytes;
299  uint32_t delay;
307  uint8_t flags;
309  uint8_t src_endpoint;
311  uint8_t dest_endpoint;
315  uint8_t hop_limit;
317 
325 typedef struct
326 {
333  uint32_t queue_time;
338  uint8_t src_endpoint;
340  uint8_t dest_endpoint;
342  bool success;
344 
363 
373 typedef void
375 
393 typedef void (*app_lib_data_new_app_config_cb_f)(const uint8_t * bytes,
394  uint8_t seq,
395  uint16_t interval);
396 
441 typedef app_res_e
443 
450 
479 typedef app_res_e
481 
492 typedef app_res_e
495 
510 typedef size_t
512 
533 typedef size_t
535 
562 typedef app_res_e
563  (*app_lib_data_get_num_free_buffers_f)(size_t * num_buffers_p);
564 
581 
607 typedef void
609 
633  (*app_lib_data_read_app_config_f)(uint8_t * bytes,
634  uint8_t * seq,
635  uint16_t * interval);
636 
693  (*app_lib_data_write_app_config_f)(const uint8_t * bytes,
694  uint8_t seq,
695  uint16_t interval);
696 
706 typedef size_t
708 
709 
736 typedef app_res_e
738  uint16_t time);
739 
756 typedef app_res_e
758  uint16_t * time_p);
759 
785  (*app_lib_data_write_app_config_data_f)(const uint8_t * bytes);
786 
813 
817 typedef struct
818 {
837 
838 #endif /* APP_LIB_DATA_H_ */
app_lib_data_t::setBcastDataReceivedCb
app_lib_data_set_data_received_cb_f setBcastDataReceivedCb
Definition: data.h:820
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 app config data is received.
Definition: data.h:494
app_lib_data_t::reserved
app_lib_data_depracated_f reserved
Definition: data.h:831
app_lib_data_t::setDataSentCb
app_lib_data_set_data_sent_cb_f setDataSentCb
Definition: data.h:821
app_lib_data_received_t::num_bytes
size_t num_bytes
Definition: data.h:249
app_lib_data_t::writeAppConfig
app_lib_data_write_app_config_f writeAppConfig
Definition: data.h:829
APP_LIB_DATA_SEND_RES_INVALID_TRACKING_ID
@ APP_LIB_DATA_SEND_RES_INVALID_TRACKING_ID
Definition: data.h:163
APP_LIB_DATA_SEND_RES_INVALID_FLAGS
@ APP_LIB_DATA_SEND_RES_INVALID_FLAGS
Definition: data.h:149
APP_LIB_DATA_SEND_FLAG_TRACK
@ APP_LIB_DATA_SEND_FLAG_TRACK
Definition: data.h:106
app_lib_data_received_t::hops
uint8_t hops
Definition: data.h:263
app_lib_data_to_send_t
A struct for lib_data->sendData().
Definition: data.h:288
APP_LIB_DATA_SEND_RES_INVALID_NUM_BYTES
@ APP_LIB_DATA_SEND_RES_INVALID_NUM_BYTES
Definition: data.h:158
app_lib_data_depracated_f
app_res_e(* app_lib_data_depracated_f)(void)
This service has been DEPRACATED!
Definition: data.h:449
app_lib_data_t::getNumFreeBuffers
app_lib_data_get_num_free_buffers_f getNumFreeBuffers
Definition: data.h:825
app_lib_data_t
List of library services.
Definition: data.h:817
app_lib_data_app_config_res_e
app_lib_data_app_config_res_e
Result of the app config.
Definition: data.h:206
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: data.h:563
APP_LIB_DATA_SEND_RES_ACCESS_DENIED
@ APP_LIB_DATA_SEND_RES_ACCESS_DENIED
Definition: data.h:171
APP_LIB_DATA_SEND_RES_OUT_OF_TRACKING_IDS
@ APP_LIB_DATA_SEND_RES_OUT_OF_TRACKING_IDS
Definition: data.h:161
app_lib_data_t::writeDiagnosticInterval
app_lib_data_write_diagnostic_interval_f writeDiagnosticInterval
Definition: data.h:835
app_lib_data_t::setDataReceivedCb
app_lib_data_set_data_received_cb_f setDataReceivedCb
Definition: data.h:819
app_lib_data_t::sendData
app_lib_data_send_data_f sendData
Definition: data.h:826
app_lib_data_get_app_config_num_bytes_f
size_t(* app_lib_data_get_app_config_num_bytes_f)(void)
Get size of app config.
Definition: data.h:707
app_lib_data_t::getNumBuffers
app_lib_data_get_num_buffers_f getNumBuffers
Definition: data.h:824
APP_LIB_DATA_SEND_RES_INVALID_HOP_LIMIT
@ APP_LIB_DATA_SEND_RES_INVALID_HOP_LIMIT
Definition: data.h:173
app_lib_data_send_res_e
app_lib_data_send_res_e
A result code returned from lib_data->sendData().
Definition: data.h:140
APP_LIB_DATA_SEND_RES_OUT_OF_MEMORY
@ APP_LIB_DATA_SEND_RES_OUT_OF_MEMORY
Definition: data.h:151
APP_LIB_DATA_SEND_NW_CH_ONLY
@ APP_LIB_DATA_SEND_NW_CH_ONLY
Definition: data.h:133
APP_LIB_DATA_APP_CONFIG_RES_INVALID_APP_CONFIG
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_APP_CONFIG
Definition: data.h:214
app_addr_t
uint32_t app_addr_t
Definition: app.h:228
app_lib_data_t::getDataMaxNumBytes
app_lib_data_get_data_max_num_bytes_f getDataMaxNumBytes
Definition: data.h:823
app_lib_data_received_t::dest_address
app_addr_t dest_address
Definition: data.h:267
app_lib_data_tracking_id_t
uint16_t app_lib_data_tracking_id_t
Type of tracking ID for data packets.
Definition: data.h:52
app_lib_data_sent_status_t::queue_time
uint32_t queue_time
Definition: data.h:333
APP_LIB_DATA_SEND_RES_INVALID_DEST_ADDRESS
@ APP_LIB_DATA_SEND_RES_INVALID_DEST_ADDRESS
Definition: data.h:156
app_lib_data_to_send_t::tracking_id
app_lib_data_tracking_id_t tracking_id
Definition: data.h:303
APP_LIB_DATA_APP_CONFIG_RES_SUCCESS
@ APP_LIB_DATA_APP_CONFIG_RES_SUCCESS
Definition: data.h:209
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: data.h:608
app.h
app_lib_data_t::allowReception
app_lib_data_allow_reception_f allowReception
Definition: data.h:827
app_lib_data_get_max_msg_queuing_time_f
app_res_e(* app_lib_data_get_max_msg_queuing_time_f)(app_lib_data_qos_e priority, uint16_t *time_p)
Get maximum queuing time of messages.
Definition: data.h:757
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: data.h:442
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 app config.
Definition: data.h:633
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 Diagnostic interval.
Definition: data.h:812
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 app config DATA.
Definition: data.h:785
APP_LIB_DATA_RECEIVE_RES_NO_SPACE
@ APP_LIB_DATA_RECEIVE_RES_NO_SPACE
Definition: data.h:196
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: data.h:362
app_lib_data_received_t::qos
app_lib_data_qos_e qos
Definition: data.h:257
APP_LIB_DATA_RECEIVE_RES_NOT_FOR_APP
@ APP_LIB_DATA_RECEIVE_RES_NOT_FOR_APP
Definition: data.h:191
APP_LIB_DATA_RECEIVE_RES_HANDLED
@ APP_LIB_DATA_RECEIVE_RES_HANDLED
Definition: data.h:188
APP_LIB_DATA_SEND_RES_INVALID_QOS
@ APP_LIB_DATA_SEND_RES_INVALID_QOS
Definition: data.h:147
app_lib_data_send_flags_e
app_lib_data_send_flags_e
Flags to use with lib_data->sendData().
Definition: data.h:99
app_lib_data_received_t::delay
uint32_t delay
Definition: data.h:255
app_lib_data_get_data_max_num_bytes_f
size_t(* app_lib_data_get_data_max_num_bytes_f)(void)
Return the maximum number of bytes per data packet.
Definition: data.h:511
APP_LIB_DATA_SEND_RES_SUCCESS
@ APP_LIB_DATA_SEND_RES_SUCCESS
Definition: data.h:143
app_lib_data_to_send_t::flags
uint8_t flags
Definition: data.h:307
app_lib_data_received_t::delay_hp
uint32_t delay_hp
Definition: data.h:282
app_lib_data_t::readAppConfig
app_lib_data_read_app_config_f readAppConfig
Definition: data.h:828
app_lib_data_set_max_msg_queuing_time_f
app_res_e(* app_lib_data_set_max_msg_queuing_time_f)(app_lib_data_qos_e priority, uint16_t time)
Set maximum queuing time for messages.
Definition: data.h:737
APP_LIB_DATA_SEND_RES_INVALID_STACK_STATE
@ APP_LIB_DATA_SEND_RES_INVALID_STACK_STATE
Definition: data.h:145
app_lib_data_receive_res_e
app_lib_data_receive_res_e
Return value of data reception callback.
Definition: data.h:184
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: data.h:480
app_lib_data_get_num_buffers_f
size_t(* app_lib_data_get_num_buffers_f)(void)
Get total number of packet buffers.
Definition: data.h:534
app_lib_data_received_t::src_endpoint
uint8_t src_endpoint
Definition: data.h:259
APP_LIB_DATA_APP_CONFIG_RES_INVALID_NULL_POINTER
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_NULL_POINTER
Definition: data.h:220
APP_LIB_DATA_QOS_NORMAL
@ APP_LIB_DATA_QOS_NORMAL
Definition: data.h:90
app_lib_data_received_t::dest_endpoint
uint8_t dest_endpoint
Definition: data.h:261
APP_LIB_DATA_SEND_SET_HOP_LIMITING
@ APP_LIB_DATA_SEND_SET_HOP_LIMITING
Definition: data.h:118
app_lib_data_sent_status_t::success
bool success
Definition: data.h:342
app_lib_data_received_t::bytes
const uint8_t * bytes
Definition: data.h:247
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: data.h:580
app_lib_data_received_t::rssi
int8_t rssi
Definition: data.h:278
app_lib_data_write_app_config_f
app_lib_data_app_config_res_e(* app_lib_data_write_app_config_f)(const uint8_t *bytes, uint8_t seq, uint16_t interval)
Write app config.
Definition: data.h:693
app_lib_data_received_t::mac_src_address
app_addr_t mac_src_address
Definition: data.h:270
app_lib_data_t::setNewAppConfigCb
app_lib_data_set_new_app_config_cb_f setNewAppConfigCb
Definition: data.h:822
app_lib_data_t::setMaxMsgQueuingTime
app_lib_data_set_max_msg_queuing_time_f setMaxMsgQueuingTime
Definition: data.h:832
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: data.h:393
app_lib_data_to_send_t::hop_limit
uint8_t hop_limit
Definition: data.h:315
app_lib_data_received_t::tx_power
int8_t tx_power
Definition: data.h:274
app_lib_data_t::getAppConfigNumBytes
app_lib_data_get_app_config_num_bytes_f getAppConfigNumBytes
Definition: data.h:830
app_lib_data_qos_e
app_lib_data_qos_e
Data quality of service class. Used when sending and receiving data packets.
Definition: data.h:87
APP_LIB_DATA_APP_CONFIG_RES_INVALID_INTERVAL
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_INTERVAL
Definition: data.h:218
app_lib_data_received_t::src_address
app_addr_t src_address
Definition: data.h:251
app_lib_data_received_t
Struct passed to data reception callback functions.
Definition: data.h:244
APP_LIB_DATA_QOS_HIGH
@ APP_LIB_DATA_QOS_HIGH
Definition: data.h:93
app_res_e
app_res_e
Definition: app.h:201
app_lib_data_t::getMaxMsgQueuingTime
app_lib_data_get_max_msg_queuing_time_f getMaxMsgQueuingTime
Definition: data.h:833
APP_LIB_DATA_APP_CONFIG_RES_INVALID_ROLE
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_ROLE
Definition: data.h:211
APP_LIB_DATA_SEND_RES_RESERVED_ENDPOINT
@ APP_LIB_DATA_SEND_RES_RESERVED_ENDPOINT
Definition: data.h:166
APP_LIB_DATA_SEND_FLAG_NONE
@ APP_LIB_DATA_SEND_FLAG_NONE
Definition: data.h:102
APP_LIB_DATA_APP_CONFIG_RES_INVALID_SEQ
@ APP_LIB_DATA_APP_CONFIG_RES_INVALID_SEQ
Definition: data.h:216
app_lib_data_t::writeAppConfigData
app_lib_data_write_app_config_data_f writeAppConfigData
Definition: data.h:834
app_lib_data_sent_status_t
Struct to tracking callback function.
Definition: data.h:325
APP_LIB_DATA_SEND_FLAG_UNACK_CSMA_CA
@ APP_LIB_DATA_SEND_FLAG_UNACK_CSMA_CA
Definition: data.h:126
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: data.h:374