Wirepas SDK
shared_data.h
Go to the documentation of this file.
1 /* Copyright 2019 Wirepas Ltd. All Rights Reserved.
2  *
3  * See file LICENSE.txt for full license details.
4  *
5  */
6 
30 #ifndef _SHARED_DATA_H_
31 #define _SHARED_DATA_H_
32 
33 #include <stdint.h>
34 #include "api.h"
35 #include "sl_list.h"
36 
38 #define SHARED_DATA_UNUSED_ENDPOINT -1
39 
41 #define SHARED_DATA_UNUSED_MULTISCAST 0xFFFFFFFF
42 
44 typedef enum
45 {
55 
57 typedef struct
58 {
64  int16_t src_endpoint;
68  int16_t dest_endpoint;
78 
82 typedef struct shared_data_item_s shared_data_item_t;
83 
101  (*shared_data_received_cb_f)(const shared_data_item_t * item,
102  const app_lib_data_received_t * data);
103 
110 {
112  void * reserved;
114  bool reserved2;
116  bool reserved3;
121 };
122 
136 
145 app_res_e Shared_Data_addDataReceivedCb(shared_data_item_t * item);
146 
163 app_res_e Shared_Data_readyToReceive(shared_data_item_t * item);
164 
171 void Shared_Data_removeDataReceivedCb(shared_data_item_t * item);
172 
188  app_lib_data_to_send_t * data,
190 
191 #endif //_SHARED_DATA_H_
shared_data_net_mode_e
shared_data_net_mode_e
Select what type of packet to receive.
Definition: shared_data.h:44
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
shared_data_item_s::reserved3
bool reserved3
Definition: shared_data.h:116
shared_data_received_cb_f
app_lib_data_receive_res_e(* shared_data_received_cb_f)(const shared_data_item_t *item, const app_lib_data_received_t *data)
The data reception callback.
Definition: shared_data.h:101
app_res_e
app_res_e
Definition: wms_app.h:201
app_lib_settings_is_group_cb_f
bool(* app_lib_settings_is_group_cb_f)(app_addr_t group_addr)
Callback used for determining on which multicast groups the device belongs.
Definition: wms_settings.h:160
Shared_Data_addDataReceivedCb
app_res_e Shared_Data_addDataReceivedCb(shared_data_item_t *item)
Add a new packet received item to the list. If the item is already in the list it is only updated.
shared_data_filter_t::src_endpoint
int16_t src_endpoint
Definition: shared_data.h:64
shared_data_filter_t::mode
shared_data_net_mode_e mode
Definition: shared_data.h:60
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:414
Shared_Data_removeDataReceivedCb
void Shared_Data_removeDataReceivedCb(shared_data_item_t *item)
Remove a received packet item from the list. Removed item fields are all set to 0.
shared_data_filter_t
Structure holding all parameters for packet filtering.
Definition: shared_data.h:57
SHARED_DATA_NET_MODE_ALL
@ SHARED_DATA_NET_MODE_ALL
Definition: shared_data.h:53
shared_data_filter_t::multicast_cb
app_lib_settings_is_group_cb_f multicast_cb
Definition: shared_data.h:76
shared_data_item_s::cb
shared_data_received_cb_f cb
Definition: shared_data.h:118
app_lib_data_receive_res_e
app_lib_data_receive_res_e
Return value of data reception callback.
Definition: wms_data.h:188
shared_data_filter_t::dest_endpoint
int16_t dest_endpoint
Definition: shared_data.h:68
app_lib_data_to_send_t
A struct for lib_data->sendData().
Definition: wms_data.h:329
shared_data_item_s
Item containing filters and callback to call. This structure describe a callback to call when a packe...
Definition: shared_data.h:109
SHARED_DATA_NET_MODE_MULTICAST
@ SHARED_DATA_NET_MODE_MULTICAST
Definition: shared_data.h:51
Shared_Data_readyToReceive
app_res_e Shared_Data_readyToReceive(shared_data_item_t *item)
Enable back the reception for an item. Reception is automatically paused when an item returns APP_LIB...
app_lib_data_received_t
Struct passed to data reception callback functions.
Definition: wms_data.h:285
Shared_Data_init
app_res_e Shared_Data_init(void)
Initialize the shared data library.
shared_data_item_s::filter
shared_data_filter_t filter
Definition: shared_data.h:120
shared_data_item_s::reserved2
bool reserved2
Definition: shared_data.h:114
Shared_Data_sendData
app_lib_data_send_res_e Shared_Data_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.
SHARED_DATA_NET_MODE_UNICAST
@ SHARED_DATA_NET_MODE_UNICAST
Definition: shared_data.h:47
shared_data_item_s::reserved
void * reserved
Definition: shared_data.h:112
SHARED_DATA_NET_MODE_BROADCAST
@ SHARED_DATA_NET_MODE_BROADCAST
Definition: shared_data.h:49
sl_list.h
api.h