diff options
Diffstat (limited to 'host/lib/usrp')
| -rw-r--r-- | host/lib/usrp/b200/b200_impl.cpp | 11 | ||||
| -rw-r--r-- | host/lib/usrp/b200/b200_impl.hpp | 3 | ||||
| -rw-r--r-- | host/lib/usrp/e300/e300_impl.cpp | 11 | ||||
| -rw-r--r-- | host/lib/usrp/e300/e300_impl.hpp | 3 | 
4 files changed, 20 insertions, 8 deletions
| diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp index dae90bbfe..9a2c65680 100644 --- a/host/lib/usrp/b200/b200_impl.cpp +++ b/host/lib/usrp/b200/b200_impl.cpp @@ -624,11 +624,11 @@ b200_impl::b200_impl(const uhd::device_addr_t& device_addr, usb_device_handle::s      //register time now and pps onto available radio cores      _tree->create<time_spec_t>(mb_path / "time" / "now")          .publish(boost::bind(&time_core_3000::get_time_now, _radio_perifs[0].time64)) -        .subscribe(boost::bind(&b200_impl::sync_times, this, _1)) +        .subscribe(boost::bind(&b200_impl::set_time, this, _1))          .set(0.0);      //re-sync the times when the tick rate changes      _tree->access<double>(mb_path / "tick_rate") -        .subscribe(boost::bind(&b200_impl::sync_times, this, _radio_perifs[0].time64->get_time_now())); +        .subscribe(boost::bind(&b200_impl::sync_times, this));      _tree->create<time_spec_t>(mb_path / "time" / "pps")          .publish(boost::bind(&time_core_3000::get_time_last_pps, _radio_perifs[0].time64));      BOOST_FOREACH(radio_perifs_t &perif, _radio_perifs) @@ -1082,7 +1082,7 @@ void b200_impl::update_time_source(const std::string &source)      }  } -void b200_impl::sync_times(const uhd::time_spec_t& t) +void b200_impl::set_time(const uhd::time_spec_t& t)  {      BOOST_FOREACH(radio_perifs_t &perif, _radio_perifs)          perif.time64->set_time_sync(t); @@ -1090,6 +1090,11 @@ void b200_impl::sync_times(const uhd::time_spec_t& t)      _local_ctrl->poke32(TOREG(SR_CORE_SYNC), _time_source);  } +void b200_impl::sync_times() +{ +    set_time(_radio_perifs[0].time64->get_time_now()); +} +  /***********************************************************************   * GPIO setup   **********************************************************************/ diff --git a/host/lib/usrp/b200/b200_impl.hpp b/host/lib/usrp/b200/b200_impl.hpp index f052c55e6..4ddb29f0b 100644 --- a/host/lib/usrp/b200/b200_impl.hpp +++ b/host/lib/usrp/b200/b200_impl.hpp @@ -167,7 +167,8 @@ private:      uhd::usrp::subdev_spec_t coerce_subdev_spec(const uhd::usrp::subdev_spec_t &);      void update_subdev_spec(const std::string &tx_rx, const uhd::usrp::subdev_spec_t &);      void update_time_source(const std::string &); -    void sync_times(const uhd::time_spec_t&); +    void set_time(const uhd::time_spec_t&); +    void sync_times(void);      void update_clock_source(const std::string &);      void update_bandsel(const std::string& which, double freq);      void update_antenna_sel(const size_t which, const std::string &ant); diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp index 5cc274bbb..0003dddb0 100644 --- a/host/lib/usrp/e300/e300_impl.cpp +++ b/host/lib/usrp/e300/e300_impl.cpp @@ -528,11 +528,11 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr)      ////////////////////////////////////////////////////////////////////      _tree->create<time_spec_t>(mb_path / "time" / "now")          .publish(boost::bind(&time_core_3000::get_time_now, _radio_perifs[0].time64)) -        .subscribe(boost::bind(&e300_impl::_sync_times, this, _1)) +        .subscribe(boost::bind(&e300_impl::_set_time, this, _1))          .set(0.0);      //re-sync the times when the tick rate changes      _tree->access<double>(mb_path / "tick_rate") -        .subscribe(boost::bind(&e300_impl::_sync_times, this, _radio_perifs[0].time64->get_time_now())); +        .subscribe(boost::bind(&e300_impl::_sync_times, this));      _tree->create<time_spec_t>(mb_path / "time" / "pps")          .publish(boost::bind(&time_core_3000::get_time_last_pps, _radio_perifs[0].time64))          .subscribe(boost::bind(&time_core_3000::set_time_next_pps, _radio_perifs[0].time64, _1)) @@ -829,7 +829,7 @@ void e300_impl::_update_time_source(const std::string &source)      _update_gpio_state();  } -void e300_impl::_sync_times(const uhd::time_spec_t& t) +void e300_impl::_set_time(const uhd::time_spec_t& t)  {      BOOST_FOREACH(radio_perifs_t &perif, _radio_perifs)          perif.time64->set_time_sync(t); @@ -839,6 +839,11 @@ void e300_impl::_sync_times(const uhd::time_spec_t& t)      _update_gpio_state();  } +void e300_impl::_sync_times() +{ +    _set_time(_radio_perifs[0].time64->get_time_now()); +} +  size_t e300_impl::_get_axi_dma_channel(      boost::uint8_t destination,      boost::uint8_t prefix) diff --git a/host/lib/usrp/e300/e300_impl.hpp b/host/lib/usrp/e300/e300_impl.hpp index 1f20726ea..764059c1b 100644 --- a/host/lib/usrp/e300/e300_impl.hpp +++ b/host/lib/usrp/e300/e300_impl.hpp @@ -260,7 +260,8 @@ private: // methods      void _update_time_source(const std::string &source);      void _update_clock_source(const std::string &); -    void _sync_times(const uhd::time_spec_t&); +    void _set_time(const uhd::time_spec_t&); +    void _sync_times(void);      void _update_subdev_spec(          const std::string &txrx, | 
