diff options
author | Nick Foster <nick@nerdnetworks.org> | 2011-04-08 14:59:46 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-04-29 09:58:54 -0700 |
commit | a4aa89ed5d73b6afa5d2d28d8f2b6cc206baf22d (patch) | |
tree | 216703a0056e4634ef85b14a08a7386a9670e5d2 | |
parent | 4df082cb4eb6659d76dd9a38988033c82c662fa9 (diff) | |
download | uhd-a4aa89ed5d73b6afa5d2d28d8f2b6cc206baf22d.tar.gz uhd-a4aa89ed5d73b6afa5d2d28d8f2b6cc206baf22d.tar.bz2 uhd-a4aa89ed5d73b6afa5d2d28d8f2b6cc206baf22d.zip |
USRP2: Added GPS time support to the sensors interface. gps_time sensor returns epoch time as time_t. Untested.
-rw-r--r-- | host/include/uhd/usrp/gps_ctrl.hpp | 6 | ||||
-rw-r--r-- | host/lib/usrp/gps_ctrl.cpp | 4 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/mboard_impl.cpp | 6 |
3 files changed, 15 insertions, 1 deletions
diff --git a/host/include/uhd/usrp/gps_ctrl.hpp b/host/include/uhd/usrp/gps_ctrl.hpp index 21d400b3b..bd679b165 100644 --- a/host/include/uhd/usrp/gps_ctrl.hpp +++ b/host/include/uhd/usrp/gps_ctrl.hpp @@ -42,6 +42,12 @@ public: * \return current GPS time and date as boost::posix_time::ptime object */ virtual ptime get_time(void) = 0; + + /*! + * Get the epoch time (as time_t, which is int) + * \return current GPS time and date as time_t + */ + virtual time_t get_epoch_time(void) = 0; /*! * Tell you if there's a supported GPS connected or not 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); diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp index 520ee49a6..7a756087a 100644 --- a/host/lib/usrp/usrp2/mboard_impl.cpp +++ b/host/lib/usrp/usrp2/mboard_impl.cpp @@ -372,7 +372,11 @@ void usrp2_mboard_impl::get(const wax::obj &key_, wax::obj &val){ else if(key.name == "ref_locked") { val = sensor_value_t("Ref", this->get_ref_locked(), "locked", "unlocked"); return; - } else { + } + else if(key.name == "gps_time") { + val = sensor_value_t("GPS time", int(_gps_ctrl->get_epoch_time()), "seconds"); + } + else { UHD_THROW_PROP_GET_ERROR(); } break; |