summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/include/uhd/types/sensors.hpp15
-rw-r--r--host/lib/types/sensors.cpp12
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();