Public LoRa APIs.
More...
#include <zephyr/types.h>
#include <device.h>
Go to the source code of this file.
|
typedef int(* | lora_api_config) (const struct device *dev, struct lora_modem_config *config) |
| Callback API for configuring the LoRa module. More...
|
|
typedef int(* | lora_api_send) (const struct device *dev, uint8_t *data, uint32_t data_len) |
| Callback API for sending data over LoRa. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
|
enum | lora_signal_bandwidth { BW_125_KHZ = 0
, BW_250_KHZ
, BW_500_KHZ
} |
|
enum | lora_datarate {
SF_6 = 6
, SF_7
, SF_8
, SF_9
,
SF_10
, SF_11
, SF_12
} |
|
enum | lora_coding_rate { CR_4_5 = 1
, CR_4_6 = 2
, CR_4_7 = 3
, CR_4_8 = 4
} |
|
|
static int | lora_config (const struct device *dev, struct lora_modem_config *config) |
| Configure the LoRa modem. More...
|
|
static int | lora_send (const struct device *dev, uint8_t *data, uint32_t data_len) |
| Send data over LoRa. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
◆ lora_api_config
Callback API for configuring the LoRa module.
- See also
- lora_config() for argument descriptions.
◆ lora_api_recv
Callback API for receiving data over LoRa.
- See also
- lora_recv() for argument descriptions.
◆ lora_api_send
Callback API for sending data over LoRa.
- See also
- lora_send() for argument descriptions.
◆ lora_api_send_async
Callback API for sending data asynchronously over LoRa.
- See also
- lora_send_async() for argument descriptions.
◆ lora_api_test_cw
Callback API for transmitting a continuous wave.
- See also
- lora_test_cw() for argument descriptions.
◆ lora_coding_rate
Enumerator |
---|
CR_4_5 | |
CR_4_6 | |
CR_4_7 | |
CR_4_8 | |
◆ lora_datarate
Enumerator |
---|
SF_6 | |
SF_7 | |
SF_8 | |
SF_9 | |
SF_10 | |
SF_11 | |
SF_12 | |
◆ lora_signal_bandwidth
Enumerator |
---|
BW_125_KHZ | |
BW_250_KHZ | |
BW_500_KHZ | |
◆ lora_config()
Configure the LoRa modem.
- Parameters
-
dev | LoRa device |
config | Data structure containing the intended configuration for the modem |
- Returns
- 0 on success, negative on error
◆ lora_recv()
Receive data over LoRa.
- Note
- This is a blocking call.
- Parameters
-
dev | LoRa device |
data | Buffer to hold received data |
size | Size of the buffer to hold the received data. Max size allowed is 255. |
timeout | Duration to wait for a packet. |
rssi | RSSI of received data |
snr | SNR of received data |
- Returns
- Length of the data received on success, negative on error
◆ lora_send()
Send data over LoRa.
- Note
- This blocks until transmission is complete.
- Parameters
-
dev | LoRa device |
data | Data to be sent |
data_len | Length of the data to be sent |
- Returns
- 0 on success, negative on error
◆ lora_send_async()
Asynchronously send data over LoRa.
- Note
- This returns immediately after starting transmission, and locks the LoRa modem until the transmission completes.
- Parameters
-
dev | LoRa device |
data | Data to be sent |
data_len | Length of the data to be sent |
async | A 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()
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
-
dev | LoRa device |
frequency | Output frequency (Hertz) |
tx_power | TX power (dBm) |
duration | Transmission duration in seconds. |
- Returns
- 0 on success, negative on error