diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 2f0ab31591b340302340d1cd9dbebb5dea11fa78..ce7a617b78a147ef258b70064d82823cac6c2e93 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -35,83 +35,74 @@ int main(int argc, char* argv[]) // load observations from RINEX file std::vector<Observations> obs_rinex = - loadObservationsFromRinex("../src/examples/rover_sample.obs", t_start, t_end, dt, opt); + loadObservationsFromRinex("../src/examples/sample_data.obs", t_start, t_end, dt, opt); + observations = obs_rinex[0]; + observations.print(); - std::cout << "Number of epochs: " << obs_rinex.size() << std::endl; + // RTKLIB trace + char str_file[80]; + snprintf(str_file, sizeof str_file, "../src/examples/trace"); + tracelevel(5); + traceopen(str_file); - observations = obs_rinex.back(); - for (auto obs = observations.getObservations().begin(); obs != observations.getObservations().end(); ++obs) - { - printf("Satellite number: %u \n",obs->sat); - } + // load navigation from RINEX file + navigation.loadFromRinex("../src/examples/sample_data.nav", t_start, t_end, dt, opt); + navigation.print(); - // observations = obs_rinex[0]; - // observations.print(); + // Trace close + // traceclose(); - // RTKLIB trace - // char str_file[80]; - // snprintf(str_file, sizeof str_file, "../src/examples/trace"); - // tracelevel(5); - // traceopen(str_file); + /* Set processing options */ - // load navigation from RINEX file - // navigation.loadFromRinex("../src/examples/sample_data.nav", t_start, t_end, dt, opt); - // navigation.print(); - - // // Trace close - // // traceclose(); - - // /* Set processing options */ - - // /* header */ - // std::cout << "------------------" << std::endl; - // std::cout << "Processing options" << std::endl; - // std::cout << "------------------" << std::endl; - - // prcopt_t prcopt = prcopt_default; - // prcopt.mode = PMODE_SINGLE; - // prcopt.soltype = 0; - // prcopt.nf = 1; - // prcopt.navsys = SYS_GPS; - // prcopt.elmin = 0.525; // 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; - // prcopt.ru[0] = 0; // 4789374.0336; - // prcopt.ru[1] = 0; // 177048.3292; - // prcopt.ru[2] = 0; // 4194542.6444; - - // std::cout << "Processing options defined" << std::endl; - - // Eigen::Vector3d lla_gt(41.383293114 * M_PI / 180.0, 2.116101115 * M_PI / 180.0, -91.6641); - - // // Compute spp - - // /* header */ - // std::cout << "-----------" << std::endl; - // std::cout << "pntpos call" << std::endl; - // std::cout << "-----------" << std::endl; - - // int stat; - - // sol_t solb = { { 0 } }; - - // char msg[128] = ""; - - // stat = pntpos(observations.data(), observations.size(), &navigation.getNavigation(), &prcopt, &solb, NULL, NULL, - // msg); - - // std::cout << "msg: " << msg << std::endl; - // std::cout << "sol.stat: " << int(solb.stat) << std::endl; - // std::cout << "Position: " << solb.rr[0] << ", " << solb.rr[1] << ", " << solb.rr[2] << std::endl; - // std::cout << "Position (GT): " << latLonAltToEcef(lla_gt).transpose() << std::endl; - // std::cout << "Position LLA: " << ecefToLatLonAlt(Eigen::Vector3d(solb.rr[0], solb.rr[1], - // solb.rr[2])).transpose() - // << std::endl; - // std::cout << "Position LLA (GT): " << lla_gt.transpose() << std::endl; + /* header */ + std::cout << "------------------" << std::endl; + std::cout << "Processing options" << std::endl; + std::cout << "------------------" << std::endl; + + prcopt_t prcopt = prcopt_default; + prcopt.mode = PMODE_SINGLE; + prcopt.soltype = 0; + prcopt.nf = 1; + prcopt.navsys = SYS_GPS; + prcopt.elmin = 0.525; // 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; + prcopt.ru[0] = 0; // 4789374.0336; + prcopt.ru[1] = 0; // 177048.3292; + prcopt.ru[2] = 0; // 4194542.6444; + + std::cout << "Processing options defined" << std::endl; + + Eigen::Vector3d lla_gt(41.383293114 * M_PI / 180.0, 2.116101115 * M_PI / 180.0, -91.6641); + + // Compute spp + + /* header */ + std::cout << "-----------" << std::endl; + std::cout << "pntpos call" << std::endl; + std::cout << "-----------" << std::endl; + + int stat; + + sol_t solb = { { 0 } }; + + char msg[128] = ""; + + stat = pntpos(observations.data(), observations.size(), &navigation.getNavigation(), &prcopt, &solb, NULL, NULL, + msg); + + std::cout << "msg: " << msg << std::endl; + std::cout << "sol.stat: " << int(solb.stat) << std::endl; + std::cout << "Position: " << solb.rr[0] << ", " << solb.rr[1] << ", " << solb.rr[2] << std::endl; + std::cout << "Position (GT): " << latLonAltToEcef(lla_gt).transpose() << std::endl; + std::cout << "Position LLA: " << ecefToLatLonAlt(Eigen::Vector3d(solb.rr[0], solb.rr[1], + solb.rr[2])).transpose() + << std::endl; + std::cout << "Position LLA (GT): " << lla_gt.transpose() << std::endl; // traceclose(); }