Start implementation of sensors wrapper, rename files and classes, sort usings
This commit is contained in:
@@ -8,8 +8,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|||||||
|
|
||||||
add_executable(app
|
add_executable(app
|
||||||
src/main.cxx
|
src/main.cxx
|
||||||
src/nvidia.cxx
|
src/Nvidia.cxx
|
||||||
src/pwm.cxx
|
src/Pwm.cxx
|
||||||
|
src/SensorsWrapper.cxx
|
||||||
)
|
)
|
||||||
|
|
||||||
set_property(TARGET app PROPERTY CXX_STANDARD 17)
|
set_property(TARGET app PROPERTY CXX_STANDARD 17)
|
||||||
|
|||||||
17
app/include/SensorsWrapper.h
Normal file
17
app/include/SensorsWrapper.h
Normal 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_
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#include <include/nvml.h>
|
#include <include/nvml.h>
|
||||||
#include <nvidia.h>
|
|
||||||
|
#include <Nvidia.h>
|
||||||
|
|
||||||
Nvidia::Nvidia() { nvmlInit_v2(); }
|
Nvidia::Nvidia() { nvmlInit_v2(); }
|
||||||
Nvidia::~Nvidia() { nvmlShutdown(); }
|
Nvidia::~Nvidia() { nvmlShutdown(); }
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <pwm.h>
|
|
||||||
|
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <Pwm.h>
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
35
app/src/SensorsWrapper.cxx
Normal file
35
app/src/SensorsWrapper.cxx
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
#include <nvidia.h>
|
#include <iostream>
|
||||||
#include <pwm.h>
|
|
||||||
#include <sensors/sensors.h>
|
#include <sensors/sensors.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <Nvidia.h>
|
||||||
|
#include <Pwm.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
auto config = std::fopen("/etc/conf.d/sensors", "r");
|
auto config = std::fopen("/etc/conf.d/sensors", "r");
|
||||||
|
|||||||
Reference in New Issue
Block a user