kopia lustrzana https://github.com/jgromes/RadioLib
76 wiersze
1.7 KiB
C
76 wiersze
1.7 KiB
C
#ifndef _LORAWAN_H
|
|
#define _LORAWAN_H
|
|
|
|
#include <RadioLib.h>
|
|
#include "config.h"
|
|
|
|
#warning "You are required to implement persistence here! (ESP32 example provided in comments)"
|
|
|
|
// #include <Preferences.h>
|
|
// Preferences store;
|
|
// uint8_t LWnonces[RADIOLIB_LORAWAN_NONCES_BUF_SIZE];
|
|
|
|
bool lwBegin() {
|
|
#if (LORAWAN_OTAA == 1)
|
|
#if (LORAWAN_VERSION == 1)
|
|
node.beginOTAA(joinEUI, devEUI, nwkKey, appKey);
|
|
#else
|
|
node.beginOTAA(joinEUI, devEUI, NULL, appKey);
|
|
#endif
|
|
#else
|
|
#if (LORAWAN_VERSION == 1)
|
|
node.beginABP(devAddr, fNwkSIntKey, sNwkSIntKey, sNwkSEncKey, appSKey);
|
|
#else
|
|
node.beginABP(devAddr, NULL, NULL, sNwkSEncKey, appSKey);
|
|
#endif
|
|
#endif
|
|
return(true);
|
|
}
|
|
|
|
int16_t lwRestore() {
|
|
int16_t state = RADIOLIB_ERR_UNKNOWN;
|
|
|
|
// store.begin("radiolib");
|
|
// if (store.isKey("nonces")) {
|
|
// radio.standby();
|
|
|
|
// store.getBytes("nonces", LWnonces, RADIOLIB_LORAWAN_NONCES_BUF_SIZE);
|
|
// state = node.setBufferNonces(LWnonces);
|
|
// }
|
|
// store.end();
|
|
|
|
return(state);
|
|
}
|
|
|
|
void lwActivate() {
|
|
int16_t state = RADIOLIB_ERR_NETWORK_NOT_JOINED;
|
|
Serial.println(F("[LoRaWAN] Attempting network join ... "));
|
|
|
|
radio.standby();
|
|
|
|
#if (LORAWAN_OTAA == 1)
|
|
state = node.activateOTAA();
|
|
#else
|
|
state = node.activateABP();
|
|
#endif
|
|
|
|
if(state == RADIOLIB_LORAWAN_SESSION_RESTORED) {
|
|
Serial.println(F("[LoRaWAN] Session restored!"));
|
|
return;
|
|
}
|
|
|
|
// store.begin("radiolib");
|
|
// uint8_t *persist = node.getBufferNonces();
|
|
// store.putBytes("nonces", persist, RADIOLIB_LORAWAN_NONCES_BUF_SIZE);
|
|
// store.end();
|
|
|
|
if(state == RADIOLIB_LORAWAN_NEW_SESSION) {
|
|
Serial.println(F("[LoRaWAN] Successfully started new session!"));
|
|
return;
|
|
}
|
|
|
|
Serial.print(F("[LoRaWAN] Failed, code "));
|
|
Serial.println(state);
|
|
}
|
|
|
|
#endif |