|
Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
|
ePacket interface API More...
Data Structures | |
| struct | epacket_interface_cb |
| ePacket interface callback structure. More... | |
| struct | epacket_interface_api |
| struct | epacket_interface_common_data |
| Common data struct for all interfaces. More... | |
| struct | epacket_interface_common_config |
| Common config struct for all interfaces. More... | |
Macros | |
| #define | EPACKET_INTERFACE_MAX_PACKET(node_id) |
| #define | EPACKET_INTERFACE_PACKET_OVERHEAD(node_id) |
| #define | EPACKET_INTERFACE_PAYLOAD_FROM_PACKET(node_id, packet_size) |
| #define | EPACKET_INTERFACE_MAX_PAYLOAD(node_id) |
| #define | EPACKET_INTERFACE_IS_COMPILED_IN(node_id) |
| Will this ePacket interface be compiled in? | |
| #define | GATEWAY_HANDLER_DEFINE(name, backhaul) |
| Define a handler for a specific backhaul interface. | |
Typedefs | |
| typedef void(* | epacket_receive_handler) (struct net_buf *packet) |
| Callback to run on received packet. | |
Enumerations | |
| enum | epacket_interface_id { EPACKET_INTERFACE_SERIAL = 0 , EPACKET_INTERFACE_UDP = 1 , EPACKET_INTERFACE_BT_ADV = 2 , EPACKET_INTERFACE_BT_PERIPHERAL = 3 , EPACKET_INTERFACE_BT_CENTRAL = 4 , EPACKET_INTERFACE_HCI = 10 , EPACKET_INTERFACE_DUMMY = 255 } |
Functions | |
| void | epacket_queue (const struct device *dev, struct net_buf *buf) |
| Queue an ePacket for sending over an interface. | |
| int | epacket_receive (const struct device *dev, k_timeout_t timeout) |
| Enable receiving on the interface for a duration. | |
| int | epacket_send_key_ids (const struct device *dev, k_timeout_t timeout) |
| Send a INFUSE_KEY_IDS packet on an interface. | |
| static uint16_t | epacket_interface_max_packet_size (const struct device *dev) |
| Get current maximum packet size. | |
| static void | epacket_set_receive_handler (const struct device *dev, epacket_receive_handler handler) |
| Set the ePacket receive handler for an interface. | |
| static void | epacket_register_callback (const struct device *dev, struct epacket_interface_cb *cb) |
| Register to be notified of interface events. | |
| static bool | epacket_unregister_callback (const struct device *dev, struct epacket_interface_cb *cb) |
| Unregister from interface events. | |
| void | epacket_default_receive_handler (struct net_buf *buf) |
| Default ePacket receive handler. | |
| void | epacket_gateway_receive_handler (const struct device *backhaul, struct net_buf *buf) |
| Default gateway receive handler. | |
ePacket interface API
| #define EPACKET_INTERFACE_IS_COMPILED_IN | ( | node_id | ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Will this ePacket interface be compiled in?
| node_id | ePacket interface node identitier |
| 1 | if interface will be compiled in |
| 0 | if interface will NOT be compiled in |
| #define EPACKET_INTERFACE_MAX_PACKET | ( | node_id | ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
| #define EPACKET_INTERFACE_MAX_PAYLOAD | ( | node_id | ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
| #define EPACKET_INTERFACE_PACKET_OVERHEAD | ( | node_id | ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
| #define EPACKET_INTERFACE_PAYLOAD_FROM_PACKET | ( | node_id, | |
| packet_size ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
| #define GATEWAY_HANDLER_DEFINE | ( | name, | |
| backhaul ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Define a handler for a specific backhaul interface.
| name | Name of handler function |
| backhaul | Backhaul interface |
| typedef void(* epacket_receive_handler) (struct net_buf *packet) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Callback to run on received packet.
| packet | Received packet payload |
| enum epacket_interface_id |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/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 | |
| void epacket_default_receive_handler | ( | struct net_buf * | buf | ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Default ePacket receive handler.
Currently handles echo and RPC requests.
| buf | ePacket that was received |
| void epacket_gateway_receive_handler | ( | const struct device * | backhaul, |
| struct net_buf * | buf ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/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.
| backhaul | ePacket interface to forward packets on. |
| buf | ePacket that was received |
|
inlinestatic |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Get current maximum packet size.
| dev | Interface to query |
| size | Maximum packet size (header + payload + footer) |
| void epacket_queue | ( | const struct device * | dev, |
| struct net_buf * | buf ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Queue an ePacket for sending over an interface.
| dev | Interface to send packet on |
| buf | Packet to send |
| int epacket_receive | ( | const struct device * | dev, |
| k_timeout_t | timeout ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Enable receiving on the interface for a duration.
| dev | Interface to control receive on |
| timeout | Duration to receive for. K_FOREVER = Receive forever K_NO_WAIT = Stop receiving immediately |
| -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 |
|
inlinestatic |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Register to be notified of interface events.
| dev | Interface to receive callbacks for |
| cb | Callback struct to register |
| int epacket_send_key_ids | ( | const struct device * | dev, |
| k_timeout_t | timeout ) |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Send a INFUSE_KEY_IDS packet on an interface.
| dev | Interface to send packet on |
| timeout | Duration to wait for message buffer |
| 0 | If packet was queued |
| -EAGAIN | If packet buffer claim timed out |
|
inlinestatic |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Set the ePacket receive handler for an interface.
| dev | Interface to set handler for |
| handler | Handler function to run on received packets |
|
inlinestatic |
#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/epacket/interface.h>
Unregister from interface events.
| dev | Interface to unregister from |
| cb | Callback struct to unregister |
| true | If structure was removed from callback list |
| false | If structure was not present on list |