Move serial number formatting to inverter class

This commit is contained in:
Thomas Basler
2022-10-29 00:25:01 +02:00
parent f21dd351ef
commit f741fea333
9 changed files with 43 additions and 81 deletions

View File

@@ -5,6 +5,13 @@
InverterAbstract::InverterAbstract(uint64_t serial)
{
_serial.u64 = serial;
char serial_buff[sizeof(uint64_t) * 8 + 1];
snprintf(serial_buff, sizeof(serial_buff), "%0x%08x",
((uint32_t)((serial >> 32) & 0xFFFFFFFF)),
((uint32_t)(serial & 0xFFFFFFFF)));
_serialString = serial_buff;
_alarmLogParser.reset(new AlarmLogParser());
_devInfoParser.reset(new DevInfoParser());
_powerCommandParser.reset(new PowerCommandParser());
@@ -26,6 +33,11 @@ uint64_t InverterAbstract::serial()
return _serial.u64;
}
const String& InverterAbstract::serialString()
{
return _serialString;
}
void InverterAbstract::setName(const char* name)
{
uint8_t len = strlen(name);

View File

@@ -33,6 +33,7 @@ public:
explicit InverterAbstract(uint64_t serial);
void init();
uint64_t serial();
const String& serialString();
void setName(const char* name);
const char* name();
virtual String typeName() = 0;
@@ -64,6 +65,7 @@ public:
private:
serial_u _serial;
String _serialString;
char _name[MAX_NAME_LENGTH] = "";
fragment_t _rxFragmentBuffer[MAX_RF_FRAGMENT_COUNT];
uint8_t _rxFragmentMaxPacketId = 0;