ePacket interface API
More...
ePacket interface API
◆ EPACKET_INTERFACE_IS_COMPILED_IN
#define EPACKET_INTERFACE_IS_COMPILED_IN |
( |
| node_id | ) |
|
#include <infuse/epacket/interface.h>
Value:IS_ENABLED(DT_STRING_TOKEN(node_id, depends_on))
Will this ePacket interface be compiled in?
- Parameters
-
node_id | ePacket interface node identitier |
- Return values
-
1 | if interface will be compiled in |
0 | if interface will NOT be compiled in |
◆ EPACKET_INTERFACE_MAX_PACKET
#define EPACKET_INTERFACE_MAX_PACKET |
( |
| node_id | ) |
|
#include <infuse/epacket/interface.h>
Value: (MIN(CONFIG_EPACKET_PACKET_SIZE_MAX, \
DT_PROP_OR(node_id, max_packet_size, CONFIG_EPACKET_PACKET_SIZE_MAX)))
◆ EPACKET_INTERFACE_MAX_PAYLOAD
#define EPACKET_INTERFACE_MAX_PAYLOAD |
( |
| node_id | ) |
|
#include <infuse/epacket/interface.h>
Value:
#define EPACKET_INTERFACE_PAYLOAD_FROM_PACKET(node_id, packet_size)
Definition interface.h:37
#define EPACKET_INTERFACE_MAX_PACKET(node_id)
Definition interface.h:30
◆ EPACKET_INTERFACE_PACKET_OVERHEAD
#define EPACKET_INTERFACE_PACKET_OVERHEAD |
( |
| node_id | ) |
|
◆ EPACKET_INTERFACE_PAYLOAD_FROM_PACKET
#define EPACKET_INTERFACE_PAYLOAD_FROM_PACKET |
( |
| node_id, |
|
|
| packet_size ) |
#include <infuse/epacket/interface.h>
Value: (MIN(packet_size, CONFIG_EPACKET_PACKET_SIZE_MAX) - \
EPACKET_INTERFACE_PACKET_OVERHEAD(node_id))
◆ GATEWAY_HANDLER_DEFINE
#define GATEWAY_HANDLER_DEFINE |
( |
| name, |
|
|
| backhaul ) |
#include <infuse/epacket/interface.h>
Value: static void name(struct net_buf *buf) \
{ \
epacket_gateway_receive_handler(backhaul, buf); \
}
Define a handler for a specific backhaul interface.
- Parameters
-
name | Name of handler function |
backhaul | Backhaul interface |
◆ epacket_receive_handler
typedef void(* epacket_receive_handler) (struct net_buf *packet) |
◆ epacket_interface_id
#include <infuse/epacket/interface.h>
Enumerator |
---|
EPACKET_INTERFACE_SERIAL | |
EPACKET_INTERFACE_UDP | |
EPACKET_INTERFACE_BT_ADV | |
EPACKET_INTERFACE_BT_PERIPHERAL | |
EPACKET_INTERFACE_BT_CENTRAL | |
EPACKET_INTERFACE_HCI | |
EPACKET_INTERFACE_DUMMY | |
◆ epacket_default_receive_handler()
void epacket_default_receive_handler |
( |
struct net_buf * | buf | ) |
|
#include <infuse/epacket/interface.h>
Default ePacket receive handler.
Currently handles echo and RPC requests.
- Parameters
-
buf | ePacket that was received |
◆ epacket_gateway_receive_handler()
void epacket_gateway_receive_handler |
( |
const struct device * | backhaul, |
|
|
struct net_buf * | buf ) |
#include <infuse/epacket/interface.h>
Default gateway receive handler.
Received Bluetooth advertising packets are forwarded over backhaul. All other packets handled by epacket_default_receive_handler.
- Parameters
-
backhaul | ePacket interface to forward packets on. |
buf | ePacket that was received |
◆ epacket_interface_max_packet_size()
static uint16_t epacket_interface_max_packet_size |
( |
const struct device * | dev | ) |
|
|
inlinestatic |
#include <infuse/epacket/interface.h>
Get current maximum packet size.
- Parameters
-
- Return values
-
size | Maximum packet size (header + payload + footer) |
◆ epacket_queue()
void epacket_queue |
( |
const struct device * | dev, |
|
|
struct net_buf * | buf ) |
#include <infuse/epacket/interface.h>
Queue an ePacket for sending over an interface.
- Parameters
-
dev | Interface to send packet on |
buf | Packet to send |
◆ epacket_receive()
int epacket_receive |
( |
const struct device * | dev, |
|
|
k_timeout_t | timeout ) |
#include <infuse/epacket/interface.h>
Enable receiving on the interface for a duration.
- Note
- Each call to this function overrides any previous configured duration. For example, scheduling a 100 second receive then immediately scheduling a 10 second receive will result in a 10 second receive window.
- Parameters
-
dev | Interface to control receive on |
timeout | Duration to receive for. K_FOREVER = Receive forever K_NO_WAIT = Stop receiving immediately |
- Return values
-
-ENOTSUP | if interface does not support RX control |
errno | if receive control failed |
0 | if receiving stopped immediately |
1 | if receive stop has been scheduled for the future |
◆ epacket_register_callback()
static void epacket_register_callback |
( |
const struct device * | dev, |
|
|
struct epacket_interface_cb * | cb ) |
|
inlinestatic |
#include <infuse/epacket/interface.h>
Register to be notified of interface events.
- Parameters
-
dev | Interface to receive callbacks for |
cb | Callback struct to register |
◆ epacket_send_key_ids()
int epacket_send_key_ids |
( |
const struct device * | dev, |
|
|
k_timeout_t | timeout ) |
#include <infuse/epacket/interface.h>
Send a INFUSE_KEY_IDS packet on an interface.
- Parameters
-
dev | Interface to send packet on |
timeout | Duration to wait for message buffer |
- Return values
-
0 | If packet was queued |
-EAGAIN | If packet buffer claim timed out |
◆ epacket_set_receive_handler()
#include <infuse/epacket/interface.h>
Set the ePacket receive handler for an interface.
- Parameters
-
dev | Interface to set handler for |
handler | Handler function to run on received packets |
◆ epacket_unregister_callback()
static bool epacket_unregister_callback |
( |
const struct device * | dev, |
|
|
struct epacket_interface_cb * | cb ) |
|
inlinestatic |
#include <infuse/epacket/interface.h>
Unregister from interface events.
- Parameters
-
dev | Interface to unregister from |
cb | Callback struct to unregister |
- Return values
-
true | If structure was removed from callback list |
false | If structure was not present on list |