Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
commands RPC command implementation API

RPC command implementation API . More...

Macros

#define RPC_REQUEST_VAR_LEN(request, type)
 Get the size of the variable component of the INFUSE_RPC_CMD packet.
 
#define RPC_DATA_VAR_LEN(data)
 Get the size of the variable component of the INFUSE_RPC_DATA packet.
 

Functions

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.
 
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_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.
 
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.
 
uint8_t * rpc_server_command_working_mem (size_t *size)
 Retrieve working memory for an RPC.
 

Detailed Description

RPC command implementation API .

Macro Definition Documentation

◆ RPC_DATA_VAR_LEN

#define RPC_DATA_VAR_LEN ( data)

#include <infuse/rpc/commands.h>

Value:
(data->len - sizeof(struct infuse_rpc_data))
INFUSE_RPC_DATA payload
Definition types.h:52

Get the size of the variable component of the INFUSE_RPC_DATA packet.

◆ RPC_REQUEST_VAR_LEN

#define RPC_REQUEST_VAR_LEN ( request,
type )

#include <infuse/rpc/commands.h>

Value:
(request->len - sizeof(type))

Get the size of the variable component of the INFUSE_RPC_CMD packet.

Function Documentation

◆ rpc_response_simple_if()

struct net_buf * rpc_response_simple_if ( const struct device * interface,
int16_t rc,
void * response,
size_t len )

#include <infuse/rpc/commands.h>

Create an INFUSE_RPC_RSP packet buffer for an interface.

Parameters
interfaceInterface response will be sent on
rcReturn code of the RPC
responseRPC response struct
lenSize of RPC response struct
Returns
struct net_buf* packet buffer

◆ rpc_response_simple_req()

struct net_buf * rpc_response_simple_req ( struct net_buf * request,
int16_t rc,
void * response,
size_t len )

#include <infuse/rpc/commands.h>

Create an INFUSE_RPC_RSP packet buffer from a request.

Parameters
requestINFUSE_RPC_CMD packet to respond to
rcReturn code of the RPC
responseRPC response struct
lenSize of RPC response struct
Returns
struct net_buf* packet buffer

◆ rpc_server_ack_data()

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 )

#include <infuse/rpc/commands.h>

Acknowledge received data packets.

Parameters
interfaceePacket interface
addressAddress to send DATA_ACK to
request_idRPC request ID
offsetOffset of the received data
ack_periodRX acknowledgment period

◆ rpc_server_ack_data_ready()

void rpc_server_ack_data_ready ( const struct device * interface,
union epacket_interface_address address,
uint32_t request_id )

#include <infuse/rpc/commands.h>

Send initial INFUSE_RPC_DATA_ACK to signify we are ready for data.

Parameters
interfaceePacket interface
addressAddress to send DATA_ACK to
request_idRPC request ID

◆ rpc_server_command_working_mem()

uint8_t * rpc_server_command_working_mem ( size_t * size)

#include <infuse/rpc/commands.h>

Retrieve working memory for an RPC.

Parameters
sizeSize of the working memory buffer
Returns
uint8_t* Pointer to working memory

◆ rpc_server_pull_data()

struct net_buf * rpc_server_pull_data ( uint32_t request_id,
uint32_t expected_offset,
int * err,
k_timeout_t timeout )

#include <infuse/rpc/commands.h>

Attempt to pull INFUSE_RPC_DATA packet from queue.

Parameters
request_idRPC request ID
expected_offsetExpected data offset
errError code when function returned NULL
timeoutDuration to wait for packet
Return values
bufINFUSE_RPC_DATA packet on success
NULLon error

◆ rpc_server_watchdog_feed()

void rpc_server_watchdog_feed ( void )

#include <infuse/rpc/commands.h>

Feed the RPC server watchdog from a RPC implementation.