OpenDTU-old/lib/Hoymiles/src/parser/SystemConfigParaParser.h
2023-12-12 01:30:40 +01:00

38 lines
1.3 KiB
C++

// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "Parser.h"
#define SYSTEM_CONFIG_PARA_SIZE 16
class SystemConfigParaParser : public Parser {
public:
SystemConfigParaParser();
void clearBuffer();
void appendFragment(const uint8_t offset, const uint8_t* payload, const uint8_t len);
float getLimitPercent() const;
void setLimitPercent(const float value);
void setLastLimitCommandSuccess(const LastCommandSuccess status);
LastCommandSuccess getLastLimitCommandSuccess() const;
uint32_t getLastUpdateCommand() const;
void setLastUpdateCommand(const uint32_t lastUpdate);
void setLastLimitRequestSuccess(const LastCommandSuccess status);
LastCommandSuccess getLastLimitRequestSuccess() const;
uint32_t getLastUpdateRequest() const;
void setLastUpdateRequest(const uint32_t lastUpdate);
// Returns 1 based amount of expected bytes of data
uint8_t getExpectedByteCount() const;
private:
uint8_t _payload[SYSTEM_CONFIG_PARA_SIZE];
uint8_t _payloadLength;
LastCommandSuccess _lastLimitCommandSuccess = CMD_OK; // Set to OK because we have to assume nothing is done at startup
LastCommandSuccess _lastLimitRequestSuccess = CMD_NOK; // Set to NOK to fetch at startup
uint32_t _lastUpdateCommand = 0;
uint32_t _lastUpdateRequest = 0;
};