Zephyr Project API 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
lora.h File Reference

Main header file for LoRa driver API. More...

#include <stdint.h>
#include <zephyr/kernel.h>
#include <zephyr/device.h>

Go to the source code of this file.

Data Structures

struct  lora_modem_config
 Structure containing the configuration of a LoRa modem. More...

Enumerations

enum  lora_signal_bandwidth {
  BW_7_KHZ = 7 , BW_10_KHZ = 10 , BW_15_KHZ = 15 , BW_20_KHZ = 20 ,
  BW_31_KHZ = 31 , BW_41_KHZ = 41 , BW_62_KHZ = 62 , BW_125_KHZ = 125 ,
  BW_200_KHZ = 200 , BW_250_KHZ = 250 , BW_400_KHZ = 400 , BW_500_KHZ = 500 ,
  BW_800_KHZ = 800 , BW_1000_KHZ = 1000 , BW_1600_KHZ = 1600
}
 LoRa signal bandwidth. More...
enum  lora_datarate {
  SF_5 = 5 , SF_6 = 6 , SF_7 = 7 , SF_8 = 8 ,
  SF_9 = 9 , SF_10 = 10 , SF_11 = 11 , SF_12 = 12
}
 LoRa data-rate. More...
enum  lora_coding_rate { CR_4_5 = 1 , CR_4_6 = 2 , CR_4_7 = 3 , CR_4_8 = 4 }
 LoRa coding rate. More...

Functions

static int lora_config (const struct device *dev, struct lora_modem_config *config)
 Configure the LoRa modem.
static uint32_t lora_airtime (const struct device *dev, uint32_t data_len)
 Query the airtime of a packet with a given length.
static int lora_send (const struct device *dev, uint8_t *data, uint32_t data_len)
 Send data over LoRa.
static int lora_send_async (const struct device *dev, uint8_t *data, uint32_t data_len, struct k_poll_signal *async)
 Asynchronously send data over LoRa.
static int lora_recv (const struct device *dev, uint8_t *data, uint8_t size, k_timeout_t timeout, int16_t *rssi, int8_t *snr)
 Receive data over LoRa.
static int lora_recv_async (const struct device *dev, lora_recv_cb cb, void *user_data)
 Receive data asynchronously over LoRa.
static int lora_test_cw (const struct device *dev, uint32_t frequency, int8_t tx_power, uint16_t duration)
 Transmit an unmodulated continuous wave at a given frequency.

Detailed Description

Main header file for LoRa driver API.