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

46 lines
1.2 KiB
C++

// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "Parser.h"
#define DEV_INFO_SIZE 20
class DevInfoParser : public Parser {
public:
DevInfoParser();
void clearBufferAll();
void appendFragmentAll(const uint8_t offset, const uint8_t* payload, const uint8_t len);
void clearBufferSimple();
void appendFragmentSimple(const uint8_t offset, const uint8_t* payload, const uint8_t len);
uint32_t getLastUpdateAll() const;
void setLastUpdateAll(const uint32_t lastUpdate);
uint32_t getLastUpdateSimple() const;
void setLastUpdateSimple(const uint32_t lastUpdate);
uint16_t getFwBuildVersion() const;
time_t getFwBuildDateTime() const;
uint16_t getFwBootloaderVersion() const;
uint32_t getHwPartNumber() const;
String getHwVersion() const;
uint16_t getMaxPower() const;
String getHwModelName() const;
bool containsValidData() const;
private:
static time_t timegm(const struct tm* tm);
uint8_t getDevIdx() const;
uint32_t _lastUpdateAll = 0;
uint32_t _lastUpdateSimple = 0;
uint8_t _payloadDevInfoAll[DEV_INFO_SIZE] = {};
uint8_t _devInfoAllLength = 0;
uint8_t _payloadDevInfoSimple[DEV_INFO_SIZE] = {};
uint8_t _devInfoSimpleLength = 0;
};