aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorAshish Chaudhari <ashish@ettus.com>2015-01-23 17:33:23 -0800
committerAshish Chaudhari <ashish@ettus.com>2015-01-23 17:33:23 -0800
commit101f6ee0332485a6fa59e2a69b1de253304dcee6 (patch)
tree21c66bd8990dd598b6f3f5ccd40247207b46b2e3 /host/lib
parent1f44f06abad589d2244eecfcbca1618b4fcb3ffd (diff)
downloaduhd-101f6ee0332485a6fa59e2a69b1de253304dcee6.tar.gz
uhd-101f6ee0332485a6fa59e2a69b1de253304dcee6.tar.bz2
uhd-101f6ee0332485a6fa59e2a69b1de253304dcee6.zip
e300: Several bugfixes for E300 clk/pps selection code
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/e300/e300_defaults.hpp2
-rw-r--r--host/lib/usrp/e300/e300_impl.cpp27
-rw-r--r--host/lib/usrp/e300/e300_network.cpp3
3 files changed, 6 insertions, 26 deletions
diff --git a/host/lib/usrp/e300/e300_defaults.hpp b/host/lib/usrp/e300/e300_defaults.hpp
index 9c0e5df1d..8fe8c3a05 100644
--- a/host/lib/usrp/e300/e300_defaults.hpp
+++ b/host/lib/usrp/e300/e300_defaults.hpp
@@ -35,7 +35,7 @@ static const double DEFAULT_FE_GAIN = 0.0;
static const double DEFAULT_FE_FREQ = 1.0e9;
static const double DEFAULT_FE_BW = 56e6;
-static const std::string DEFAULT_TIME_SRC = "none";
+static const std::string DEFAULT_TIME_SRC = "internal";
static const std::string DEFAULT_CLOCK_SRC = "internal";
static const size_t DEFAULT_RX_DATA_FRAME_SIZE = 4096;
diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp
index c74ce9412..0c112fdb1 100644
--- a/host/lib/usrp/e300/e300_impl.cpp
+++ b/host/lib/usrp/e300/e300_impl.cpp
@@ -494,13 +494,13 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr)
//setup time source props
_tree->create<std::string>(mb_path / "time_source" / "value")
.subscribe(boost::bind(&e300_impl::_update_time_source, this, _1))
- .set("internal");
+ .set(e300::DEFAULT_TIME_SRC);
static const std::vector<std::string> time_sources = boost::assign::list_of("none")("internal")("external")("gpsdo");
_tree->create<std::vector<std::string> >(mb_path / "time_source" / "options").set(time_sources);
//setup reference source props
_tree->create<std::string>(mb_path / "clock_source" / "value")
.subscribe(boost::bind(&e300_impl::_update_clock_source, this, _1))
- .set("internal");
+ .set(e300::DEFAULT_CLOCK_SRC);
static const std::vector<std::string> clock_sources = boost::assign::list_of("internal"); //external,gpsdo not supported
_tree->create<std::vector<std::string> >(mb_path / "clock_source" / "options").set(clock_sources);
@@ -574,29 +574,6 @@ 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);
-
- if (_sensor_manager->get_gps_found()) {
- _tree->access<std::string>(mb_path / "clock_source" / "value").set("gpsdo");
- _tree->access<std::string>(mb_path / "time_source" / "value").set("gpsdo");
- UHD_MSG(status) << "References initialized to GPSDO sources" << std::endl;
- const time_t tp = time_t(_sensor_manager->get_gps_time().to_int());
- _tree->access<time_spec_t>(mb_path / "time" / "pps").set(time_spec_t(tp));
- //wait for time to be set (timeout after 1 second)
- for (int i = 0; i < 10; i++)
- {
- boost::this_thread::sleep(boost::posix_time::milliseconds(100));
- if(tp == (_tree->access<time_spec_t>(mb_path / "time" / "pps").get()).get_full_secs())
- break;
- }
- } else {
- // init to default time and clock source
- _tree->access<std::string>(mb_path / "clock_source" / "value").set(
- e300::DEFAULT_CLOCK_SRC);
- _tree->access<std::string>(mb_path / "time_source" / "value").set(
- e300::DEFAULT_TIME_SRC);
-
- UHD_MSG(status) << "References initialized to internal sources" << std::endl;
- }
}
boost::uint8_t e300_impl::_get_internal_gpio(
diff --git a/host/lib/usrp/e300/e300_network.cpp b/host/lib/usrp/e300/e300_network.cpp
index a21c508fe..2c37f2ff1 100644
--- a/host/lib/usrp/e300/e300_network.cpp
+++ b/host/lib/usrp/e300/e300_network.cpp
@@ -332,6 +332,9 @@ static void e300_sensor_tunnel(
} else if (uhd::ntohx(in->which) == GPS_LOCK) {
in->value = uhd::htonx<boost::uint32_t>(
sensor_manager->get_gps_lock().to_bool() ? 1 : 0);
+ } else if (uhd::ntohx(in->which) == REF_LOCK) {
+ in->value = uhd::htonx<boost::uint32_t>(
+ sensor_manager->get_ref_lock().to_bool() ? 1 : 0);
} else if (uhd::ntohx(in->which) == GPS_TIME) {
in->value = uhd::htonx<boost::uint32_t>(
sensor_manager->get_gps_time().to_int());