Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
LoRa Driver Backend API

Data Structures

struct  lora_driver_api
  Driver Operations LoRa driver operations More...

Typedefs

typedef void(* lora_recv_cb) (const struct device *dev, uint8_t *data, uint16_t size, int16_t rssi, int8_t snr, void *user_data)
 Callback API for receiving data asynchronously.
typedef void(* lora_cad_cb) (const struct device *dev, bool activity_detected, void *user_data)
 Callback API for channel activity detection asynchronously.
typedef int(* lora_api_config) (const struct device *dev, const struct lora_modem_config *config)
 Callback API for configuring the LoRa module.
typedef uint32_t(* lora_api_airtime) (const struct device *dev, uint32_t data_len)
 Callback API for querying packet airtime.
typedef int(* lora_api_send) (const struct device *dev, uint8_t *data, uint32_t data_len)
 Callback API for sending data over LoRa.
typedef int(* lora_api_send_async) (const struct device *dev, uint8_t *data, uint32_t data_len, struct k_poll_signal *async)
 Callback API for sending data asynchronously over LoRa.
typedef int(* lora_api_recv) (const struct device *dev, uint8_t *data, uint8_t size, k_timeout_t timeout, int16_t *rssi, int8_t *snr)
 Callback API for receiving data over LoRa.
typedef int(* lora_api_recv_async) (const struct device *dev, lora_recv_cb cb, void *user_data)
 Callback API for receiving data asynchronously over LoRa.
typedef int(* lora_api_cad) (const struct device *dev, k_timeout_t timeout)
 Callback API for channel activity detection.
typedef int(* lora_api_cad_async) (const struct device *dev, lora_cad_cb cb, void *user_data)
 Callback API for channel activity detection asynchronously.
typedef int(* lora_api_recv_duty_cycle) (const struct device *dev, k_timeout_t rx_period, k_timeout_t sleep_period, uint8_t *data, uint8_t size, k_timeout_t timeout, int16_t *rssi, int8_t *snr)
 Callback API for blocking receive with duty cycling.
typedef int(* lora_api_recv_duty_cycle_async) (const struct device *dev, k_timeout_t rx_period, k_timeout_t sleep_period, lora_recv_cb cb, void *user_data)
 Callback API for receive duty cycling (wake-on-radio).
typedef int(* lora_api_test_cw) (const struct device *dev, uint32_t frequency, int8_t tx_power, uint16_t duration)
 Callback API for transmitting a continuous wave.

Detailed Description

This group contains the API type definitions, callback signatures, and other helpers required to implement a LoRa driver.

Typedef Documentation

◆ lora_api_airtime

typedef uint32_t(* lora_api_airtime) (const struct device *dev, uint32_t data_len)

#include <zephyr/drivers/lora.h>

Callback API for querying packet airtime.

See also
lora_airtime() for argument descriptions.

◆ lora_api_cad

typedef int(* lora_api_cad) (const struct device *dev, k_timeout_t timeout)

#include <zephyr/drivers/lora.h>

Callback API for channel activity detection.

See also
lora_cad() for argument descriptions.

◆ lora_api_cad_async

typedef int(* lora_api_cad_async) (const struct device *dev, lora_cad_cb cb, void *user_data)

#include <zephyr/drivers/lora.h>

Callback API for channel activity detection asynchronously.

See also
lora_cad_async() for argument descriptions.

◆ lora_api_config

typedef int(* lora_api_config) (const struct device *dev, const struct lora_modem_config *config)

#include <zephyr/drivers/lora.h>

Callback API for configuring the LoRa module.

See also
lora_config() for argument descriptions.

◆ lora_api_recv

typedef int(* lora_api_recv) (const struct device *dev, uint8_t *data, uint8_t size, k_timeout_t timeout, int16_t *rssi, int8_t *snr)

#include <zephyr/drivers/lora.h>

Callback API for receiving data over LoRa.

See also
lora_recv() for argument descriptions.

◆ lora_api_recv_async

typedef int(* lora_api_recv_async) (const struct device *dev, lora_recv_cb cb, void *user_data)

#include <zephyr/drivers/lora.h>

Callback API for receiving data asynchronously over LoRa.

Parameters
devModem to receive data on.
cbCallback to run on receiving data.

◆ lora_api_recv_duty_cycle

typedef int(* lora_api_recv_duty_cycle) (const struct device *dev, k_timeout_t rx_period, k_timeout_t sleep_period, uint8_t *data, uint8_t size, k_timeout_t timeout, int16_t *rssi, int8_t *snr)

#include <zephyr/drivers/lora.h>

Callback API for blocking receive with duty cycling.

See also
lora_recv_duty_cycle() for argument descriptions.

◆ lora_api_recv_duty_cycle_async

typedef int(* lora_api_recv_duty_cycle_async) (const struct device *dev, k_timeout_t rx_period, k_timeout_t sleep_period, lora_recv_cb cb, void *user_data)

#include <zephyr/drivers/lora.h>

Callback API for receive duty cycling (wake-on-radio).

See also
lora_recv_duty_cycle_async() for argument descriptions.

◆ lora_api_send

typedef int(* lora_api_send) (const struct device *dev, uint8_t *data, uint32_t data_len)

#include <zephyr/drivers/lora.h>

Callback API for sending data over LoRa.

See also
lora_send() for argument descriptions.

◆ lora_api_send_async

typedef int(* lora_api_send_async) (const struct device *dev, uint8_t *data, uint32_t data_len, struct k_poll_signal *async)

#include <zephyr/drivers/lora.h>

Callback API for sending data asynchronously over LoRa.

See also
lora_send_async() for argument descriptions.

◆ lora_api_test_cw

typedef int(* lora_api_test_cw) (const struct device *dev, uint32_t frequency, int8_t tx_power, uint16_t duration)

#include <zephyr/drivers/lora.h>

Callback API for transmitting a continuous wave.

See also
lora_test_cw() for argument descriptions.

◆ lora_cad_cb

typedef void(* lora_cad_cb) (const struct device *dev, bool activity_detected, void *user_data)

#include <zephyr/drivers/lora.h>

Callback API for channel activity detection asynchronously.

Parameters
devLoRa device
activity_detectedtrue if LoRa activity was detected on the channel
user_dataUser data passed to lora_cad_async

◆ lora_recv_cb

typedef void(* lora_recv_cb) (const struct device *dev, uint8_t *data, uint16_t size, int16_t rssi, int8_t snr, void *user_data)

#include <zephyr/drivers/lora.h>

Callback API for receiving data asynchronously.

See also
lora_recv() for argument descriptions.