Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

main.cpp

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