Select Git revision
main.cpp 10.52 KiB
#include <config.h>
#include <axp20x.h>
#include <Arduino_LoRaWAN_ttn.h>
#include <lmic.h>
#include <hal/hal.h>
#include <SPI.h>
#include <TinyGPS++.h>
#include <CayenneLPP.h>
#include <OneButton.h>
class cLoRaWAN : public Arduino_LoRaWAN_ttn
{
public:
cLoRaWAN(){};
protected:
virtual bool GetOtaaProvisioningInfo(Arduino_LoRaWAN::OtaaProvisioningInfo *) override;
virtual void NetSaveFCntUp(uint32_t uFCntUp) override;
virtual void NetSaveFCntDown(uint32_t uFCntDown) override;
virtual void NetSaveSessionInfo(const SessionInfo &Info, const uint8_t *pExtraInfo, size_t nExtraInfo) override;
};
bool cLoRaWAN::GetOtaaProvisioningInfo(
OtaaProvisioningInfo *pInfo)
{
static const uint8_t DEVEUI[8] = TTN_DEVEUI;
static const uint8_t APPEUI[8] = TTN_APPEUI;
static const uint8_t APPKEY[16] = TTN_APPKEY;
if (pInfo)
{
memcpy(pInfo->AppKey, APPKEY, sizeof(APPKEY));
memcpy(pInfo->DevEUI, DEVEUI, sizeof(DEVEUI));
memcpy(pInfo->AppEUI, APPEUI, sizeof(APPEUI));
}
return true;
}
void cLoRaWAN::NetSaveFCntDown(uint32_t uFCntDown)
{
}
void cLoRaWAN::NetSaveFCntUp(uint32_t uFCntUp)
{
}
void cLoRaWAN::NetSaveSessionInfo(
const SessionInfo &Info,
const uint8_t *pExtraInfo,
size_t nExtraInfo)
{
}
const cLoRaWAN::lmic_pinmap pinMap = {
.nss = 18,
.rxtx = cLoRaWAN::lmic_pinmap::LMIC_UNUSED_PIN,
.rst = 23,
.dio = {26, 33, 32},
};
AXP20X_Class axp;
HardwareSerial GPS(1);
TinyGPSPlus gps;
cLoRaWAN LoRaWAN{};
CayenneLPP lpp(55);
DynamicJsonDocument jsonBuffer(1024);
bool gpsFix = false;
bool statusSending = false;
bool statusSent = false;
unsigned long timerGpsFix;