Skip to content
Snippets Groups Projects
navigation.h 2.24 KiB
#ifndef NAVIGATION_H
#define NAVIGATION_H

#include <vector>
#include <iostream>
#include <memory>


extern "C"
{
    #include "../deps/RTKLIB/src/rtklib.h"
}

namespace GNSSUtils
{
  class Navigation
  {
    public:
      // Constructor & Destructor
      Navigation();
      ~Navigation();

      // Public objects

      // Public methods

      void clearNavigation();

      void setNavigation(nav_t nav);

      nav_t getNavigation();


      /****************** Array memory management ******************/


      // Ephemeris
      void allocateEphemeris(int n_sat = MAXSAT);

      void deleteEphemeris();

      void allocateGLONASSEphemeris(int n_sat = NSATGLO);

      void deleteGLONASSEphemeris();

      void allocateSBASEphemeris(int n_sat = NSATSBS*2); //SBAS

      void deleteSBASEphemeris();

      void allocateAlmanac(int n_sat = MAXSAT);

      void deleteAlmanac();


      // UTC
      void allocateUTCGPS(int n);    //GPS

      void deleteUTCGPS();

      void allocateUTCGlo(int n);    // Glo

      void deleteUTCGlo();

      void allocateUTCGal(int n);    // Galileo

      void deleteUTCGal();

      void allocateUTCQZS(int n);    // QZS

      void deleteUTCQZS();

      void allocateUTCCMP(int n);    // BeiDou

      void deleteUTCCMP();

      void allocateUTCSBAS(int n);    // SBAS

      void deleteUTCSBAS();


      // Ionosphere
      void allocateIonGPS(int n);      // GPS

      void deleteIonGPS();

      void allocateIonGal(int n);      // Galileo

      void deleteIonGal();

      void allocateIonQZS(int n);      // QZS

      void deleteIonQZS();

      void allocateIonCMP(int n);      // BeiDou

      void deleteIonCMP();


      //Others
      void allocatelam(int n);

      void deletelam();

      void allocatecbias(int n);

      void deletecbias();

      void allocatewlbias(int n);

      void deletewlbias();

      void allocateglocpbias(int n);

      void deleteglocpbias();

      void allocateglofcn(int n);

      void deleteglofcn();

      void allocatepcv(int n);

      void deletepcv();

      void allocatesbsion(int n);

      void deletesbsion();

    private:

      // rtklib-like attribute to represent the different navigation msgs for a given epoch
      nav_t _nav;

      // Private methods


  };
}
#endif