Add average and max aggregator functions

This commit is contained in:
2023-03-15 15:16:56 +01:00
parent 7b0b419a22
commit f383eb1b79
8 changed files with 141 additions and 72 deletions

View File

@@ -15,7 +15,9 @@
using namespace std;
namespace fs = filesystem;
PWMControl::PWMControl(string controlPath) : mControlPath(controlPath) {
PWMControl::PWMControl(string controlPath)
: mControlPath(controlPath)
{
fs::path pathEnable(mControlPath + PWM_POSTFIX_ENABLE);
fs::path pathMode(mControlPath + PWM_POSTFIX_MODE);
@@ -35,21 +37,24 @@ PWMControl::PWMControl(string controlPath) : mControlPath(controlPath) {
istrm.close();
}
PWMControl::~PWMControl() {
PWMControl::~PWMControl()
{
BOOST_LOG_FUNCTION();
BOOST_LOG_TRIVIAL(trace) << "Cleanup";
Reset();
}
void PWMControl::Power(int percent) {
void
PWMControl::Power(int percent)
{
BOOST_LOG_FUNCTION();
int pwmValue = (PWM_MAX_VALUE * percent) / 100;
if (percent != mCurrentValue) {
BOOST_LOG_TRIVIAL(trace)
<< "Updating control value to " << percent << "% (" << pwmValue << ")";
BOOST_LOG_TRIVIAL(trace) << "Updating control value of " << toString()
<< " to " << percent << "% (" << pwmValue << ")";
ofstream ostrm(mControlPath, ios::trunc);
ostrm << pwmValue;
ostrm.close();
@@ -58,7 +63,9 @@ void PWMControl::Power(int percent) {
}
}
int PWMControl::Power() {
int
PWMControl::Power()
{
int value;
ifstream istrm;
@@ -68,13 +75,17 @@ int PWMControl::Power() {
return (value * 100) / PWM_MAX_VALUE;
}
void PWMControl::EnableManualControl() {
void
PWMControl::EnableManualControl()
{
ofstream ostrm(mEnablePath, ios::trunc);
ostrm << static_cast<int>(PWM_ENABLE::MANUAL_CONTROL);
ostrm.close();
}
void PWMControl::Reset() {
void
PWMControl::Reset()
{
ofstream ostrm(mEnablePath, ios::trunc);
ostrm << mInitialEnable;
@@ -86,11 +97,15 @@ void PWMControl::Reset() {
ostrm.close();
}
const string PWMControl::toString() const {
const string
PWMControl::toString() const
{
return fs::path(mControlPath).filename();
}
json PWMControl::toJson() const {
json obj = {"PWMControl", mControlPath};
json
PWMControl::toJson() const
{
json obj = { "PWMControl", mControlPath };
return obj;
}