![]() |
SX126x-Arduino
1.3.0
|
#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, bool otaa, eDeviceClass nodeClass=CLASS_A) |
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... | |
uint32_t | lmh_getDevAddr (void) |
Returns the Device address set by the LoRaWan server after OTAA join success. 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, | ||
bool | otaa, | ||
eDeviceClass | nodeClass = CLASS_A |
||
) |
Lora Initialisation.
callbacks | Pointer to structure containing the callback functions |
lora_param | Pointer to structure containing the parameters |
otaa | Choose OTAA (true) or ABP (false) activation |
nodeClass | Choose node class CLASS_A, CLASS_B or CLASS_C, default to CLASS_A |
error | status |
lmh_error_status lmh_send | ( | lmh_app_data_t * | app_data, |
lmh_confirm | is_txconfirmed | ||
) |
Send data.
app_data | Pointer to data structure to be sent |
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 |
uint32_t lmh_getDevAddr | ( | void | ) |
Returns the Device address set by the LoRaWan server after OTAA join success.
returns | Device Address |
lmh_error_status lmh_class_request | ( | DeviceClass_t | newClass | ) |
change Lora Class
newClass | DeviceClass_t NewClass |
LoraErrorStatus |
void lmh_class_get | ( | DeviceClass_t * | currentClass | ) |
get the current Lora Class
currentClass | DeviceClass_t NewClass |
void lmh_datarate_set | ( | uint8_t | data_rate, |
uint8_t | enable_adr | ||
) |
Configure data rate.
data_rate | data rate |
enable_adr | enable adaptative data rate |
void lmh_tx_power_set | ( | uint8_t | tx_power | ) |
Configure tx power.
tx_power | tx power |
void lmh_setDevEui | ( | uint8_t * | userDevEui | ) |
Set Device IEEE EUI (big endian)
userDevEui | Device EUI as uint8_t[] * |
void lmh_setAppEui | ( | uint8_t * | userAppEui | ) |
Set Application IEEE EUI.
userAppEui | Application IEEE EUI as uint8_t[] * |
void lmh_setAppKey | ( | uint8_t * | userAppKey | ) |
Set Application Key AES encryption/decryption cipher application key.
userAppKey | Application Key as uint8_t[] * |
void lmh_setNwkSKey | ( | uint8_t * | userNwkSKey | ) |
Set Network Session Key AES encryption/decryption cipher network session key.
userNwkSKey | Network Session Key as uint8_t[] * |
void lmh_setAppSKey | ( | uint8_t * | userAppSKey | ) |
Set Application Session Key AES encryption/decryption cipher application session key.
userAppSKey | Application Session Key as uint8_t[] * |
void lmh_setDevAddr | ( | uint32_t | userDevAddr | ) |
Set Device address on the network (big endian)
userDevAddr | Device address as uint8_t[] * |
bool lmh_setSubBandChannels | ( | uint8_t | subBand | ) |
Set custom channel mask.
subBand | 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.
userSingleChannel | Channel to be used |
userDatarate | Datarate to be used |