Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Data Structures

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

Enumerations

enum  lora_signal_bandwidth { BW_125_KHZ = 0 , BW_250_KHZ , BW_500_KHZ }
 LoRa signal bandwidth. More...
 
enum  lora_datarate {
  SF_6 = 6 , SF_7 , SF_8 , SF_9 ,
  SF_10 , SF_11 , SF_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 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

Since
2.2
Version
0.1.0

Enumeration Type Documentation

◆ lora_coding_rate

#include <zephyr/drivers/lora.h>

LoRa coding rate.

Enumerator
CR_4_5 
CR_4_6 
CR_4_7 
CR_4_8 

◆ lora_datarate

#include <zephyr/drivers/lora.h>

LoRa data-rate.

Enumerator
SF_6 
SF_7 
SF_8 
SF_9 
SF_10 
SF_11 
SF_12 

◆ lora_signal_bandwidth

#include <zephyr/drivers/lora.h>

LoRa signal bandwidth.

Enumerator
BW_125_KHZ 
BW_250_KHZ 
BW_500_KHZ 

Function Documentation

◆ lora_config()

static int lora_config ( const struct device * dev,
struct lora_modem_config * config )
inlinestatic

#include <zephyr/drivers/lora.h>

Configure the LoRa modem.

Parameters
devLoRa device
configData structure containing the intended configuration for the modem
Returns
0 on success, negative on error

◆ lora_recv()

static int lora_recv ( const struct device * dev,
uint8_t * data,
uint8_t size,
k_timeout_t timeout,
int16_t * rssi,
int8_t * snr )
inlinestatic

#include <zephyr/drivers/lora.h>

Receive data over LoRa.

Note
This is a blocking call.
Parameters
devLoRa device
dataBuffer to hold received data
sizeSize of the buffer to hold the received data. Max size allowed is 255.
timeoutDuration to wait for a packet.
rssiRSSI of received data
snrSNR of received data
Returns
Length of the data received on success, negative on error

◆ lora_recv_async()

static int lora_recv_async ( const struct device * dev,
lora_recv_cb cb,
void * user_data )
inlinestatic

#include <zephyr/drivers/lora.h>

Receive data asynchronously over LoRa.

Receive packets continuously under the configuration previously setup by lora_config.

Reception is cancelled by calling this function again with cb = NULL. This can be done within the callback handler.

Parameters
devModem to receive data on.
cbCallback to run on receiving data. If NULL, any pending asynchronous receptions will be cancelled.
user_dataUser data passed to callback
Returns
0 when reception successfully setup, negative on error

◆ lora_send()

static int lora_send ( const struct device * dev,
uint8_t * data,
uint32_t data_len )
inlinestatic

#include <zephyr/drivers/lora.h>

Send data over LoRa.

Note
This blocks until transmission is complete.
Parameters
devLoRa device
dataData to be sent
data_lenLength of the data to be sent
Returns
0 on success, negative on error

◆ lora_send_async()

static int lora_send_async ( const struct device * dev,
uint8_t * data,
uint32_t data_len,
struct k_poll_signal * async )
inlinestatic

#include <zephyr/drivers/lora.h>

Asynchronously send data over LoRa.

Note
This returns immediately after starting transmission, and locks the LoRa modem until the transmission completes.
Parameters
devLoRa device
dataData to be sent
data_lenLength of the data to be sent
asyncA pointer to a valid and ready to be signaled struct k_poll_signal. (Note: if NULL this function will not notify the end of the transmission).
Returns
0 on success, negative on error

◆ lora_test_cw()

static int lora_test_cw ( const struct device * dev,
uint32_t frequency,
int8_t tx_power,
uint16_t duration )
inlinestatic

#include <zephyr/drivers/lora.h>

Transmit an unmodulated continuous wave at a given frequency.

Note
Only use this functionality in a test setup where the transmission does not interfere with other devices.
Parameters
devLoRa device
frequencyOutput frequency (Hertz)
tx_powerTX power (dBm)
durationTransmission duration in seconds.
Returns
0 on success, negative on error