From a4aa89ed5d73b6afa5d2d28d8f2b6cc206baf22d Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Fri, 8 Apr 2011 14:59:46 -0700 Subject: USRP2: Added GPS time support to the sensors interface. gps_time sensor returns epoch time as time_t. Untested. --- host/lib/usrp/gps_ctrl.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'host/lib/usrp/gps_ctrl.cpp') diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index ff8e9cee6..ace56e7ed 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -172,6 +172,10 @@ public: } return now; } + + time_t get_epoch_time(void) { + return (get_time() - boost::posix_time::from_time_t(0)).total_seconds(); + } bool gps_detected(void) { return (gps_type != GPS_TYPE_NONE); -- cgit v1.2.3 From 4d73aae4638e5c08b2f55ea229414319befec68e Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Wed, 13 Apr 2011 12:32:35 -0700 Subject: GPS parser fixes for get_time. --- host/lib/usrp/gps_ctrl.cpp | 10 +++++----- host/lib/usrp/usrp2/mboard_impl.cpp | 2 -- 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'host/lib/usrp/gps_ctrl.cpp') diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index ace56e7ed..de97710f2 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -125,7 +125,6 @@ public: } -//TODO: this isn't generalizeable to non-USRP2 USRPs. std::string safe_gps_read() { return _recv(); } @@ -147,18 +146,19 @@ public: found_gprmc = true; break; } + boost::this_thread::sleep(boost::posix_time::milliseconds(200)); } UHD_ASSERT_THROW(found_gprmc); tok.assign(reply); toked.assign(tok.begin(), tok.end()); - UHD_ASSERT_THROW(toked.size() == 11); //if it's not we got something weird in there + UHD_ASSERT_THROW(toked.size() == 12); //if it's not we got something weird in there now = ptime( date( - greg_year(boost::lexical_cast(toked[8].substr(4, 2)) + 2000), //just trust me on this one - greg_month(boost::lexical_cast(toked[8].substr(2, 2))), - greg_day(boost::lexical_cast(toked[8].substr(0, 2))) + greg_year(boost::lexical_cast(toked[9].substr(4, 2)) + 2000), //just trust me on this one + greg_month(boost::lexical_cast(toked[9].substr(2, 2))), + greg_day(boost::lexical_cast(toked[9].substr(0, 2))) ), hours( boost::lexical_cast(toked[1].substr(0, 2))) + minutes(boost::lexical_cast(toked[1].substr(2, 2))) diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp index 42ba714a4..62cc3c403 100644 --- a/host/lib/usrp/usrp2/mboard_impl.cpp +++ b/host/lib/usrp/usrp2/mboard_impl.cpp @@ -105,8 +105,6 @@ usrp2_mboard_impl::usrp2_mboard_impl( _iface->get_gps_write_fn(), _iface->get_gps_read_fn()); - //if(_gps_ctrl->gps_detected()) std::cout << "GPS time: " << _gps_ctrl->get_time() << std::endl; - //init the dsp stuff (before setting update packets) dsp_init(); -- cgit v1.2.3