aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormichael-west <michael.west@ettus.com>2015-10-14 14:10:25 -0700
committerMartin Braun <martin.braun@ettus.com>2015-12-10 14:21:49 -0800
commitc1e6da087946b522018996267441b8555791dabd (patch)
tree1833f03bfff3e08ca32ee53e757ba14f7f4c216b
parentc21c5ee6fe6c0e30ac803b308d74ec77317a456f (diff)
downloaduhd-c1e6da087946b522018996267441b8555791dabd.tar.gz
uhd-c1e6da087946b522018996267441b8555791dabd.tar.bz2
uhd-c1e6da087946b522018996267441b8555791dabd.zip
B210/E300: Re-sync times after master clock rate change.
-rw-r--r--host/lib/usrp/b200/b200_impl.cpp3
-rw-r--r--host/lib/usrp/e300/e300_impl.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp
index a18e595a6..dae90bbfe 100644
--- a/host/lib/usrp/b200/b200_impl.cpp
+++ b/host/lib/usrp/b200/b200_impl.cpp
@@ -626,6 +626,9 @@ b200_impl::b200_impl(const uhd::device_addr_t& device_addr, usb_device_handle::s
.publish(boost::bind(&time_core_3000::get_time_now, _radio_perifs[0].time64))
.subscribe(boost::bind(&b200_impl::sync_times, 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()));
_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)
diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp
index bf108e171..5cc274bbb 100644
--- a/host/lib/usrp/e300/e300_impl.cpp
+++ b/host/lib/usrp/e300/e300_impl.cpp
@@ -530,6 +530,9 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr)
.publish(boost::bind(&time_core_3000::get_time_now, _radio_perifs[0].time64))
.subscribe(boost::bind(&e300_impl::_sync_times, 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()));
_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))