From 7111a20203217afef2348f77b9ffad06613a89e5 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 11 Sep 2022 19:30:13 +0200 Subject: [PATCH] Cleanup, rename --- app/CMakeLists.txt | 2 +- app/include/CorrelatePwmRpm.h | 16 ---------------- app/include/HwmonTemperatureSensor.h | 5 ++++- app/include/Nvidia.h | 11 ----------- app/include/NvidiaTemperatureSensor.h | 15 +++++++++++++++ app/include/TemperatureSensor.h | 3 ++- app/src/HwmonTemperatureSensor.cxx | 11 ++++++++--- app/src/Nvidia.cxx | 17 ----------------- app/src/NvidiaTemperatureSensor.cxx | 21 +++++++++++++++++++++ app/src/main.cxx | 14 ++++++-------- 10 files changed, 57 insertions(+), 58 deletions(-) delete mode 100644 app/include/CorrelatePwmRpm.h delete mode 100644 app/include/Nvidia.h create mode 100644 app/include/NvidiaTemperatureSensor.h delete mode 100644 app/src/Nvidia.cxx create mode 100644 app/src/NvidiaTemperatureSensor.cxx diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 3eedf93..55a2ca0 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -9,7 +9,7 @@ find_package(Boost 1.79.0 COMPONENTS json) add_executable(app src/main.cxx - src/Nvidia.cxx + src/NvidiaTemperatureSensor.cxx src/Pwm.cxx src/SensorsWrapper.cxx src/HwmonTemperatureSensor.cxx diff --git a/app/include/CorrelatePwmRpm.h b/app/include/CorrelatePwmRpm.h deleted file mode 100644 index 4d2aa1a..0000000 --- a/app/include/CorrelatePwmRpm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef CORRELATEPWMRPM_H_ -#define CORRELATEPWMRPM_H_ - -/* -** What I need: -** - All system RPM sensors -** - All system PWM controls -** -** ToDo: Find which PWM controller affects which RPM sensor -** -*/ -class CorrelatePwmRpm { -public: -}; - -#endif // CORRELATEPWMRPM_H_ diff --git a/app/include/HwmonTemperatureSensor.h b/app/include/HwmonTemperatureSensor.h index 608ebc4..8dbfdaf 100644 --- a/app/include/HwmonTemperatureSensor.h +++ b/app/include/HwmonTemperatureSensor.h @@ -8,12 +8,15 @@ class HwmonTemperatureSensor : public TemperatureSensor { public: HwmonTemperatureSensor(const sensors_chip_name *chipName, + const sensors_feature *feature, const sensors_subfeature *subfeature); - int getTemperature() override; + int temperature() override; + std::string name() override; private: const sensors_chip_name *mChipName; + const sensors_feature *mFeature; const sensors_subfeature *mSubFeature; }; diff --git a/app/include/Nvidia.h b/app/include/Nvidia.h deleted file mode 100644 index e507387..0000000 --- a/app/include/Nvidia.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef NVIDIA_H_ -#define NVIDIA_H_ - -class Nvidia { -public: - Nvidia(); - ~Nvidia(); - double get_gpu_temperature(); -}; - -#endif // NVIDIA_H_ diff --git a/app/include/NvidiaTemperatureSensor.h b/app/include/NvidiaTemperatureSensor.h new file mode 100644 index 0000000..c7425fb --- /dev/null +++ b/app/include/NvidiaTemperatureSensor.h @@ -0,0 +1,15 @@ +#ifndef NVIDIA_H_ +#define NVIDIA_H_ + +#include + +class NvidiaTemperatureSensor : public TemperatureSensor { +public: + NvidiaTemperatureSensor(); + ~NvidiaTemperatureSensor(); + + int temperature() override; + std::string name() override; +}; + +#endif // NVIDIA_H_ diff --git a/app/include/TemperatureSensor.h b/app/include/TemperatureSensor.h index 39fa942..6e93a8e 100644 --- a/app/include/TemperatureSensor.h +++ b/app/include/TemperatureSensor.h @@ -5,7 +5,8 @@ class TemperatureSensor { public: - virtual int getTemperature() = 0; + virtual int temperature() = 0; + virtual std::string name() = 0; }; #endif // TEMPERATURESENSOR_H_ diff --git a/app/src/HwmonTemperatureSensor.cxx b/app/src/HwmonTemperatureSensor.cxx index ffb7b98..ca28515 100644 --- a/app/src/HwmonTemperatureSensor.cxx +++ b/app/src/HwmonTemperatureSensor.cxx @@ -5,12 +5,17 @@ using namespace std; HwmonTemperatureSensor::HwmonTemperatureSensor( - const sensors_chip_name *chipName, const sensors_subfeature *subfeature) - : mChipName(chipName), mSubFeature(subfeature) {} + const sensors_chip_name *chipName, const sensors_feature *feature, + const sensors_subfeature *subfeature) + : mChipName(chipName), mFeature(feature), mSubFeature(subfeature) {} -int HwmonTemperatureSensor::getTemperature() { +int HwmonTemperatureSensor::temperature() { double *value; sensors_get_value(mChipName, mSubFeature->number, value); return static_cast(*value); } + +string HwmonTemperatureSensor::name() { + return sensors_get_label(mChipName, mFeature); +} diff --git a/app/src/Nvidia.cxx b/app/src/Nvidia.cxx deleted file mode 100644 index e3ccd44..0000000 --- a/app/src/Nvidia.cxx +++ /dev/null @@ -1,17 +0,0 @@ -#include - -#include - -Nvidia::Nvidia() { nvmlInit_v2(); } -Nvidia::~Nvidia() { nvmlShutdown(); } - -double Nvidia::get_gpu_temperature() { - nvmlDevice_t device; - - nvmlDeviceGetHandleByIndex_v2(0, &device); - - unsigned int temp; - nvmlDeviceGetTemperature(device, NVML_TEMPERATURE_GPU, &temp); - - return static_cast(temp); -} diff --git a/app/src/NvidiaTemperatureSensor.cxx b/app/src/NvidiaTemperatureSensor.cxx new file mode 100644 index 0000000..6b9a73b --- /dev/null +++ b/app/src/NvidiaTemperatureSensor.cxx @@ -0,0 +1,21 @@ +#include + +#include + +using namespace std; + +NvidiaTemperatureSensor::NvidiaTemperatureSensor() { nvmlInit_v2(); } +NvidiaTemperatureSensor::~NvidiaTemperatureSensor() { nvmlShutdown(); } + +int NvidiaTemperatureSensor::temperature() { + nvmlDevice_t device; + + nvmlDeviceGetHandleByIndex_v2(0, &device); + + unsigned int temp; + nvmlDeviceGetTemperature(device, NVML_TEMPERATURE_GPU, &temp); + + return static_cast(temp); +} + +string NvidiaTemperatureSensor::name() { return "GPU"; } diff --git a/app/src/main.cxx b/app/src/main.cxx index db3925b..6c42694 100644 --- a/app/src/main.cxx +++ b/app/src/main.cxx @@ -6,7 +6,7 @@ #include #include -#include +#include #include #define CONFIG_FILE "/etc/conf.d/sensors" @@ -29,19 +29,17 @@ std::vector> sensors() { auto tempFeature = sensors_get_subfeature(chipName, feature, SENSORS_SUBFEATURE_TEMP_INPUT); if (tempFeature) - sensors.push_back( - std::make_shared(chipName, tempFeature)); + sensors.push_back(std::make_shared( + chipName, feature, tempFeature)); } } + sensors.push_back(std::make_shared()); + return sensors; } int main() { - Nvidia nv; - auto temp = nv.get_gpu_temperature(); - std::cout << "\nGPU Temp: " << temp << std::endl; - class PWM pwm; std::cout << '\n'; pwm.dumpValues(); @@ -53,7 +51,7 @@ int main() { auto tempSensors = sensors(); for (auto s : tempSensors) { - std::cout << s->getTemperature() << std::endl; + std::cout << s->name() << ": " << s->temperature() << std::endl; } return 0;