Skip to content
Snippets Groups Projects
Select Git revision
  • a037351f217e234c6d3aea7a888f81538cb107c5
  • master default protected
2 results

main.cpp

Blame
  • 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;