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
12
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#include <infuse/rpc/errors.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
30
41struct net_buf *rpc_response_simple_if(const struct device *interface, int16_t rc, void *response,
42 size_t len);
43
54struct net_buf *rpc_response_simple_req(struct net_buf *request, int16_t rc, void *response,
55 size_t len);
56
60#define RPC_REQUEST_VAR_LEN(request, type) (request->len - sizeof(type))
61
65#define RPC_DATA_VAR_LEN(data) (data->len - sizeof(struct infuse_rpc_data))
66
78struct net_buf *rpc_server_pull_data(uint32_t request_id, uint32_t expected_offset, int *err,
79 k_timeout_t timeout);
80
95struct net_buf *rpc_server_pull_data_unaligned(uint32_t request_id, uint32_t expected_offset,
96 int *err, k_timeout_t timeout);
97
105
112void rpc_server_ack_data_ready(struct epacket_rx_metadata *rx_meta, uint32_t request_id);
113
122void rpc_server_ack_data(struct epacket_rx_metadata *rx_meta, uint32_t request_id, uint32_t offset,
123 uint8_t ack_period);
124
129
137uint8_t *rpc_server_command_working_mem(size_t *size);
138
142
143#ifdef __cplusplus
144}
145#endif
146
147#endif /* INFUSE_SDK_INCLUDE_INFUSE_RPC_COMMANDS_H_ */
Autogenerated RPC error codes.
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.
void rpc_server_ack_data(struct epacket_rx_metadata *rx_meta, uint32_t request_id, uint32_t offset, uint8_t ack_period)
Acknowledge received data packets.
uint8_t * rpc_server_command_working_mem(size_t *size)
Retrieve working memory for an RPC.
void rpc_server_ack_data_ready(struct epacket_rx_metadata *rx_meta, uint32_t request_id)
Send initial INFUSE_RPC_DATA_ACK to signify we are ready for data.
struct net_buf * rpc_server_pull_data_unaligned(uint32_t request_id, uint32_t expected_offset, int *err, k_timeout_t timeout)
Attempt to pull unaligned INFUSE_RPC_DATA packet from queue.
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.
int rpc_server_pull_error_to_rpc_error(int err)
Convert a stdlib error code from rpc_server_pull_data to an RPC error code.
ePacket packet APIs
Definition packet.h:91