From 39310ad4d2663cace32903f4bc7438098d9b1ec3 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 5 Aug 2022 00:17:13 +0200 Subject: [PATCH] Expand SensorWrapper --- app/include/SensorsWrapper.h | 16 ++++++++++++++-- app/src/Pwm.cxx | 2 +- app/src/SensorsWrapper.cxx | 27 +++++++++++++++++++++++++-- app/src/main.cxx | 11 +++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/app/include/SensorsWrapper.h b/app/include/SensorsWrapper.h index 0a6cf78..7a22ddf 100644 --- a/app/include/SensorsWrapper.h +++ b/app/include/SensorsWrapper.h @@ -1,17 +1,29 @@ #ifndef SENSORSWRAPPER_H_ #define SENSORSWRAPPER_H_ +#include #include #include +struct Sensor { + sensors_chip_name chipName; + sensors_feature feature; + sensors_subfeature subFeature; +}; + class SensorsWrapper { public: SensorsWrapper(); + ~SensorsWrapper(); + + std::vector getTemperatureSensors(); + int getValue(Sensor sensor); + std::string getLabel(Sensor sensor); private: - std::vector mTemperatureSensors; - std::vector mFanSensors; + std::vector mTemperatureSensors; + std::vector mFanSensors; }; #endif // SENSORSWRAPPER_H_ diff --git a/app/src/Pwm.cxx b/app/src/Pwm.cxx index 5087149..88af61b 100644 --- a/app/src/Pwm.cxx +++ b/app/src/Pwm.cxx @@ -51,7 +51,7 @@ PWM::PWM() { void PWM::dumpValues() { for (auto control : mPwmControls) { - cout << control.second.control << ", " << control.second.enable << ", " + cout << control.second.control << ", " << control.second.enable << ": " << control.second.mode << endl; } } diff --git a/app/src/SensorsWrapper.cxx b/app/src/SensorsWrapper.cxx index 6dc25af..4cc409a 100644 --- a/app/src/SensorsWrapper.cxx +++ b/app/src/SensorsWrapper.cxx @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -24,12 +25,34 @@ SensorsWrapper::SensorsWrapper() { auto tempFeature = sensors_get_subfeature(chipName, feature, SENSORS_SUBFEATURE_TEMP_INPUT); if (tempFeature) - mTemperatureSensors.push_back(tempFeature); + mTemperatureSensors.push_back( + Sensor{*chipName, *feature, *tempFeature}); auto fanFeature = sensors_get_subfeature(chipName, feature, SENSORS_SUBFEATURE_FAN_INPUT); if (fanFeature) - mFanSensors.push_back(fanFeature); + mFanSensors.push_back(Sensor{*chipName, *feature, *fanFeature}); } } } + +SensorsWrapper::~SensorsWrapper() { sensors_cleanup(); } + +std::vector SensorsWrapper::getTemperatureSensors() { + return mTemperatureSensors; +} + +int SensorsWrapper::getValue(Sensor sensor) { + double value; + const sensors_chip_name *chipName = &sensor.chipName; + + sensors_get_value(chipName, sensor.subFeature.number, &value); + + return (int)value; +} + +string SensorsWrapper::getLabel(Sensor sensor) { + const sensors_chip_name *chipName = &sensor.chipName; + const sensors_feature *feature = &sensor.feature; + return string(sensors_get_label(chipName, feature)); +} diff --git a/app/src/main.cxx b/app/src/main.cxx index 71ab7e4..d7e2459 100644 --- a/app/src/main.cxx +++ b/app/src/main.cxx @@ -4,6 +4,7 @@ #include #include +#include int main() { auto config = std::fopen("/etc/conf.d/sensors", "r"); @@ -56,5 +57,15 @@ int main() { std::cout << pwm.readValue(controls[0], PWM_CONTROL_PROPERTY::ENABLE) << std::endl; + SensorsWrapper sens; + auto sensors = sens.getTemperatureSensors(); + + std::cout << "\n"; + + for (auto sensor : sensors) { + std::cout << sens.getLabel(sensor) << ": " << sens.getValue(sensor) + << std::endl; + } + return 0; }