diff options
| author | Moritz Fischer <moritz.fischer@ettus.com> | 2015-05-01 16:06:12 -0700 | 
|---|---|---|
| committer | Moritz Fischer <moritz.fischer@ettus.com> | 2015-05-01 16:06:12 -0700 | 
| commit | e1f466e24ebf3f890330d0dadbb399548d156ae4 (patch) | |
| tree | 556d6f99b4f3c0224a0cb1eaa2eeb9e71668a0cb /host/lib/usrp | |
| parent | 4d3b80c338f34d7dc9516e7cdff7782aaf922b9c (diff) | |
| download | uhd-e1f466e24ebf3f890330d0dadbb399548d156ae4.tar.gz uhd-e1f466e24ebf3f890330d0dadbb399548d156ae4.tar.bz2 uhd-e1f466e24ebf3f890330d0dadbb399548d156ae4.zip | |
e300: gps: If gps doesn't have lock return 0 as time.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Diffstat (limited to 'host/lib/usrp')
| -rw-r--r-- | host/lib/usrp/e300/e300_impl.cpp | 13 | ||||
| -rw-r--r-- | host/lib/usrp/e300/e300_ublox_control_impl.cpp | 5 | 
2 files changed, 7 insertions, 11 deletions
| diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp index 735f109b4..b35bbab4e 100644 --- a/host/lib/usrp/e300/e300_impl.cpp +++ b/host/lib/usrp/e300/e300_impl.cpp @@ -575,16 +575,9 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr)      _tree->access<subdev_spec_t>(mb_path / "rx_subdev_spec").set(rx_spec);      _tree->access<subdev_spec_t>(mb_path / "tx_subdev_spec").set(tx_spec); -    // gps installed: use time and init time spec -    if (_sensor_manager->get_sensor("gps_locked").to_bool()) { -        _tree->access<std::string>(mb_path / "time_source" / "value").set("gpsdo"); -        UHD_MSG(status) << "Initializing time to the internal GPSDO" << std::endl; -        const time_t tp = time_t(_sensor_manager->get_sensor("gps_time").to_int()+1); -        _tree->access<time_spec_t>(mb_path / "time" / "pps").set(time_spec_t(tp)); -    } else { -        //init to internal time source -        _tree->access<std::string>(mb_path / "time_source/value").set("internal"); -    } +    UHD_MSG(status) << "Initializing time to the internal GPSDO" << std::endl; +    const time_t tp = time_t(_sensor_manager->get_sensor("gps_time").to_int()+1); +    _tree->access<time_spec_t>(mb_path / "time" / "pps").set(time_spec_t(tp));  }  boost::uint8_t e300_impl::_get_internal_gpio( diff --git a/host/lib/usrp/e300/e300_ublox_control_impl.cpp b/host/lib/usrp/e300/e300_ublox_control_impl.cpp index 0b8a2048d..389bf79fa 100644 --- a/host/lib/usrp/e300/e300_ublox_control_impl.cpp +++ b/host/lib/usrp/e300/e300_ublox_control_impl.cpp @@ -65,7 +65,10 @@ std::vector<std::string> control_impl::get_sensors(void)  uhd::sensor_value_t control_impl::get_sensor(std::string key)  {      if (key == "gps_time") { -        return sensor_value_t("GPS epoch time", int(_get_epoch_time()), "seconds"); +        bool lock; +        _locked.wait_and_see(lock); +        return sensor_value_t("GPS epoch time", +            lock ? int(_get_epoch_time()) : 0, "seconds");      } else if (key == "gps_locked") {          bool lock;          _locked.wait_and_see(lock); | 
