diff --git a/src/examples/testasterx1.cpp b/src/examples/testasterx1.cpp index 280e3bee28270bb4c0adb3279e9585c9f8334d15..b9c93a78e78d607104f5135bfd2002bdf3af405e 100644 --- a/src/examples/testasterx1.cpp +++ b/src/examples/testasterx1.cpp @@ -17,23 +17,19 @@ USB any port #include <stdlib.h> #include "asterx1_gps.h" -#include "asterx1_process.h" #include "stream_gps.h" +#ifdef HAVE_GPSTK + #include "asterx1_process.h" +#endif int main(int argc, char **argv) { CasteRx1 gps("gps","/dev/ttyACM0"); - CAsteRx1Process gps_process; CEventServer *event_server=CEventServer::instance(); std::list<std::string> events; unsigned int index; TMeasEpoch meas_epoch; TMeasExtra meas_extra; - TGPSNav gps_nav; - TGPSAlm gps_alm; - TGPSIon gps_ion; - TGPSUtc gps_utc; - TGPSFrame gps_frame; TPVTCartesian pvt_cartesian; TPVTGeodetic pvt_geodetic; TPVTCov pvt_pos_cov_cartesian; @@ -41,79 +37,120 @@ int main(int argc, char **argv) TPVTCov pvt_pos_cov_geodetic; TPVTCov pvt_vel_cov_geodetic; TPVTDOP pvt_dop; + #ifdef HAVE_GPSTK + CAsteRx1Process gps_process; + TGPSFrame gps_frame; + TGPSNav gps_nav; + #else + TGPSNav gps_nav; + TGPSAlm gps_alm; + TGPSIon gps_ion; + TGPSUtc gps_utc; + #endif std::cout << "\n\n TEST AsteRx1 GPS RECEIVER \n\n" << std::endl; try{ gps.openDevice(); - events.push_back(gps.get_new_meas_data_event_id()); - events.push_back(gps.get_new_gps_nav_data_event_id()); - events.push_back(gps.get_new_gps_alm_data_event_id()); - events.push_back(gps.get_new_gps_ion_data_event_id()); - events.push_back(gps.get_new_gps_utc_data_event_id()); - events.push_back(gps.get_new_gps_raw_data_event_id()); - events.push_back(gps.get_new_pvt_data_event_id()); + #ifdef HAVE_GPSTK + events.push_back(gps.get_new_meas_data_event_id()); + events.push_back(gps.get_new_gps_raw_data_event_id()); + events.push_back(gps.get_new_pvt_data_event_id()); + #else + events.push_back(gps.get_new_meas_data_event_id()); + events.push_back(gps.get_new_gps_nav_data_event_id()); + events.push_back(gps.get_new_gps_alm_data_event_id()); + events.push_back(gps.get_new_gps_ion_data_event_id()); + events.push_back(gps.get_new_gps_utc_data_event_id()); + events.push_back(gps.get_new_pvt_data_event_id()); + #endif gps.startAcquisition(); for(;;) { index=event_server->wait_first(events); - if(index==0) - { - gps.get_meas_data(meas_epoch,meas_extra); -// std::cout << meas_epoch << std::endl; -// std::cout << meas_extra << std::endl; - } - else if(index==1) - { - gps.get_gps_nav_data(gps_nav); - std::cout << gps_nav << std::endl; - } - else if(index==2) - { - gps.get_gps_alm_data(gps_alm); - std::cout << gps_alm << std::endl; - } - else if(index==3) - { - gps.get_gps_ion_data(gps_ion); - std::cout << gps_ion << std::endl; - } - else if(index==4) - { - gps.get_gps_utc_data(gps_utc); - std::cout << gps_utc << std::endl; - } - else if(index==5) - { - gps.get_gps_raw_data(gps_frame); - gps_process.add_subframe(gps_frame); - std::cout << gps_frame << std::endl; -/* if(gps_process.is_new_gps_nav_data_available()) + #ifdef HAVE_GPSTK + if(index==0) { - gps_process.get_gps_nav_data(gps_nav); - if(gps_frame.sat_id==17) + gps.get_meas_data(meas_epoch,meas_extra); + std::cout << meas_epoch << std::endl; + std::cout << meas_extra << std::endl; + } + else if(index==1) + { + gps.get_gps_raw_data(gps_frame); + gps_process.add_subframe(gps_frame); + if(gps_process.is_new_gps_nav_data_available()) + { + gps_process.get_gps_nav_data(gps_nav); std::cout << gps_nav << std::endl; - }*/ - } - else if(index==6) - { - gps.get_pvt_data(pvt_cartesian,pvt_geodetic); - gps.get_pvt_cov_data(pvt_pos_cov_cartesian,pvt_pos_cov_geodetic,pvt_vel_cov_cartesian,pvt_vel_cov_geodetic); -/* std::cout << "Cartesian:" << std::endl; - std::cout << pvt_cartesian << std::endl; - std::cout << "Position covariance:" << std::endl; - std::cout << pvt_pos_cov_cartesian << std::endl; - std::cout << "Velocity covariance:" << std::endl; - std::cout << pvt_vel_cov_cartesian << std::endl; - std::cout << "Geodetic:" << std::endl; - std::cout << pvt_geodetic << std::endl; - std::cout << "Position covariance:" << std::endl; - std::cout << pvt_pos_cov_geodetic << std::endl; - std::cout << "Velocity covariance:" << std::endl; - std::cout << pvt_vel_cov_geodetic << std::endl;*/ - gps.get_pvt_dop_data(pvt_dop); -// std::cout << pvt_dop << std::endl; - } + } + } + else if(index==2) + { + gps.get_pvt_data(pvt_cartesian,pvt_geodetic); + gps.get_pvt_cov_data(pvt_pos_cov_cartesian,pvt_pos_cov_geodetic,pvt_vel_cov_cartesian,pvt_vel_cov_geodetic); + std::cout << "Cartesian:" << std::endl; + std::cout << pvt_cartesian << std::endl; + std::cout << "Position covariance:" << std::endl; + std::cout << pvt_pos_cov_cartesian << std::endl; + std::cout << "Velocity covariance:" << std::endl; + std::cout << pvt_vel_cov_cartesian << std::endl; + std::cout << "Geodetic:" << std::endl; + std::cout << pvt_geodetic << std::endl; + std::cout << "Position covariance:" << std::endl; + std::cout << pvt_pos_cov_geodetic << std::endl; + std::cout << "Velocity covariance:" << std::endl; + std::cout << pvt_vel_cov_geodetic << std::endl; + gps.get_pvt_dop_data(pvt_dop); + std::cout << pvt_dop << std::endl; + } + #else + if(index==0) + { + gps.get_meas_data(meas_epoch,meas_extra); + std::cout << meas_epoch << std::endl; + std::cout << meas_extra << std::endl; + } + else if(index==1) + { + gps.get_gps_nav_data(gps_nav); + std::cout << gps_nav << std::endl; + } + else if(index==2) + { + gps.get_gps_alm_data(gps_alm); + std::cout << gps_alm << std::endl; + } + else if(index==3) + { + gps.get_gps_ion_data(gps_ion); + std::cout << gps_ion << std::endl; + } + else if(index==4) + { + gps.get_gps_utc_data(gps_utc); + std::cout << gps_utc << std::endl; + } + else if(index==5) + { + gps.get_pvt_data(pvt_cartesian,pvt_geodetic); + gps.get_pvt_cov_data(pvt_pos_cov_cartesian,pvt_pos_cov_geodetic,pvt_vel_cov_cartesian,pvt_vel_cov_geodetic); + std::cout << "Cartesian:" << std::endl; + std::cout << pvt_cartesian << std::endl; + std::cout << "Position covariance:" << std::endl; + std::cout << pvt_pos_cov_cartesian << std::endl; + std::cout << "Velocity covariance:" << std::endl; + std::cout << pvt_vel_cov_cartesian << std::endl; + std::cout << "Geodetic:" << std::endl; + std::cout << pvt_geodetic << std::endl; + std::cout << "Position covariance:" << std::endl; + std::cout << pvt_pos_cov_geodetic << std::endl; + std::cout << "Velocity covariance:" << std::endl; + std::cout << pvt_vel_cov_geodetic << std::endl; + gps.get_pvt_dop_data(pvt_dop); + std::cout << pvt_dop << std::endl; + } + #endif } gps.stopAcquisition(); }catch(CException &e){