Start implementation of sensors wrapper, rename files and classes, sort usings

This commit is contained in:
2022-08-02 23:11:01 +02:00
parent 1da0844ae8
commit f7bd651121
8 changed files with 63 additions and 8 deletions

View File

@@ -8,8 +8,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_executable(app
src/main.cxx
src/nvidia.cxx
src/pwm.cxx
src/Nvidia.cxx
src/Pwm.cxx
src/SensorsWrapper.cxx
)
set_property(TARGET app PROPERTY CXX_STANDARD 17)

View File

@@ -0,0 +1,17 @@
#ifndef SENSORSWRAPPER_H_
#define SENSORSWRAPPER_H_
#include <vector>
#include <sensors/sensors.h>
class SensorsWrapper {
public:
SensorsWrapper();
private:
std::vector<const sensors_subfeature *> mTemperatureSensors;
std::vector<const sensors_subfeature *> mFanSensors;
};
#endif // SENSORSWRAPPER_H_

View File

@@ -1,5 +1,6 @@
#include <include/nvml.h>
#include <nvidia.h>
#include <Nvidia.h>
Nvidia::Nvidia() { nvmlInit_v2(); }
Nvidia::~Nvidia() { nvmlShutdown(); }

View File

@@ -1,12 +1,12 @@
#include <cstdio>
#include <pwm.h>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <regex>
#include <string>
#include <Pwm.h>
namespace fs = std::filesystem;
using namespace std;

View File

@@ -0,0 +1,35 @@
#include <exception>
#include <iostream>
#include <stdexcept>
#include <SensorsWrapper.h>
using namespace std;
#define CONFIG_FILE "/etc/conf.d/sensors"
SensorsWrapper::SensorsWrapper() {
auto config = fopen(CONFIG_FILE, "r");
if (sensors_init(config) != 0) {
throw runtime_error("Config file doesn't exist");
}
int c = 0;
for (const sensors_chip_name *chipName;
(chipName = sensors_get_detected_chips(0, &c)) != NULL;) {
int d = 0;
for (const sensors_feature *feature;
(feature = sensors_get_features(chipName, &d)) != NULL;) {
auto tempFeature = sensors_get_subfeature(chipName, feature,
SENSORS_SUBFEATURE_TEMP_INPUT);
if (tempFeature)
mTemperatureSensors.push_back(tempFeature);
auto fanFeature = sensors_get_subfeature(chipName, feature,
SENSORS_SUBFEATURE_FAN_INPUT);
if (fanFeature)
mFanSensors.push_back(fanFeature);
}
}
}

View File

@@ -1,8 +1,9 @@
#include <nvidia.h>
#include <pwm.h>
#include <iostream>
#include <sensors/sensors.h>
#include <iostream>
#include <Nvidia.h>
#include <Pwm.h>
int main() {
auto config = std::fopen("/etc/conf.d/sensors", "r");