WISP ERT (Client)  1.0.0
The WISP Extended Runtime (WISP side)
endpoint.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <wio.h>
4 #include "defs.h"
5 #include "transmission.h"
6 
8 typedef struct wtp {
13 
17  uint8_t* _read_mem;
19  uint8_t* _write_mem;
20 
23 
25  uint16_t _pkt_begin;
26 
31 
36 
41 
45  void* _event_cb_data[_WTP_EVENT_MAX];
46 } wtp_t;
47 
64 extern wtp_status_t wtp_init(
65  wtp_t* self,
66  uint8_t* epc_mem,
67  uint16_t epc_buf_size,
68  uint8_t* read_mem,
69  uint8_t* write_mem,
70  uint16_t window_size,
71  uint16_t timeout,
72  uint16_t tx_buf_size,
73  uint16_t rx_buf_size,
74  uint8_t n_send,
75  uint8_t n_recv
76 );
77 
84 extern wtp_status_t wtp_fini(
85  wtp_t* self
86 );
87 
95  wtp_t* self
96 );
97 
104 extern wtp_status_t wtp_close(
105  wtp_t* self
106 );
107 
118 extern wtp_status_t wtp_send(
119  wtp_t* self,
120  uint8_t* data,
121  uint16_t size,
122  void* cb_data,
123  wio_callback_t cb
124 );
125 
134 extern wtp_status_t wtp_recv(
135  wtp_t* self,
136  void* cb_data,
137  wio_callback_t cb
138 );
139 
150  wtp_t* self,
151  wtp_event_t event,
152  void* cb_data,
153  wio_callback_t cb
154 );
155 
166  wtp_t* self,
167  wtp_event_t event,
168  wtp_status_t status,
169  void* result
170 );
171 
179  wtp_t* self
180 );
181 
189  wtp_t* self
190 );
191 
200  wtp_t* self,
201  wio_buf_t* write_buf
202 );
203 
212 extern uint8_t wtp_xor_checksum(
213  uint8_t* mem,
214  uint16_t begin,
215  uint16_t end
216 );
wio_status_t wtp_status_t
WTP status type.
Definition: defs.h:7
uint8_t * _write_mem
BlockWrite memory.
Definition: endpoint.h:19
wtp_status_t wtp_fini(wtp_t *self)
Finalize WTP endpoint.
Definition: endpoint.c:327
WTP endpoint type.
Definition: endpoint.h:8
wio_queue_t _recv_cb_data_queue
Receive callbacks closure data queue.
Definition: endpoint.h:40
wtp_link_state_t _uplink_state
Uplink state.
Definition: endpoint.h:12
wtp_rx_ctrl_t _rx_ctrl
Receive control instance.
Definition: endpoint.h:30
WIO buffer type.
Definition: buf.h:6
wtp_status_t wtp_close(wtp_t *self)
Disconnect from WTP server.
Definition: endpoint.c:373
wio_status_t(* wio_callback_t)(void *, wio_status_t, void *)
WIO callback type.
Definition: defs.h:42
wtp_status_t wtp_load_read_mem(wtp_t *self)
Load RFID READ memory for WTP communication.
Definition: endpoint.c:473
wtp_status_t wtp_send(wtp_t *self, uint8_t *data, uint16_t size, void *cb_data, wio_callback_t cb)
Send message to WTP server.
Definition: endpoint.c:384
uint8_t * _read_mem
Read memory.
Definition: endpoint.h:17
wtp_status_t wtp_trigger_event(wtp_t *self, wtp_event_t event, wtp_status_t status, void *result)
Trigger WTP event.
Definition: endpoint.c:454
wio_queue_t _send_cb_data_queue
Send message callback closure data queue.
Definition: endpoint.h:35
wtp_status_t wtp_handle_blockwrite(wtp_t *self)
Handle RFID BLOCKWRITE operation.
Definition: endpoint.c:554
uint8_t wtp_xor_checksum(uint8_t *mem, uint16_t begin, uint16_t end)
WTP Xor checksum function.
Definition: endpoint.c:624
wtp_status_t wtp_verify_checksum(wtp_t *self, wio_buf_t *write_buf)
Verify the checksum of received WTP packet.
Definition: endpoint.c:605
wtp_link_state_t _downlink_state
Downlink state.
Definition: endpoint.h:10
uint16_t _pkt_begin
Packet begin position.
Definition: endpoint.h:25
bool _read_mem_loaded
Read memory loaded flag.
Definition: endpoint.h:22
wtp_status_t wtp_connect(wtp_t *self)
Connect to WTP server.
Definition: endpoint.c:351
wio_buf_t _epc_buf
EPC buffer.
Definition: endpoint.h:15
uint8_t wtp_event_t
WTP event type.
Definition: defs.h:16
#define _WTP_EVENT_MAX
WTP event max (Marco)
Definition: defs.h:71
WTP sliding window-based transmit control type.
Definition: transmission.h:32
uint8_t wtp_link_state_t
WTP link state type.
Definition: defs.h:14
wtp_status_t wtp_recv(wtp_t *self, void *cb_data, wio_callback_t cb)
Receive message from WTP server.
Definition: endpoint.c:419
wtp_status_t wtp_on_event(wtp_t *self, wtp_event_t event, void *cb_data, wio_callback_t cb)
Set WTP event handler.
Definition: endpoint.c:434
wio_queue_t _send_cb_queue
Send message callbacks queue.
Definition: endpoint.h:33
wio_queue_t _recv_cb_queue
Receive callbacks queue.
Definition: endpoint.h:38
wtp_status_t wtp_init(wtp_t *self, uint8_t *epc_mem, uint16_t epc_buf_size, uint8_t *read_mem, uint8_t *write_mem, uint16_t window_size, uint16_t timeout, uint16_t tx_buf_size, uint16_t rx_buf_size, uint8_t n_send, uint8_t n_recv)
Initialize WTP endpoint.
Definition: endpoint.c:251
WTP sliding window-based receive control type.
Definition: transmission.h:96
WIO circular queue type.
Definition: queue.h:16
wtp_tx_ctrl_t _tx_ctrl
Transmit control instance.
Definition: endpoint.h:28