SX126x-Arduino
|
#include "stdint.h"
#include "mac/Commissioning.h"
#include "boards/mcu/board.h"
#include "mac/LoRaMac.h"
#include "mac/region/Region.h"
Go to the source code of this file.
Classes | |
struct | lmh_param_s |
struct | lmh_app_data_t |
Application Data structure. More... | |
struct | lmh_callback_s |
LoRaMac Helper Callbacks. More... | |
struct | LoraMacHelper_ComplianceTest_s |
LoRaWAN compliance tests support data. More... | |
Macros | |
#define | LORAWAN_CONFIRMED_MSG_ON 0 |
#define | LORAWAN_CERTIF_PORT 224 |
#define | LORAWAN_APP_PORT 2 |
#define | LORAWAN_APP_DATA_MAX_SIZE 242 |
#define | LORAWAN_DEFAULT_DATARATE DR_0 |
#define | LORAWAN_DEFAULT_TX_POWER TX_POWER_0 |
Typedefs | |
typedef struct lmh_param_s | lmh_param_t |
typedef struct lmh_callback_s | lmh_callback_t |
LoRaMac Helper Callbacks. More... | |
typedef struct LoraMacHelper_ComplianceTest_s | lmh_compliance_test_t |
LoRaWAN compliance tests support data. More... | |
Enumerations | |
enum | lmh_join_status { LMH_RESET = 0, LMH_SET = !LMH_RESET } |
enum | lmh_error_status { LMH_ERROR = -1, LMH_SUCCESS = 0 } |
enum | lmh_confirm { LMH_UNCONFIRMED_MSG = 0, LMH_CONFIRMED_MSG = !LMH_UNCONFIRMED_MSG } |
Functions | |
lmh_error_status | lmh_init (lmh_callback_t *callbacks, lmh_param_t lora_param) |
Lora Initialisation. More... | |
lmh_error_status | lmh_send (lmh_app_data_t *app_data, lmh_confirm is_txconfirmed) |
Send data. More... | |
void | lmh_join (void) |
Join a Lora Network in class A. More... | |
lmh_join_status | lmh_join_status_get (void) |
Check whether the Device is joined to the network. More... | |
lmh_error_status | lmh_class_request (DeviceClass_t newClass) |
change Lora Class More... | |
void | lmh_class_get (DeviceClass_t *currentClass) |
get the current Lora Class More... | |
void | lmh_datarate_set (uint8_t data_rate, uint8_t enable_adr) |
Configure data rate. More... | |
void | lmh_tx_power_set (uint8_t tx_power) |
Configure tx power. More... | |
void | lmh_setDevEui (uint8_t *userDevEui) |
Set Device IEEE EUI (big endian) More... | |
void | lmh_setAppEui (uint8_t *userAppEui) |
Set Application IEEE EUI. More... | |
void | lmh_setAppKey (uint8_t *userAppKey) |
Set Application Key AES encryption/decryption cipher application key. More... | |
void | lmh_setNwkSKey (uint8_t *userNwkSKey) |
Set Network Session Key AES encryption/decryption cipher network session key. More... | |
void | lmh_setAppSKey (uint8_t *userAppSKey) |
Set Application Session Key AES encryption/decryption cipher application session key. More... | |
void | lmh_setDevAddr (uint32_t userDevAddr) |
Set Device address on the network (big endian) More... | |
bool | lmh_setSubBandChannels (uint8_t subBand) |
Set custom channel mask. More... | |
void | lmh_setSingleChannelGateway (uint8_t userSingleChannel, int8_t userDatarate) |
Disable channel hoping for connnection to single channel gateways Check the file CHANNELS.MD to find out which channel corresponds to which frequency in a specific region Check the file Region.h to find out which datarate corresponds to which SF and bandwidth in a specific region. More... | |
#define LORAWAN_CONFIRMED_MSG_ON 0 |
LoRaWAN confirmed messages
#define LORAWAN_CERTIF_PORT 224 |
LoRaWAN certification port
#define LORAWAN_APP_PORT 2 |
LoRaWAN application port, do not use 224. It is reserved for certification
#define LORAWAN_APP_DATA_MAX_SIZE 242 |
LoRaWAN User application data buffer size
#define LORAWAN_DEFAULT_DATARATE DR_0 |
LoRaWAN Default datarate
#define LORAWAN_DEFAULT_TX_POWER TX_POWER_0 |
LoRaWAN Default tx power
typedef struct lmh_param_s lmh_param_t |
typedef struct lmh_callback_s lmh_callback_t |
LoRaMac Helper Callbacks.
typedef struct LoraMacHelper_ComplianceTest_s lmh_compliance_test_t |
LoRaWAN compliance tests support data.
enum lmh_join_status |
enum lmh_error_status |
enum lmh_confirm |
lmh_error_status lmh_init | ( | lmh_callback_t * | callbacks, |
lmh_param_t | lora_param | ||
) |
Lora Initialisation.
[in] | callbacks | Pointer to structure containing the callback functions |
[in] | LoRaParam | Pointer to structure containing the parameters |
lmh_error_status lmh_send | ( | lmh_app_data_t * | app_data, |
lmh_confirm | is_txconfirmed | ||
) |
Send data.
[in] | app_data | Pointer to data structure to be sent |
[in] | is_txconfirmed | do we need confirmation? |
error | status |
void lmh_join | ( | void | ) |
Join a Lora Network in class A.
lmh_join_status lmh_join_status_get | ( | void | ) |
Check whether the Device is joined to the network.
returns | LORAMACHELPER_SET if joined |
lmh_error_status lmh_class_request | ( | DeviceClass_t | newClass | ) |
change Lora Class
@Note callback LORA_ConfirmClass informs upper layer that the change has occured @Note Only switch from class A to class B/C OR from class B/C to class A is allowed @Attention can be called only in LORA_ClassSwitchSlot or LORA_RxData callbacks
[in] | DeviceClass_t | NewClass |
LoraErrorStatus |
void lmh_class_get | ( | DeviceClass_t * | currentClass | ) |
get the current Lora Class
[in] | DeviceClass_t | NewClass |
void lmh_datarate_set | ( | uint8_t | data_rate, |
uint8_t | enable_adr | ||
) |
Configure data rate.
[in] | data_rate | data rate |
[in] | enable_adr | enable adaptative data rate |
void lmh_tx_power_set | ( | uint8_t | tx_power | ) |
Configure tx power.
[in] | tx_power | tx power |
void lmh_setDevEui | ( | uint8_t * | userDevEui | ) |
Set Device IEEE EUI (big endian)
[in] | Device | EUI as uint8_t[] * |
void lmh_setAppEui | ( | uint8_t * | userAppEui | ) |
Set Application IEEE EUI.
[in] | Application | IEEE EUI as uint8_t[] * |
void lmh_setAppKey | ( | uint8_t * | userAppKey | ) |
Set Application Key AES encryption/decryption cipher application key.
[in] | Application | Key as uint8_t[] * |
void lmh_setNwkSKey | ( | uint8_t * | userNwkSKey | ) |
Set Network Session Key AES encryption/decryption cipher network session key.
[in] | Network | Session Key as uint8_t[] * |
void lmh_setAppSKey | ( | uint8_t * | userAppSKey | ) |
Set Application Session Key AES encryption/decryption cipher application session key.
[in] | Application | Session Key as uint8_t[] * |
void lmh_setDevAddr | ( | uint32_t | userDevAddr | ) |
Set Device address on the network (big endian)
[in] | Device | address as uint8_t[] * |
bool lmh_setSubBandChannels | ( | uint8_t | subBand | ) |
Set custom channel mask.
[in] | sub | channel number 1 to 8 |
void lmh_setSingleChannelGateway | ( | uint8_t | userSingleChannel, |
int8_t | userDatarate | ||
) |
Disable channel hoping for connnection to single channel gateways Check the file CHANNELS.MD to find out which channel corresponds to which frequency in a specific region Check the file Region.h to find out which datarate corresponds to which SF and bandwidth in a specific region.
[in] | Channel | to be used |
[in] | Datarate | to be used |