Select Git revision
main.cpp 6.90 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>
class cLoRaWAN : public Arduino_LoRaWAN_ttn
{
public:
cLoRaWAN(){};
protected:
// you'll need to provide implementations for each of the following.
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)
{
// save uFcntDown somwwhere
}
void cLoRaWAN::NetSaveFCntUp(uint32_t uFCntUp)
{
// save uFCntUp somewhere
}
void cLoRaWAN::NetSaveSessionInfo(
const SessionInfo &Info,
const uint8_t *pExtraInfo,
size_t nExtraInfo)
{
// save Info somewhere.
}
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{};
static uint8_t mydata[] = "Hello, world!";
static osjob_t sendjob;