Add mapping logic and serialization for writing

This commit is contained in:
2022-09-20 23:17:40 +02:00
parent df1c8f3821
commit 8ceb762fe1
68 changed files with 49901 additions and 14 deletions

View File

@@ -1,7 +1,9 @@
#ifndef FAN_H_
#define FAN_H_
class Fan {
#include <Serializable.h>
class Fan : public Serializable {
public:
virtual void pwm(int percent) = 0;
virtual int rpm() = 0;

View File

@@ -1,6 +1,7 @@
#ifndef HWMONFAN_H_
#define HWMONFAN_H_
#include <boost/json/object.hpp>
#include <memory>
#include <fan/Fan.h>
@@ -15,6 +16,8 @@ public:
void pwm(int percent) override;
int rpm() override;
json toJson() const override;
private:
std::shared_ptr<PwmControl> mPwmControl;
std::shared_ptr<Sensor> mRpmSensor;

View File

@@ -1,26 +1,31 @@
#ifndef PWMCONTROL_H_
#define PWMCONTROL_H_
#include <boost/json/object.hpp>
#include <string>
#include <Printable.h>
#include <Serializable.h>
enum class PWM_CONTROL_PROPERTY { CONTROL, ENABLE, MODE };
enum class PWM_ENABLE { FULL_SPEED = 0, MANUAL_CONTROL };
enum class PWM_MODE { DC = 0, PWM };
class PwmControl : public Printable {
class PwmControl : public Printable, public Serializable {
public:
PwmControl(std::string controlPath);
~PwmControl();
void pwm(int percent);
int pwm();
void enableManualControl();
void reset();
void EnableManualControl();
void Reset();
const std::string toString() const override;
json toJson() const override;
private:
int readValue(std::string path);