diff --git a/include/gnss_utils.h b/include/gnss_utils.h index 0c5b6ed4320ee047358ce6f0c56592714b069f7d..f090487399a008b1dc097d3f0e1e5fa47ecaa353 100644 --- a/include/gnss_utils.h +++ b/include/gnss_utils.h @@ -5,8 +5,6 @@ #include <iostream> #include <memory> -#include "observation.h" - extern "C" { #include "/home/jlaplaza/RTKLIB/src/rtklib.h" @@ -39,25 +37,38 @@ namespace GNSSUtils void clearNavigation(); - void pushNavigation(nav_t nav); + void setNavigation(nav_t nav); - std::vector<nav_t> getNavigation(); + nav_t getNavigation(); /* - Processing Options - */ void clearOptions(); - void pushOption(prcopt_t opt); + void setOptions(prcopt_t opt); - std::vector<prcopt_t> getOptions(); + prcopt_t getOptions(); /* - Solution - */ + void clearSolution(); + + void setSolution(sol_t sol); + + sol_t getSolution(); + /* - Satellite status - */ + void clearSatStatus(); + + void setSatStatus(ssat_t ssat); + + ssat_t getSatStatus(); + + /* - Compute Fix - */ int computeSPP(double *azel, char *msg); @@ -67,21 +78,18 @@ namespace GNSSUtils std::vector<obsd_t> _obsVector; // rtklib-like attribute to represent the different navigation msgs for a given epoch - std::vector<nav_t> _navVector; + nav_t _nav; // rtklib-like attribute to represent the different options for a given epoch - std::vector<prcopt_t> _opt; + prcopt_t _opt; // rtklib-like attribute to represent the solution for a given epoch - std::Vector<sol_t> _sol; + sol_t _sol; // rtklib-like attribute to represent the satellite status for a given epoch - std::vector<ssat_t> _ssat; - - - - + ssat_t _ssat; }; } #endif + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cc0421b22732bbc4d4f41d7d6415b8bdb0175d6f..ea5f7445478c8c2ed1e9d3d01f90cdcd573cbb36 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,8 @@ # driver source files -SET(sources gnss_utils.cpp observation.cpp) +SET(sources gnss_utils.cpp) # application header files -SET(headers ../include/gnss_utils.h ../include/observation.h) +SET(headers ../include/gnss_utils.h) # RTKLIB INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindRTKLIB.cmake) diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 8fd4243b068ee72957dfd3bf6a81682e9b367b6a..6375e77e30b0b39d621c872197a56116e465eec0 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -1,5 +1,4 @@ #include "../../include/gnss_utils.h" -#include "../../include/observation.h" #include <iostream> using namespace GNSSUtils; @@ -11,7 +10,7 @@ int main(int argc, char *argv[]) std::cout << "GNSS Utils Library Example" << std::endl; std::cout << "--------------------------" << std::endl; // create a Receiver object - GNSSUtils::Receiver test_rcv; + //GNSSUtils::Receiver test_rcv; // create a Observation object gtime_t ts={0}; @@ -19,22 +18,22 @@ int main(int argc, char *argv[]) std::vector<unsigned char> vu({q, w, e}); std::vector<double> vd({1., 2., 3.}); std::vector<float> vf({1., 2., 3.}); - Observation test_obs(ts, 1, 1, vu, vu, vu, vd, vd, vf); + //Observation test_obs(ts, 1, 1, vu, vu, vu, vd, vd, vf); // Display current Observation - std::cout << "Current observation (sat): " << "(" << test_obs.getSat() << ")" << std::endl; - std::cout << "Current observation (SNR): " << "(" ; + //std::cout << "Current observation (sat): " << "(" << test_obs.getSat() << ")" << std::endl; + //std::cout << "Current observation (SNR): " << "(" ; - for (unsigned char i=0; i < 3; ++i) - std::cout << test_obs.getSNR()[i] << ", "; - std::cout << ")" << std::endl; + //for (unsigned char i=0; i < 3; ++i) + //std::cout << test_obs.getSNR()[i] << ", "; + //std::cout << ")" << std::endl; - obsd_t obs = test_obs.convert2rtk(); - std::cout << "Observation SNR in RTKLIB format: " << "("; - for (unsigned char i=0; i < 3; ++i) - std::cout << obs.SNR[i] << ", "; - std::cout << ")" << std::endl; + //obsd_t obs = test_obs.convert2rtk(); + //std::cout << "Observation SNR in RTKLIB format: " << "("; + //for (unsigned char i=0; i < 3; ++i) + //std::cout << obs.SNR[i] << ", "; + //std::cout << ")" << std::endl; } diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp index 16f173b9ee18f2a690af3dbd67574c852d222b89..eea7b3b8324f2b6d4e93078dde81d51184a2bc67 100644 --- a/src/gnss_utils.cpp +++ b/src/gnss_utils.cpp @@ -37,31 +37,88 @@ std::vector<obsd_t> Receiver::getObservations() void Receiver::clearNavigation() { - _navVector.clear(); + //_nav = NULL; } -void Receiver::pushNavigation(nav_t nav) +void Receiver::setNavigation(nav_t nav) { - _navVector.push_back(nav); + _nav = nav; } -std::vector<nav_t> Receiver::getNavigation() +nav_t Receiver::getNavigation() { - return this->_navVector; + return this->_nav; } +/* - Processing options - */ +void Receiver::clearOptions() +{ + //_opt = NULL; +} + +void Receiver::setOptions(prcopt_t opt) +{ + _opt = opt; +} + +prcopt_t Receiver::getOptions() +{ + return this->_opt; +} +/* - Solution - */ + +void Receiver::clearSolution() +{ + //_sol = NULL; +} + +void Receiver::setSolution(sol_t sol) +{ + _sol = sol; +} + +sol_t Receiver::getSolution() +{ + return this->_sol; +} + + +/* - Satellite Status - */ + +void Receiver::clearSatStatus() +{ + //_ssat = NULL; +} + +void Receiver::setSatStatus(ssat_t ssat) +{ + _ssat = ssat; +} + +ssat_t Receiver::getSatStatus() +{ + return this->_ssat; +} + +/* - Compute Fix - */ -int Receiver::getSPP(double *azel, char *msg) +int Receiver::computeSPP(double *azel, char *msg) { - obsd_t *obs = &this->_obsVector[0]; + const obsd_t *obs = &this->_obsVector[0]; int n = this->_obsVector.size(); + /* + const nav_t *nav = this->_nav; + const prcopt_t *opt = this->_opt; + sol_t *sol = this->_sol; + ssat_t *ssat = this->_ssat; + */ - return int pntpos(*obs, n, nav_t *nav, *opt, *sol, *azel, *ssat, *msg) + return pntpos(obs, n, &_nav, &_opt, &_sol, azel, &_ssat, msg); }