diff options
Diffstat (limited to 'host')
-rw-r--r-- | host/include/uhd/types/sensors.hpp | 15 | ||||
-rw-r--r-- | host/lib/types/sensors.cpp | 12 |
2 files changed, 26 insertions, 1 deletions
diff --git a/host/include/uhd/types/sensors.hpp b/host/include/uhd/types/sensors.hpp index e1a21e4c9..6f003bb40 100644 --- a/host/include/uhd/types/sensors.hpp +++ b/host/include/uhd/types/sensors.hpp @@ -85,6 +85,18 @@ namespace uhd{ const std::string &formatter = "%f" ); + /*! + * Create a sensor value from a string. + * \param name the name of the sensor + * \param value the real number value + * \param unit the associated unit type + */ + sensor_value_t( + const std::string &name, + const std::string &value, + const std::string &unit + ); + //! The name of the sensor value const std::string name; @@ -106,7 +118,8 @@ namespace uhd{ const enum{ BOOLEAN = 'b', INTEGER = 'i', - REALNUM = 'r' + REALNUM = 'r', + STRING = 's' } type; //! Convert this sensor value into a printable string diff --git a/host/lib/types/sensors.cpp b/host/lib/types/sensors.cpp index 497f4bfd5..2bff136a4 100644 --- a/host/lib/types/sensors.cpp +++ b/host/lib/types/sensors.cpp @@ -57,12 +57,24 @@ sensor_value_t::sensor_value_t( /* NOP */ } +sensor_value_t::sensor_value_t( + const std::string &name, + const std::string &value, + const std::string &unit +): + name(name), value(value), + unit(unit), type(STRING) +{ + /* NOP */ +} + std::string sensor_value_t::to_pp_string(void) const{ switch(type){ case BOOLEAN: return str(boost::format("%s: %s") % name % unit); case INTEGER: case REALNUM: + case STRING: return str(boost::format("%s: %s %s") % name % value % unit); } UHD_THROW_INVALID_CODE_PATH(); |