Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
commands.h
Go to the documentation of this file.
1
13#ifndef INFUSE_SDK_INCLUDE_INFUSE_RPC_COMMANDS_H_
14#define INFUSE_SDK_INCLUDE_INFUSE_RPC_COMMANDS_H_
15
16#include <zephyr/net_buf.h>
17
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
40struct net_buf *rpc_response_simple_if(const struct device *interface, int16_t rc, void *response,
41 size_t len);
42
53struct net_buf *rpc_response_simple_req(struct net_buf *request, int16_t rc, void *response,
54 size_t len);
55
59#define RPC_REQUEST_VAR_LEN(request, type) (request->len - sizeof(type))
60
64#define RPC_DATA_VAR_LEN(data) (data->len - sizeof(struct infuse_rpc_data))
65
77struct net_buf *rpc_server_pull_data(uint32_t request_id, uint32_t expected_offset, int *err,
78 k_timeout_t timeout);
79
87void rpc_server_ack_data_ready(const struct device *interface,
88 union epacket_interface_address address, uint32_t request_id);
89
99void rpc_server_ack_data(const struct device *interface, union epacket_interface_address address,
100 uint32_t request_id, uint32_t offset, uint8_t ack_period);
101
106
114uint8_t *rpc_server_command_working_mem(size_t *size);
115
120#ifdef __cplusplus
121}
122#endif
123
124#endif /* INFUSE_SDK_INCLUDE_INFUSE_RPC_COMMANDS_H_ */
void rpc_server_ack_data(const struct device *interface, union epacket_interface_address address, uint32_t request_id, uint32_t offset, uint8_t ack_period)
Acknowledge received data packets.
void rpc_server_watchdog_feed(void)
Feed the RPC server watchdog from a RPC implementation.
struct net_buf * rpc_response_simple_req(struct net_buf *request, int16_t rc, void *response, size_t len)
Create an INFUSE_RPC_RSP packet buffer from a request.
struct net_buf * rpc_server_pull_data(uint32_t request_id, uint32_t expected_offset, int *err, k_timeout_t timeout)
Attempt to pull INFUSE_RPC_DATA packet from queue.
uint8_t * rpc_server_command_working_mem(size_t *size)
Retrieve working memory for an RPC.
struct net_buf * rpc_response_simple_if(const struct device *interface, int16_t rc, void *response, size_t len)
Create an INFUSE_RPC_RSP packet buffer for an interface.
void rpc_server_ack_data_ready(const struct device *interface, union epacket_interface_address address, uint32_t request_id)
Send initial INFUSE_RPC_DATA_ACK to signify we are ready for data.
ePacket packet APIs
Definition packet.h:47