11#ifndef ARES_LORA_BACKEND_H
12#define ARES_LORA_BACKEND_H
15#include <zephyr/drivers/lora.h>
16#include <zephyr/kernel.h>
23#if defined(CONFIG_ARES_LORA_TX_RINGBUF_SIZE)
27#define LORA_BACKEND_TX_RINGBUF_SIZE CONFIG_ARES_LORA_TX_RINGBUF_SIZE
32#define LORA_BACKEND_TX_RINGBUF_SIZE 512
35#if defined(CONFIG_ARES_LORA_RX_RINGBUF_SIZE)
39#define LORA_BACKEND_RX_RINGBUF_SIZE CONFIG_ARES_LORA_RX_RINGBUF_SIZE
44#define LORA_BACKEND_RX_RINGBUF_SIZE 512
55 const struct device *
dev;
112#define LORA_STRUCT struct lora_async_driven
118#define LORA_DEFINE(_name) \
119 static LORA_STRUCT UTIL_CAT(_name, _backend_lora); \
120 static struct ares_lora_transport _name = { \
121 .api = &ares_lora_transport_api, \
122 .ctx = &UTIL_CAT(_name, _backend_lora)}
void(* lora_transport_handler_t)(enum lora_transport_evt evt, void *ctx)
LoRa transport event handler prototype.
Definition lora.h:33
#define LORA_BACKEND_RX_RINGBUF_SIZE
Definition lora_backend.h:44
const struct ares_lora * ares_lora_backend_lora_get_ptr(void)
Provides pointer to the ares_lora backend instance.
#define LORA_BACKEND_TX_RINGBUF_SIZE
Definition lora_backend.h:32
Unified LoRa transport interface.
Definition lora.h:45
Ares LoRa internals.
Definition lora.h:262
LoRa async driven transport layer internals.
Definition lora_backend.h:77
atomic_t tx_busy
Definition lora_backend.h:106
uint8_t tx_buf[LORA_BACKEND_TX_RINGBUF_SIZE]
Definition lora_backend.h:96
struct ring_buf tx_ringbuf
Definition lora_backend.h:86
uint8_t rx_buf[LORA_BACKEND_RX_RINGBUF_SIZE]
Definition lora_backend.h:101
struct ring_buf rx_ringbuf
Definition lora_backend.h:91
struct lora_common common
Definition lora_backend.h:81
LoRa transfer layer common internals.
Definition lora_backend.h:51
struct lora_modem_config config
Definition lora_backend.h:70
lora_transport_handler_t handler
Definition lora_backend.h:60
void * context
Definition lora_backend.h:65
const struct device * dev
Definition lora_backend.h:55