diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h index c6ae53f8e037dad470402d9596c7d50774a1824a..f77bf48f3c1fa5ce540ea6d83904c8d684aa8dfd 100644 --- a/include/gnss_utils/gnss_utils.h +++ b/include/gnss_utils/gnss_utils.h @@ -4,6 +4,11 @@ #include <vector> #include <iostream> #include <memory> + +#include <eigen3/Eigen/Dense> +#include <eigen3/Eigen/Geometry> +#include <eigen3/Eigen/Sparse> + #include "observations.h" #include "navigation.h" @@ -14,6 +19,27 @@ extern "C" namespace GNSSUtils { - static int getPos(Observations obs, Navigation nav, sol_t sol); + struct getPosOutput{ + time_t time; + double sec; + Eigen::Vector3d pos; // position (m) + Eigen::Vector3d vel; // velocity (m/s) + Eigen::Matrix3d pos_covar; // position covariance (m^2) + // {c_xx,c_yy,c_zz,c_xy,c_yz,c_zx} + Eigen::VectorXd rcv_bias; // receiver clock bias to time systems (s) + int type; // type (0:xyz-ecef,1:enu-baseline) + int stat; // solution status (SOLQ_???) + int ns; // number of valid satellites + double age; // age of differential (s) + double ratio; // AR ratio factor for valiation + + int pos_stat; // return from pntpos + Eigen::Vector3d lat_lon; // latitude_longitude_altitude + }; + + GNSSUtils::getPosOutput getPos(const std::shared_ptr<Observations> & _observations, + const std::shared_ptr<Navigation> & _navigation); + + Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef); } #endif diff --git a/include/gnss_utils/navigation.h b/include/gnss_utils/navigation.h index a627ff80478c37b4bf8a6eab755906bef2ce961d..a58c834e807cf31950b5b3a9ea705e30ca685f1a 100644 --- a/include/gnss_utils/navigation.h +++ b/include/gnss_utils/navigation.h @@ -37,99 +37,21 @@ namespace GNSSUtils // 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; + nav_t nav_; // Private methods diff --git a/include/gnss_utils/observations.h b/include/gnss_utils/observations.h index 16e230cbb0f9e09a5be19cdddf3a975fed8097ba..4293b07ba6d2f1a8c39d364ef2c9253ff41e96c4 100644 --- a/include/gnss_utils/observations.h +++ b/include/gnss_utils/observations.h @@ -39,7 +39,7 @@ namespace GNSSUtils private: // Private objects // rtklib-like attribute to represent the different observation msgs for a given epoch - std::vector<obsd_t> _obsVector; + std::vector<obsd_t> obs_vector_; // Private methods diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d6c0627251bdbc930749d617133da5333321a4f7..407da06c9b0e07578e289988563c99090156825d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,33 +1,33 @@ # rtklib path -set(rtklib_dir ../deps/RTKLIB) -set(rtklib_src_dir ${rtklib_dir}/src) +SET(RTKLIB_DIR ../deps/RTKLIB) +SET(RTKLIB_SRC_DIR ${RTKLIB_DIR}/src) # driver source files -SET(sources +SET(SOURCES gnss_utils.cpp observations.cpp navigation.cpp) -SET(rtklib_src - ${rtklib_src_dir}/pntpos.c - ${rtklib_src_dir}/rtkcmn.c - ${rtklib_src_dir}/sbas.c - ${rtklib_src_dir}/ephemeris.c - ${rtklib_src_dir}/preceph.c - ${rtklib_src_dir}/qzslex.c - ${rtklib_src_dir}/rtcm.c - ${rtklib_src_dir}/rtcm2.c - ${rtklib_src_dir}/rtcm3.c - ${rtklib_src_dir}/rtcm3e.c - ${rtklib_src_dir}/ionex.c - ${rtklib_src_dir}/rinex.c) +SET(RTKLIB_SRC + ${RTKLIB_SRC_DIR}/pntpos.c + ${RTKLIB_SRC_DIR}/rtkcmn.c + ${RTKLIB_SRC_DIR}/sbas.c + ${RTKLIB_SRC_DIR}/ephemeris.c + ${RTKLIB_SRC_DIR}/preceph.c + ${RTKLIB_SRC_DIR}/qzslex.c + ${RTKLIB_SRC_DIR}/rtcm.c + ${RTKLIB_SRC_DIR}/rtcm2.c + ${RTKLIB_SRC_DIR}/rtcm3.c + ${RTKLIB_SRC_DIR}/rtcm3e.c + ${RTKLIB_SRC_DIR}/ionex.c + ${RTKLIB_SRC_DIR}/rinex.c) # application header files -SET(headers - ../include/gnss_utils.h - ../include/observations.h - ../include/navigation.h) +SET(HEADERS + ../include/gnss_utils/gnss_utils.h + ../include/gnss_utils/observations.h + ../include/gnss_utils/navigation.h) # Eigen ####### FIND_PACKAGE(Eigen3 REQUIRED) @@ -45,7 +45,7 @@ link_directories(/usr/lib/x86_64-linux-gnu/) INCLUDE_DIRECTORIES(../include/ ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${RTK_LIB_PATH}) # create the shared library -ADD_LIBRARY(gnss_utils SHARED ${sources} ${rtklib_src}) +ADD_LIBRARY(gnss_utils SHARED ${SOURCES} ${RTKLIB_SRC}) TARGET_LINK_LIBRARIES(gnss_utils ${Boost_LIBRARIES}) # Installing @@ -53,7 +53,7 @@ INSTALL(TARGETS gnss_utils RUNTIME DESTINATION bin LIBRARY DESTINATION /usr/local/lib ARCHIVE DESTINATION lib) -INSTALL(FILES ${headers} DESTINATION include/gnss_utils) +INSTALL(FILES ${HEADERS} DESTINATION include/gnss_utils) # INSTALL(FILES ../gnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/) INSTALL(FILES ../Findgnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/) ADD_SUBDIRECTORY(examples) diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 646299a5a2f51faa0bc12442f4d0d043127f2b58..569d1448d6cf5b8451f2b8acae56108cf24e825f 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -146,7 +146,7 @@ int main(int argc, char *argv[]) // create Navigation object Navigation navigation; - createObsAndNav(&observations, "../examples/raw_201805171357.obs", &navigation, "../examples/raw_201805171357.nav"); + createObsAndNav(&observations, "../src/examples/raw_201805171357.obs", &navigation, "../src/examples/raw_201805171357.nav"); nav_t nav = navigation.getNavigation(); diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp index 192710aa89533d1fd448567b32e71c100a44ca63..ed36ae3e1e92c58b0bb2b9f27ed360cd8a4246ac 100644 --- a/src/gnss_utils.cpp +++ b/src/gnss_utils.cpp @@ -1,36 +1,69 @@ #include "gnss_utils/gnss_utils.h" -using namespace GNSSUtils; - -static int getPos(Observations observations, Navigation navigation, sol_t sol) +namespace GNSSUtils { - // Define observations - std::vector<obsd_t> obs = observations.getObservations(); - - // Define navigation - nav_t nav = navigation.getNavigation(); - - // Define processing options - prcopt_t prcopt = prcopt_default; - prcopt.mode = PMODE_SINGLE; - prcopt.soltype = 0; - prcopt.nf = 1; - prcopt.navsys = SYS_GPS; - //prcopt.elmin = 1.05; // 60 degrees = 1.05 rad - prcopt.sateph = EPHOPT_BRDC; - prcopt.ionoopt = IONOOPT_OFF; - prcopt.tropopt = TROPOPT_OFF; - prcopt.dynamics = 0; - prcopt.tidecorr = 0; - prcopt.sbascorr = SBSOPT_FCORR; - - // Define solution - sol_t solb={{0}}; - - // Define error msg - char msg[128]=""; - - int stat = pntpos(&(obs[0]), obs.size(), &nav, &prcopt, &solb, NULL, NULL, msg); - - return stat; + GNSSUtils::getPosOutput getPos(const std::shared_ptr<GNSSUtils::Observations> & _observations, + const std::shared_ptr<GNSSUtils::Navigation> & _navigation) + { + // Remove duplicated satellites + uniqnav(&(_navigation->getNavigation())); + + // Define processing options + prcopt_t prcopt = prcopt_default; + prcopt.mode = PMODE_SINGLE; + prcopt.soltype = 0; + prcopt.nf = 1; + prcopt.navsys = SYS_GPS; + //prcopt.elmin = 1.05; // 60 degrees = 1.05 rad + prcopt.sateph = EPHOPT_BRDC; + prcopt.ionoopt = IONOOPT_OFF; + prcopt.tropopt = TROPOPT_OFF; + prcopt.dynamics = 0; + prcopt.tidecorr = 0; + prcopt.sbascorr = SBSOPT_FCORR; + + // Define error msg + char msg[128] = ""; + + GNSSUtils::getPosOutput output; + sol_t sol; + sol = {{0}}; + + output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(), + &(_navigation->getNavigation()), + &prcopt, &sol, NULL, NULL, msg); + + output.time = sol.time.time; + output.time = sol.time.sec; + output.pos = Eigen::Map<Eigen::Vector3d>(sol.rr); + output.vel = Eigen::Map<Eigen::Vector3d>(&sol.rr[3]); + output.pos_covar << sol.qr[0], sol.qr[3], sol.qr[5], + sol.qr[3], sol.qr[1], sol.qr[4], + sol.qr[5], sol.qr[3], sol.qr[2]; + + // XXX: segmentation fault here. + // if (sol.dtr != NULL) + // { + // output.rcv_bias << sol.dtr[0], sol.dtr[1], sol.dtr[2], sol.dtr[3], sol.dtr[4], sol.dtr[5]; + // } + + output.type = sol.type; + output.stat = sol.stat; + output.ns = sol.ns; + output.age = sol.age; + output.ratio = sol.ratio; + output.lat_lon = ecefToLatLon(output.pos); + + return output; + } + + Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef) + { + double pos[3]; + ecef2pos(&_ecef(0), pos); + + return Eigen::Map<Eigen::Vector3d>(pos); + } + + } diff --git a/src/navigation.cpp b/src/navigation.cpp index edb0c55334de7c691ae35f25f72fe98ace63263e..0bdf9edee36de392231cbee5b9fbaf127a340725 100644 --- a/src/navigation.cpp +++ b/src/navigation.cpp @@ -5,14 +5,7 @@ using namespace GNSSUtils; Navigation::Navigation() -{ - //_nav = (nav_t *) malloc(sizeof(nav_t)); - allocateEphemeris(); - allocateGLONASSEphemeris(); - allocateSBASEphemeris(); - - allocateAlmanac(); -} +{} Navigation::~Navigation() { @@ -25,92 +18,33 @@ void Navigation::clearNavigation() deleteEphemeris(); deleteGLONASSEphemeris(); deleteSBASEphemeris(); - deleteAlmanac(); - - /* - this->deleteUTCGPS(); - this->deleteUTCGlo(); - this->deleteUTCGal(); - this->deleteUTCQZS(); - this->deleteUTCCMP(); - this->deleteUTCSBAS(); - - this->deleteIonGPS(); - this->deleteIonGal(); - this->deleteIonQZS(); - this->deleteIonCMP(); - - this->deletelam(); - this->deletecbias(); - - this->deletewlbias(); - this->deleteglocpbias(); - this->deleteglofcn(); - - this->deletepcv(); - this->deletesbsion(); - */ } -void Navigation::setNavigation(nav_t nav) +void Navigation::setNavigation(nav_t _nav) { - /* - allocateEphemeris(); - allocateGLONASSEphemeris(); - allocateSBASEphemeris(); - - allocateAlmanac(); - - - this->allocateUTCGPS(4); - this->allocateUTCGlo(4); - this->allocateUTCGal(4); - this->allocateUTCQZS(4); - this->allocateUTCCMP(4); - this->allocateUTCSBAS(4); - - this->allocateIonGPS(8); - this->allocateIonGal(4); - this->allocateIonQZS(8); - this->allocateIonCMP(8); - - this->allocatelam(MAXSAT*NFREQ); - this->allocatecbias(MAXSAT*3); - - this->allocatewlbias(MAXSAT); - this->allocateglocpbias(4); - this->allocateglofcn(MAXPRNGLO+1); - - this->allocatepcv(MAXSAT); - this->allocatesbsion(MAXBAND+1); - */ - - - _nav = nav; + nav_ = _nav; } const nav_t & Navigation::getNavigation() const { - return _nav; + return nav_; } nav_t & Navigation::getNavigation() { - return _nav; + return nav_; } /****************** Array memory management ******************/ - - void Navigation::allocateEphemeris(int n_sat) { eph_t eph0 ={0,-1,-1}; int i; - _nav.eph = (eph_t *) malloc(sizeof(eph_t)*n_sat); - for (i=0;i<n_sat;i++) _nav.eph[i] = eph0; + nav_.eph = (eph_t *) malloc(sizeof(eph_t)*n_sat); + for (i=0;i<n_sat;i++) nav_.eph[i] = eph0; /* if (this->_nav->eph) { @@ -123,29 +57,16 @@ void Navigation::allocateEphemeris(int n_sat) } */ } - void Navigation::deleteEphemeris() { - //free(_nav.eph); - /* - if (_nav->eph) - { - free(_nav->eph); - } - - else - { - // Do nothing - } - */ + free(nav_.eph); } - void Navigation::allocateGLONASSEphemeris(int n_sat) { geph_t geph0={0,-1}; int i; - _nav.geph = (geph_t *)malloc(sizeof(geph_t)*n_sat); + nav_.geph = (geph_t *)malloc(sizeof(geph_t)*n_sat); /* for (i=0;i<NSATGLO ;i++) _nav.geph[i] = geph0; @@ -161,22 +82,19 @@ void Navigation::allocateGLONASSEphemeris(int n_sat) */ } - void Navigation::deleteGLONASSEphemeris() { - /* - free(_nav->geph); - - if (_nav->geph) - { - free(_nav->geph); - } - - else - { - // Do nothing - } - */ + free(nav_.geph); + // if (_nav->geph) + // { + // free(_nav->geph); + // } + // + // else + // { + // // Do nothing + // } + // } void Navigation::allocateSBASEphemeris(int n_sat) @@ -184,8 +102,8 @@ void Navigation::allocateSBASEphemeris(int n_sat) seph_t seph0={0}; int i; - _nav.seph = (seph_t *)malloc(sizeof(seph_t)*n_sat); - for (i=0; i<n_sat; i++) _nav.seph[i] = seph0; + nav_.seph = (seph_t *)malloc(sizeof(seph_t)*n_sat); + for (i=0; i<n_sat; i++) nav_.seph[i] = seph0; /* if (this->_nav->seph) { @@ -198,22 +116,18 @@ void Navigation::allocateSBASEphemeris(int n_sat) } */ } - void Navigation::deleteSBASEphemeris() { - /* - free(_nav->seph); - - if (_nav->seph) - { - free(_nav->seph); - } - - else - { - // Do nothing - } - */ + free(nav_.seph); + // if (_nav->seph) + // { + // free(_nav->seph); + // } + // + // else + // { + // // Do nothing + // } } void Navigation::allocateAlmanac(int n_sat) @@ -221,8 +135,8 @@ void Navigation::allocateAlmanac(int n_sat) alm_t alm0 ={0,-1}; int i; - _nav.alm = (alm_t *)malloc(sizeof(alm_t)*n_sat); - for (i=0; i<n_sat; i++) _nav.alm[i] = alm0; + nav_.alm = (alm_t *)malloc(sizeof(alm_t)*n_sat); + for (i=0; i<n_sat; i++) nav_.alm[i] = alm0; /* if (this->_nav->alm) { @@ -235,502 +149,17 @@ void Navigation::allocateAlmanac(int n_sat) } */ } - void Navigation::deleteAlmanac() { - /* - free(_nav->alm); - - if (_nav->alm) - { - free(_nav->alm); - } - - else - { - // Do nothing - } - */ -} - - -// UTC -/* -void Navigation::allocateUTCGPS(int n) //GPS -{ - if (_nav->utc_gps) - { - _nav->utc_gps = (double *)realloc(_nav->utc_gps, n * sizeof(double)); - } - - else - { - _nav->utc_gps = (double *) malloc(n * sizeof(double)); - } -} - - - -void Navigation::deleteUTCGPS() -{ - if (_nav->utc_gps) - { - free(_nav->utc_gps); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateUTCGlo(int n) //GLONASS -{ - if (_nav->utc_glo) - { - _nav->utc_glo = (double *)realloc(_nav->utc_glo, n * sizeof(double)); - } - - else - { - _nav->utc_glo = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteUTCGlo() -{ - if (_nav->utc_glo) - { - free(_nav->utc_glo); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateUTCGal(int n) //Galileo -{ - if (_nav->utc_gal) - { - _nav->utc_gal = (double *)realloc(_nav->utc_gal, n * sizeof(double)); - } - - else - { - _nav->utc_gal = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteUTCGal() -{ - if (_nav->utc_gal) - { - free(_nav->utc_gal); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateUTCQZS(int n) //QZS -{ - if (_nav->utc_qzs) - { - _nav->utc_qzs = (double *)realloc(_nav->utc_qzs, n * sizeof(double)); - } - - else - { - _nav->utc_qzs = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteUTCQZS() -{ - if (_nav->utc_qzs) - { - free(_nav->utc_qzs); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateUTCCMP(int n) //BeiDou -{ - if (_nav->utc_cmp) - { - _nav->utc_cmp = (double *)realloc(_nav->utc_cmp, n * sizeof(double)); - } - - else - { - _nav->utc_cmp = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteUTCCMP() -{ - if (_nav->utc_cmp) - { - free(_nav->utc_cmp); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateUTCSBAS(int n) //SBAS -{ - if (_nav->utc_sbs) - { - _nav->utc_sbs = (double *)realloc(_nav->utc_sbs, n * sizeof(double)); - } - - else - { - _nav->utc_sbs = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteUTCSBAS() -{ - if (_nav->utc_sbs) - { - free(_nav->utc_sbs); - } - - else - { - // Do nothing - } -} - -// Ionosphere - -void Navigation::allocateIonGPS(int n) //GPS -{ - if (_nav->ion_gps) - { - _nav->ion_gps = (double *)realloc(_nav->ion_gps, n * sizeof(double)); - } - - else - { - _nav->ion_gps = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteIonGPS() -{ - if (_nav->ion_gps) - { - free(_nav->ion_gps); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateIonGal(int n) //Galileo -{ - if (_nav->utc_gal) - { - _nav->utc_gal = (double *)realloc(_nav->utc_gal, n * sizeof(double)); - } - - else - { - _nav->utc_gal = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteIonGal() -{ - if (_nav->utc_gal) - { - free(_nav->utc_gal); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateIonQZS(int n) //QZS -{ - if (_nav->utc_qzs) - { - _nav->utc_qzs = (double *)realloc(_nav->utc_qzs, n * sizeof(double)); - } - - else - { - _nav->utc_qzs = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteIonQZS() -{ - if (_nav->utc_qzs) - { - free(_nav->utc_qzs); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateIonCMP(int n) //BeiDou -{ - if (_nav->utc_cmp) - { - _nav->utc_cmp = (double *)realloc(_nav->utc_cmp, n * sizeof(double)); - } - - else - { - _nav->utc_cmp = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteIonCMP() -{ - if (_nav->utc_cmp) - { - free(_nav->utc_cmp); - } - - else - { - // Do nothing - } -} - -// Others - -void Navigation::allocatelam(int n) -{ - if (_nav->lam) - { - _nav->lam = (double *)realloc(_nav->lam, n * sizeof(double)); - } - - else - { - _nav->lam = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deletelam() -{ - if (_nav->lam) - { - free(_nav->lam); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocatecbias(int n) -{ - if (_nav->cbias) - { - _nav->cbias = (double *)realloc(_nav->cbias, n * sizeof(double)); - } - - else - { - _nav->cbias = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deletecbias() -{ - if (_nav->cbias) - { - free(_nav->cbias); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocatewlbias(int n) -{ - if (_nav->wlbias) - { - _nav->wlbias = (double *)realloc(_nav->wlbias, n * sizeof(double)); - } - - else - { - _nav->wlbias = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deletewlbias() -{ - if (_nav->wlbias) - { - free(_nav->wlbias); - } + free(nav_.alm); - else - { - // Do nothing - } -} - - -void Navigation::allocateglocpbias(int n) -{ - if (_nav->glo_cpbias) - { - _nav->glo_cpbias = (double *)realloc(_nav->glo_cpbias, n * sizeof(double)); - } - - else - { - _nav->glo_cpbias = (double *) malloc(n * sizeof(double)); - } -} - - -void Navigation::deleteglocpbias() -{ - if (_nav->glo_cpbias) - { - free(_nav->glo_cpbias); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocateglofcn(int n) -{ - if (_nav->glo_fcn) - { - _nav->glo_fcn = (char *)realloc(_nav->glo_fcn, n * sizeof(char)); - } - - else - { - _nav->glo_fcn = (char *) malloc(n * sizeof(char)); - } -} - - -void Navigation::deleteglofcn() -{ - if (_nav->glo_fcn) - { - free(_nav->glo_fcn); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocatepcv(int n) -{ - if (_nav->pcvs) - { - _nav->pcvs = (pcv_t *)realloc(_nav->pcvs, n * sizeof(pcv_t)); - } - - else - { - _nav->pcvs = (pcv_t*) malloc(n * sizeof(pcv_t)); - } -} - - -void Navigation::deletepcv() -{ - if (_nav->pcvs) - { - free(_nav->pcvs); - } - - else - { - // Do nothing - } -} - - -void Navigation::allocatesbsion(int n) -{ - if (_nav->sbsion) - { - _nav->sbsion = (sbsion_t *)realloc(_nav->sbsion, n * sizeof(sbsion_t)); - } - - else - { - _nav->sbsion = (sbsion_t*) malloc(n * sizeof(sbsion_t)); - } -} - - -void Navigation::deletesbsion() -{ - if (_nav->sbsion) - { - free(_nav->sbsion); - } - - else - { - // Do nothing - } + // if (_nav->alm) + // { + // free(_nav->alm); + // } + // + // else + // { + // // Do nothing + // } } -*/ diff --git a/src/observations.cpp b/src/observations.cpp index 75d05f150c9f5cb82d37f6e1dd360afd1fa54502..db7529d4d7ad37a518f141057b7e120322bb7952 100644 --- a/src/observations.cpp +++ b/src/observations.cpp @@ -10,20 +10,20 @@ Observations::Observations() Observations::~Observations() { - this->_obsVector.erase(_obsVector.begin(), _obsVector.end()); + this->obs_vector_.erase(obs_vector_.begin(), obs_vector_.end()); } void Observations::clearObservations() { - this->_obsVector.clear(); + this->obs_vector_.clear(); } void Observations::pushObservation(obsd_t obs) { - this->_obsVector.push_back(obs); + this->obs_vector_.push_back(obs); } std::vector<obsd_t> Observations::getObservations() { - return this->_obsVector; + return this->obs_vector_; }