// // Copyright 2010,2014 Ettus Research LLC // Copyright 2018 Ettus Research, a National Instruments Company // // SPDX-License-Identifier: GPL-3.0-or-later // #include #include #include #include #include using namespace uhd::usrp; dboard_id_t::dboard_id_t(uint16_t id) { _id = id; } dboard_id_t dboard_id_t::none(void) { return dboard_id_t(); } dboard_id_t dboard_id_t::from_uint16(uint16_t uint16) { return dboard_id_t(uint16); } uint16_t dboard_id_t::to_uint16(void) const { return _id; } // used with lexical cast to parse a hex string template struct to_hex { T value; operator T() const { return value; } friend std::istream& operator>>(std::istream& in, to_hex& out) { in >> std::hex >> out.value; return in; } }; dboard_id_t dboard_id_t::from_string(const std::string& string) { if (string.substr(0, 2) == "0x") { std::stringstream interpreter(string); to_hex hh; interpreter >> hh; return dboard_id_t::from_uint16(hh); } return dboard_id_t::from_uint16(boost::lexical_cast(string)); } std::string dboard_id_t::to_string(void) const { return str(boost::format("0x%04x") % this->to_uint16()); } // Note: to_pp_string is implemented in the dboard manager // because it needs access to the dboard registration table bool uhd::usrp::operator==(const dboard_id_t& lhs, const dboard_id_t& rhs) { return lhs.to_uint16() == rhs.to_uint16(); }