Skip to content
Snippets Groups Projects
Commit 6e8e228b authored by Pep Martí Saumell's avatar Pep Martí Saumell
Browse files

Add option to computePos

parent 7874a467
No related branches found
No related tags found
2 merge requests!20new tag,!19new tag
...@@ -19,7 +19,7 @@ extern "C" ...@@ -19,7 +19,7 @@ extern "C"
namespace GNSSUtils namespace GNSSUtils
{ {
struct getPosOutput{ struct fixPosOutput{
time_t time; time_t time;
double sec; double sec;
Eigen::Vector3d pos; // position (m) Eigen::Vector3d pos; // position (m)
...@@ -37,8 +37,9 @@ namespace GNSSUtils ...@@ -37,8 +37,9 @@ namespace GNSSUtils
Eigen::Vector3d lat_lon; // latitude_longitude_altitude Eigen::Vector3d lat_lon; // latitude_longitude_altitude
}; };
GNSSUtils::getPosOutput getPos(const std::shared_ptr<Observations> & _observations, GNSSUtils::fixPosOutput computePos(const std::shared_ptr<Observations> & _observations,
const std::shared_ptr<Navigation> & _navigation); const std::shared_ptr<Navigation> & _navigation,
const std::shared_ptr<prcopt_t> & _prcopt);
Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef); Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef);
} }
......
...@@ -2,36 +2,37 @@ ...@@ -2,36 +2,37 @@
namespace GNSSUtils namespace GNSSUtils
{ {
GNSSUtils::getPosOutput getPos(const std::shared_ptr<GNSSUtils::Observations> & _observations, GNSSUtils::fixPosOutput computePos(const std::shared_ptr<GNSSUtils::Observations> & _observations,
const std::shared_ptr<GNSSUtils::Navigation> & _navigation) const std::shared_ptr<GNSSUtils::Navigation> & _navigation,
const std::shared_ptr<prcopt_t> & _prcopt)
{ {
// Remove duplicated satellites // Remove duplicated satellites
uniqnav(&(_navigation->getNavigation())); uniqnav(&(_navigation->getNavigation()));
// Define processing options // Define processing options
prcopt_t prcopt = prcopt_default; // prcopt_t prcopt = prcopt_default;
prcopt.mode = PMODE_SINGLE; // prcopt.mode = PMODE_SINGLE;
prcopt.soltype = 0; // prcopt.soltype = 0;
prcopt.nf = 1; // prcopt.nf = 1;
prcopt.navsys = SYS_GPS; // prcopt.navsys = SYS_GPS;
//prcopt.elmin = 1.05; // 60 degrees = 1.05 rad // //prcopt.elmin = 1.05; // 60 degrees = 1.05 rad
prcopt.sateph = EPHOPT_BRDC; // prcopt.sateph = EPHOPT_BRDC;
prcopt.ionoopt = IONOOPT_OFF; // prcopt.ionoopt = IONOOPT_OFF;
prcopt.tropopt = TROPOPT_OFF; // prcopt.tropopt = TROPOPT_OFF;
prcopt.dynamics = 0; // prcopt.dynamics = 0;
prcopt.tidecorr = 0; // prcopt.tidecorr = 0;
prcopt.sbascorr = SBSOPT_FCORR; // prcopt.sbascorr = SBSOPT_FCORR;
// Define error msg // Define error msg
char msg[128] = ""; char msg[128] = "";
GNSSUtils::getPosOutput output; GNSSUtils::fixPosOutput output;
sol_t sol; sol_t sol;
sol = {{0}}; sol = {{0}};
output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(), output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(),
&(_navigation->getNavigation()), &(_navigation->getNavigation()),
&prcopt, &sol, NULL, NULL, msg); _prcopt.get(), &sol, NULL, NULL, msg);
output.time = sol.time.time; output.time = sol.time.time;
output.time = sol.time.sec; output.time = sol.time.sec;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment