![]() |
SX126x-Arduino
2.0.1
|
#include "stdint.h"#include "mac/Commissioning.h"#include "boards/mcu/board.h"#include "mac/LoRaMac.h"#include "mac/region/Region.h"#include "mac/region/RegionAS923.h"Go to the source code of this file.
Data Structures | |
| 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_ONGOING, LMH_FAILED } |
| 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, LoRaMacRegion_t region=LORAMAC_REGION_EU868) |
| Lora Initialisation. More... | |
| lmh_error_status | lmh_send (lmh_app_data_t *app_data, lmh_confirm is_txconfirmed) |
| Send data. More... | |
| lmh_error_status | lmh_send_blocking (lmh_app_data_t *app_data, lmh_confirm is_tx_confirmed, uint32_t time_out) |
| Send data and wait for RX2 window closed or timeout occurs. 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... | |
| bool | lmh_setAS923Version (uint8_t version) |
| Adjust frequency band to AS923-1, AS923-2, AS923-3. 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, |
||
| LoRaMacRegion_t | region = LORAMAC_REGION_EU868 |
||
| ) |
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 |
| region | Choose LoRaWAN region to set correct region parameters, default to EU868 |
| 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 |
| lmh_error_status lmh_send_blocking | ( | lmh_app_data_t * | app_data, |
| lmh_confirm | is_tx_confirmed, | ||
| uint32_t | time_out | ||
| ) |
Send data and wait for RX2 window closed or timeout occurs.
| app_data | Pointer to data structure to be sent |
| is_txconfirmed | do we need confirmation? |
| time_out | time to wait in milliseconds |
| 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 |
| bool lmh_setAS923Version | ( | uint8_t | version | ) |
Adjust frequency band to AS923-1, AS923-2, AS923-3.
| version | 1 => use default frequencies (AS923-1) 2 => adjust frequencies by substracting 1.8MHz (AS923-2) 3 => adjust frequencies by substracting 6.6MHz (AS923-3) 4 => adjust frequencies by substracting 5.9MHz (AS923-4), only lower 8 channels supported |
| true | if success |
1.8.18