10#ifndef INFUSE_SDK_INCLUDE_INFUSE_RPC_CLIENT_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_RPC_CLIENT_H_
13#include <zephyr/net_buf.h>
105 k_timeout_t timeout);
130 k_timeout_t ctx_timeout, k_timeout_t response_timeout);
176 const void *data,
size_t data_len);
208 uint32_t offset,
void *buffer,
size_t buffer_len,
227 size_t req_params_len, k_timeout_t ctx_timeout,
228 k_timeout_t response_timeout,
struct net_buf **rsp);
Autogenerated RPC definitions.
rpc_builtin_id
Infuse-IoT builtin RPC commands.
Definition types.h:337
void rpc_client_init(struct rpc_client_ctx *ctx, const struct device *dev, union epacket_interface_address address)
Initialise RPC client object for use.
int rpc_client_update_response_timeout(struct rpc_client_ctx *ctx, uint32_t request_id, k_timeout_t timeout)
Update the response timeout of an executing command.
int rpc_client_command_queue(struct rpc_client_ctx *ctx, enum rpc_builtin_id cmd, void *req_params, size_t req_params_len, rpc_client_rsp_fn cb, void *user_data, k_timeout_t ctx_timeout, k_timeout_t response_timeout)
Queue a command for execution on a remote device.
int rpc_client_command_sync(struct rpc_client_ctx *ctx, enum rpc_builtin_id cmd, void *req_params, size_t req_params_len, k_timeout_t ctx_timeout, k_timeout_t response_timeout, struct net_buf **rsp)
Queue a command for execution on a remote device and wait for the response.
int rpc_client_data_queue(struct rpc_client_ctx *ctx, uint32_t request_id, uint32_t offset, const void *data, size_t data_len)
Queue data associated with a previously queued command.
static uint32_t rpc_client_last_request_id(const struct rpc_client_ctx *ctx)
Get the request ID used by the last command.
Definition client.h:87
void(* rpc_client_rsp_fn)(const struct net_buf *buf, void *user_data)
Callback run when the response arrives.
Definition client.h:34
int rpc_client_data_queue_auto_load(struct rpc_client_ctx *ctx, uint32_t request_id, uint32_t offset, void *buffer, size_t buffer_len, const struct rpc_client_auto_load_params *loader_params)
Queue data associated with a previously queued command, loaded via callback.
int(* rpc_client_data_loader)(void *user_data, uint32_t offset, void *data, size_t data_len)
Callback to load more data for queueing.
Definition client.h:160
void rpc_client_cleanup(struct rpc_client_ctx *ctx)
Cleanup a RPC client object.
int rpc_client_ack_wait(struct rpc_client_ctx *ctx, uint32_t request_id, k_timeout_t timeout)
Wait for an INFUSE_RPC_DATA_ACK from the remote device.
ePacket interface callback structure.
Definition interface.h:66
State for auto loader control.
Definition client.h:179
uint32_t total_len
Definition client.h:183
void * user_data
Definition client.h:191
k_timeout_t ack_wait
Definition client.h:185
uint8_t ack_period
Definition client.h:187
rpc_client_data_loader loader
Definition client.h:181
uint8_t pipelining
Definition client.h:189
uint16_t command_id
Definition client.h:51
struct k_timer timeout
Definition client.h:39
uint16_t tx_tokens_on_ack
Definition client.h:53
rpc_client_rsp_fn cb
Definition client.h:45
int16_t tx_result
Definition client.h:55
struct k_sem tx_tokens
Definition client.h:41
uint32_t request_id
Definition client.h:49
k_timeout_t rsp_timeout
Definition client.h:43
void * user_data
Definition client.h:47
union epacket_interface_address address
Definition client.h:61
struct rpc_client_cmd_ctx cmd_ctx[CONFIG_INFUSE_RPC_CLIENT_MAX_IN_FLIGHT]
Definition client.h:63
struct k_sem cmd_ctx_sem
Definition client.h:64
const struct device * interface
Definition client.h:60
struct epacket_interface_cb interface_cb
Definition client.h:62
uint32_t request_id
Definition client.h:65