From 2208aa86720aae4e9ad7f39fd493e638bffb04fc Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 11 Sep 2022 18:34:56 +0200 Subject: [PATCH] Add Fan stubs, rework Sensors classes --- app/include/Fan.h | 10 ++++++++++ app/include/HwmonFan.h | 12 ++++++++++++ app/include/HwmonTemperatureSensor.h | 4 +++- app/include/TemperatureSensor.h | 5 +++-- app/src/HwmonTemperatureSensor.cxx | 25 ++++--------------------- app/src/main.cxx | 9 ++++++++- 6 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 app/include/Fan.h create mode 100644 app/include/HwmonFan.h diff --git a/app/include/Fan.h b/app/include/Fan.h new file mode 100644 index 0000000..d9b8d13 --- /dev/null +++ b/app/include/Fan.h @@ -0,0 +1,10 @@ +#ifndef FAN_H_ +#define FAN_H_ + +class Fan { +public: + virtual void PWM(int value) = 0; + virtual int RPM() = 0; +}; + +#endif // FAN_H_ diff --git a/app/include/HwmonFan.h b/app/include/HwmonFan.h new file mode 100644 index 0000000..08df5ce --- /dev/null +++ b/app/include/HwmonFan.h @@ -0,0 +1,12 @@ +#ifndef HWMONFAN_H_ +#define HWMONFAN_H_ + +#include + +class HwmonFan : public Fan { +public: + void PWM(int value) override; + int RPM() override; +}; + +#endif // HWMONFAN_H_ diff --git a/app/include/HwmonTemperatureSensor.h b/app/include/HwmonTemperatureSensor.h index ddea75f..0709a47 100644 --- a/app/include/HwmonTemperatureSensor.h +++ b/app/include/HwmonTemperatureSensor.h @@ -7,8 +7,10 @@ class HwmonTemperatureSensor : public TemperatureSensor { public: + HwmonTemperatureSensor(sensors_chip_name chipName, + sensors_subfeature subfeature); + int getTemperature() override; - std::string toJson() override; private: sensors_chip_name mChipName; diff --git a/app/include/TemperatureSensor.h b/app/include/TemperatureSensor.h index edc81ce..e021b82 100644 --- a/app/include/TemperatureSensor.h +++ b/app/include/TemperatureSensor.h @@ -1,12 +1,13 @@ #ifndef TEMPERATURESENSOR_H_ #define TEMPERATURESENSOR_H_ +#include + #include class TemperatureSensor { public: - virtual int getTemperature() = 0; - virtual std::string toJson() = 0; + virtual int getTemperature() = 0; }; #endif // TEMPERATURESENSOR_H_ diff --git a/app/src/HwmonTemperatureSensor.cxx b/app/src/HwmonTemperatureSensor.cxx index 01b6657..3c13dd5 100644 --- a/app/src/HwmonTemperatureSensor.cxx +++ b/app/src/HwmonTemperatureSensor.cxx @@ -1,12 +1,12 @@ -#include -#include #include #include -using namespace boost::json; +using namespace std; -#define SENSOR_TYPE_STRING "HWMON" +HwmonTemperatureSensor::HwmonTemperatureSensor(sensors_chip_name chipName, + sensors_subfeature subfeature) + : mChipName(chipName), mSubFeature(subfeature) {} int HwmonTemperatureSensor::getTemperature() { double *value; @@ -14,20 +14,3 @@ int HwmonTemperatureSensor::getTemperature() { return static_cast(*value); } - -void tag_invoke(value_from_tag, value &jv, sensors_bus_id &c) { - jv = {{"type", c.type}, {"nr", c.nr}}; -} - -void tag_invoke(value_from_tag, value &jv, sensors_chip_name &c) { - jv = {{"prefix", c.prefix}, - {"sensors_bus_id", value_from(c.bus)}, - {"addr", c.addr}, - {"path", c.path}}; -} - -std::string HwmonTemperatureSensor::toJson() { - value jv = {{SENSOR_TYPE_STRING, {"ChipName", value_from(mChipName)}}}; - - return serialize(jv); -} diff --git a/app/src/main.cxx b/app/src/main.cxx index d7e2459..0293dab 100644 --- a/app/src/main.cxx +++ b/app/src/main.cxx @@ -16,7 +16,14 @@ int main() { int c = 0; for (const sensors_chip_name *i; (i = sensors_get_detected_chips(0, &c)) != NULL;) { - std::cout << i->prefix << std::endl; + std::cout << "Prefix: " << i->prefix << std::endl; + + size_t size; + char *string; + + sensors_snprintf_chip_name(string, size, i); + + std::cout << std::string(string) << std::endl; int d = 0; for (const sensors_feature *j; (j = sensors_get_features(i, &d)) != NULL;) {