// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_MBOARD_REV_HPP #define INCLUDED_MBOARD_REV_HPP #include #include #include #include class UHD_API mboard_rev_t : boost::equality_comparable, boost::less_than_comparable{ public: /*! * Create a mboard rev from an integer. * \param rev the integer representation */ mboard_rev_t(boost::uint16_t rev = 0xffff); /*! * Obtain a mboard rev that represents an invalid/uninit mboard ID * \return the mboard rev with the 0xffff rev. */ static mboard_rev_t none(void); /*! * Create a new mboard rev from an integer representation. * \param uint16 an unsigned 16 bit integer * \return a new mboard rev containing the integer */ static mboard_rev_t from_uint16(boost::uint16_t uint16); /*! * Get the mboard rev represented as an integer. * \return an unsigned 16 bit integer representation */ boost::uint16_t to_uint16(void) const; /*! * Create a new mboard rev from a string representation. * If the string has a 0x prefix, it will be parsed as hex. * \param string a numeric string, possibly hex * \return a new dboard id containing the integer */ static mboard_rev_t from_string(const std::string &string); /*! * Get the mboard rev represented as an integer. * \return a hex string representation with 0x prefix */ std::string to_string(void) const; /*! * Get the pretty print representation of this mboard rev. * \return a string with the mboard name and rev number */ std::string to_pp_string(void) const; /*! * Tell you if you're USRP2 or USRP2+ * \return true if USRP2+, false if USRP2 */ bool is_usrp2p(void) const; /*! * Get the major revision number * \return major revision number */ boost::uint8_t major(void) const; /*! * Get the minor revision number * \return minor revision number */ boost::uint8_t minor(void) const; private: boost::uint16_t _rev; //internal representation }; /*! * Comparator operator overloaded for mboard rev. * The boost::equality_comparable provides the !=. * \param lhs the mboard rev to the left of the operator * \param rhs the mboard rev to the right of the operator * \return true when the mboard revs are equal */ UHD_API bool operator==(const mboard_rev_t &lhs, const mboard_rev_t &rhs); /*! * Comparator operator overloaded for mboard rev. * The boost::less_than_comparable provides the >, <=, >=. * \param lhs the mboard rev to the left of the operator * \param rhs the mboard rev to the right of the operator * \return true when lhs < rhs */ UHD_API bool operator<(const mboard_rev_t &lhs, const mboard_rev_t &rhs); #endif /* INCLUDED_MBOARD_REV_HPP */