IoT Drivers  v3.3.0 (S2022)
Engineering in Software Technology
lora_driver.h
Go to the documentation of this file.
1 
35 #ifndef LORA_DRIVER_H_
36 #define LORA_DRIVER_H_
37 #include <stdbool.h>
38 #include <ATMEGA_FreeRTOS.h>
39 #include <message_buffer.h>
40 
41 #include <serial.h>
42 
43 #define LORA_MAX_PAYLOAD_LENGTH 20 /* bytes - Must newer be changed!!!*/
44 
51 typedef struct lora_driver_payload {
52  uint8_t portNo;
53  uint8_t len;
56 
66  LORA_OK
88 
93 typedef enum lora_driver_joinModes {
94  LORA_OTAA = 0
97 
103  LORA_OFF = 0
106 
112  LORA_AR_ON
115 
116 /* ======================================================================================================================= */
124 
125 /* ======================================================================================================================= */
137 void lora_driver_initialise(serial_comPort_t comPort, MessageBufferHandle_t downlinkMessageBuffer);
138 
139 /* ======================================================================================================================= */
165 lora_driver_returnCode_t lora_driver_setOtaaIdentity(char appEUI[17], char appKEY[33], char devEUI[17]);
166 
167 /* ======================================================================================================================= */
193 
194 /* ======================================================================================================================= */
203 
204 /* ======================================================================================================================= */
230 lora_driver_returnCode_t lora_driver_setAbpIdentity(char nwkSKEY[33], char appSKEY[33], char devADD[9]);
231 
232 /* ======================================================================================================================= */
242 
243 /* ======================================================================================================================= */
254 
255 /* ======================================================================================================================= */
268 
269 /* ======================================================================================================================= */
282 
283 /* ======================================================================================================================= */
296 
297 /* ======================================================================================================================= */
310 
311 /* ======================================================================================================================= */
324 
325 /* ======================================================================================================================= */
338 
339 /* ======================================================================================================================= */
350 
351 /* ======================================================================================================================= */
365 
366 /* ======================================================================================================================= */
377 
378 /* ======================================================================================================================= */
389 
390 /* ======================================================================================================================= */
402 
403 /* ======================================================================================================================= */
415 
416 /* ======================================================================================================================= */
427 
428 /* ======================================================================================================================= */
443 
444 /* ======================================================================================================================= */
459 lora_driver_returnCode_t lora_driver_getLinkCheckResult(uint8_t * no_gwys, uint8_t * margin);
460 
461 /* ======================================================================================================================= */
474 
475 /* ======================================================================================================================= */
483 void lora_driver_resetRn2483(uint8_t state);
484 
485 /* ======================================================================================================================= */
492 
493 /* ======================================================================================================================= */
506 
507 /* ======================================================================================================================= */
518 
519 /* ======================================================================================================================= */
531 
532 /* ======================================================================================================================= */
543 
544 /* ======================================================================================================================= */
561 
562 /* ======================================================================================================================= */
573 
574 /* ======================================================================================================================= */
584 
585 /* ======================================================================================================================= */
595 
866 #endif /* LORA_DRIVER_H_ */
lora_driver_adaptiveDataRate_t
enum lora_driver_adaptiveDataRateModes lora_driver_adaptiveDataRate_t
Adaptive data rates (ADR) modes.
LORA_MAX_PAYLOAD_LENGTH
#define LORA_MAX_PAYLOAD_LENGTH
Definition: lora_driver.h:43
LORA_FRAME_COUNTER_ERR_REJOIN_NEEDED
@ LORA_FRAME_COUNTER_ERR_REJOIN_NEEDED
Definition: lora_driver.h:80
LORA_UNKNOWN
@ LORA_UNKNOWN
Definition: lora_driver.h:86
LORA_MAC_PAUSED
@ LORA_MAC_PAUSED
Definition: lora_driver.h:72
LORA_KEYS_NOT_INIT
@ LORA_KEYS_NOT_INIT
Definition: lora_driver.h:68
lora_driver_flushBuffers
void lora_driver_flushBuffers(void)
Flush the internal buffers in the driver.
LORA_ERROR
@ LORA_ERROR
Definition: lora_driver.h:67
lora_driver_joinMode_t
enum lora_driver_joinModes lora_driver_joinMode_t
Join modes.
lora_driver_join
lora_driver_returnCode_t lora_driver_join(lora_driver_joinMode_t mode)
Joins a LoRaWAN either with ABP or OTAA.
lora_driver_getAdaptiveDataRate
lora_driver_returnCode_t lora_driver_getAdaptiveDataRate(lora_driver_adaptiveDataRate_t *state)
Get adaptive data rate (ADR).
lora_driver_setLinkCheckInterval
lora_driver_returnCode_t lora_driver_setLinkCheckInterval(uint16_t sec)
Set the delay each link check is performed.
lora_driver_setSpreadingFactor
lora_driver_returnCode_t lora_driver_setSpreadingFactor(uint8_t sf)
Set the spreading factor for the communication.
lora_driver_setDeviceIdentifier
lora_driver_returnCode_t lora_driver_setDeviceIdentifier(const char devEUI[17])
Set the device EUI.
lora_driver_setReceiveDelay
lora_driver_returnCode_t lora_driver_setReceiveDelay(uint16_t rxDelay1)
Set the delay between a transmission and the first receiver window.
lora_driver_initialise
void lora_driver_initialise(serial_comPort_t comPort, MessageBufferHandle_t downlinkMessageBuffer)
Initialise the LoRa driver..
lora_driver_returnCode_t
enum Lora_driver_returnCodes lora_driver_returnCode_t
LoRA Driver return codes.
lora_driver_joinModes
lora_driver_joinModes
Join modes.
Definition: lora_driver.h:93
lora_driver_pauseMac
lora_driver_returnCode_t lora_driver_pauseMac(void)
Pause the MAC layer in the RN2483 module.
lora_driver_automaticReplyModes
lora_driver_automaticReplyModes
Automatic Reply (AR) modes.
Definition: lora_driver.h:111
LORA_NOT_JOINED
@ LORA_NOT_JOINED
Definition: lora_driver.h:77
LORA_ON
@ LORA_ON
Definition: lora_driver.h:104
lora_driver_setDeviceAddress
lora_driver_returnCode_t lora_driver_setDeviceAddress(const char devAddr[9])
Set the Device address.
lora_driver_setNetworkSessionKey
lora_driver_returnCode_t lora_driver_setNetworkSessionKey(const char nwkSKey[33])
Set the Network Session Key.
lora_driver_resetRn2483
void lora_driver_resetRn2483(uint8_t state)
Controls the reset pin on the RN2483 Module.
lora_driver_configureToEu868
lora_driver_returnCode_t lora_driver_configureToEu868(void)
Set the driver up to using EU868 standard.
lora_driver_adaptiveDataRateModes
lora_driver_adaptiveDataRateModes
Adaptive data rates (ADR) modes.
Definition: lora_driver.h:102
lora_driver_payload::len
uint8_t len
Definition: lora_driver.h:53
lora_driver_getRn2483Hweui
lora_driver_returnCode_t lora_driver_getRn2483Hweui(char hwDevEUI[17])
Get the RN2483 factory set devEUI.
lora_driver_sendUploadMessage
lora_driver_returnCode_t lora_driver_sendUploadMessage(bool confirmed, lora_driver_payload_t *payload)
Send a upload message to the LoRaWAN.
LORA_NO_FREE_CH
@ LORA_NO_FREE_CH
Definition: lora_driver.h:69
lora_driver_setApplicationSessionKey
lora_driver_returnCode_t lora_driver_setApplicationSessionKey(const char appSKey[33])
Set the Application Session Key.
lora_driver_payload_t
struct lora_driver_payload lora_driver_payload_t
Payload data structure.
lora_driver_setDataRate
lora_driver_returnCode_t lora_driver_setDataRate(uint8_t dr)
Set data rate.
LORA_SILENT
@ LORA_SILENT
Definition: lora_driver.h:70
lora_driver_setAutomaticReply
lora_driver_returnCode_t lora_driver_setAutomaticReply(lora_driver_automaticReplyMode_t ar)
Set automatic reply on down link messages.
lora_driver_getLinkCheckResult
lora_driver_returnCode_t lora_driver_getLinkCheckResult(uint8_t *no_gwys, uint8_t *margin)
Get the results of the latest received Link Check.
lora_driver_getDataRate
lora_driver_returnCode_t lora_driver_getDataRate(uint8_t *dr)
Get data rate.
LORA_BUSY
@ LORA_BUSY
Definition: lora_driver.h:71
lora_driver_setApplicationKey
lora_driver_returnCode_t lora_driver_setApplicationKey(const char appKey[33])
Set the Application Key.
LORA_AR_ON
@ LORA_AR_ON
Definition: lora_driver.h:112
LORA_INVALID_DATA_LEN
@ LORA_INVALID_DATA_LEN
Definition: lora_driver.h:78
LORA_OK
@ LORA_OK
Definition: lora_driver.h:66
lora_driver_automaticReplyMode_t
enum lora_driver_automaticReplyModes lora_driver_automaticReplyMode_t
Automatic Reply (AR) modes.
lora_driver_mapReturnCodeToText
char * lora_driver_mapReturnCodeToText(lora_driver_returnCode_t returnCode)
Map a LoRa Driver return code into corresponding text.
lora_driver_rn2483Reboot
lora_driver_returnCode_t lora_driver_rn2483Reboot(void)
Reset the RN2483 module.
LORA_OTAA
@ LORA_OTAA
Definition: lora_driver.h:94
lora_driver_setOtaaIdentity
lora_driver_returnCode_t lora_driver_setOtaaIdentity(char appEUI[17], char appKEY[33], char devEUI[17])
Set identifiers and keys for a OTAA join.
LORA_MAC_RX
@ LORA_MAC_RX
Definition: lora_driver.h:83
lora_driver_payload::bytes
uint8_t bytes[LORA_MAX_PAYLOAD_LENGTH]
Definition: lora_driver.h:54
lora_driver_saveMac
lora_driver_returnCode_t lora_driver_saveMac(void)
Save the set parameters into the EEPROM of the RN2483 module.
LORA_OFF
@ LORA_OFF
Definition: lora_driver.h:103
LORA_DENIED
@ LORA_DENIED
Definition: lora_driver.h:73
LORA_MAC_ERROR
@ LORA_MAC_ERROR
Definition: lora_driver.h:84
LORA_MAC_TX_OK
@ LORA_MAC_TX_OK
Definition: lora_driver.h:81
lora_driver_setApplicationIdentifier
lora_driver_returnCode_t lora_driver_setApplicationIdentifier(const char appEUI[17])
Set the Application EUI.
LORA_ACCEPTED
@ LORA_ACCEPTED
Definition: lora_driver.h:75
LORA_INVALID_PARAM
@ LORA_INVALID_PARAM
Definition: lora_driver.h:76
lora_driver_setAbpIdentity
lora_driver_returnCode_t lora_driver_setAbpIdentity(char nwkSKEY[33], char appSKEY[33], char devADD[9])
Set identifiers and keys for a ABP join.
lora_driver_rn2483GetVdd
lora_driver_returnCode_t lora_driver_rn2483GetVdd(char mv[5])
Get the RN2483 modules supply voltage VDD.
lora_driver_payload
Payload data structure.
Definition: lora_driver.h:51
lora_driver_rn2483FactoryReset
lora_driver_returnCode_t lora_driver_rn2483FactoryReset(void)
Reset the RN2483 module.
LORA_ABP
@ LORA_ABP
Definition: lora_driver.h:95
LORA_AR_OFF
@ LORA_AR_OFF
Definition: lora_driver.h:113
lora_driver_payload::portNo
uint8_t portNo
Definition: lora_driver.h:52
lora_driver_getMaxPayloadSize
uint8_t lora_driver_getMaxPayloadSize(void)
Get max payload size in bytes.
Lora_driver_returnCodes
Lora_driver_returnCodes
LoRA Driver return codes.
Definition: lora_driver.h:65
lora_driver_getAutomaticReply
lora_driver_returnCode_t lora_driver_getAutomaticReply(lora_driver_automaticReplyMode_t *ar)
Get automatic reply setting for down link messages.
lora_driver_setAdaptiveDataRate
lora_driver_returnCode_t lora_driver_setAdaptiveDataRate(lora_driver_adaptiveDataRate_t state)
Set adaptive data rate (ADR).
lora_driver_resumeMac
lora_driver_returnCode_t lora_driver_resumeMac(void)
Resume the MAC layer in the RN2483 module.
lora_driver_sleep
lora_driver_returnCode_t lora_driver_sleep(uint32_t ms)
Set the RN2384 module in sleep mode for a given periode.