Added function t retrieve a inverter just by a given payload fragment
This commit is contained in:
parent
b597e907de
commit
0d9b994c92
@ -53,6 +53,29 @@ std::shared_ptr<InverterAbstract> HoymilesClass::getInverterBySerial(uint64_t se
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<InverterAbstract> HoymilesClass::getInverterByFragment(fragment_t* fragment)
|
||||||
|
{
|
||||||
|
if (fragment->len <= 4) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<InverterAbstract> inv;
|
||||||
|
for (uint8_t i = 0; i < _inverters.size(); i++) {
|
||||||
|
inv = _inverters[i];
|
||||||
|
serial_u p;
|
||||||
|
p.u64 = inv->serial();
|
||||||
|
|
||||||
|
if ((p.b[3] == fragment->fragment[1])
|
||||||
|
&& (p.b[2] == fragment->fragment[2])
|
||||||
|
&& (p.b[1] == fragment->fragment[3])
|
||||||
|
&& (p.b[0] == fragment->fragment[4])) {
|
||||||
|
|
||||||
|
return inv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
void HoymilesClass::removeInverterByPos(uint8_t pos)
|
void HoymilesClass::removeInverterByPos(uint8_t pos)
|
||||||
{
|
{
|
||||||
_inverters.erase(_inverters.begin() + pos);
|
_inverters.erase(_inverters.begin() + pos);
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public:
|
|||||||
std::shared_ptr<InverterAbstract> addInverter(const char* name, uint64_t serial);
|
std::shared_ptr<InverterAbstract> addInverter(const char* name, uint64_t serial);
|
||||||
std::shared_ptr<InverterAbstract> getInverterByPos(uint8_t pos);
|
std::shared_ptr<InverterAbstract> getInverterByPos(uint8_t pos);
|
||||||
std::shared_ptr<InverterAbstract> getInverterBySerial(uint64_t serial);
|
std::shared_ptr<InverterAbstract> getInverterBySerial(uint64_t serial);
|
||||||
std::shared_ptr<InverterAbstract> getInverterByTelegram(uint8_t buf[]);
|
std::shared_ptr<InverterAbstract> getInverterByFragment(fragment_t* fragment);
|
||||||
void removeInverterByPos(uint8_t pos);
|
void removeInverterByPos(uint8_t pos);
|
||||||
size_t getNumInverters();
|
size_t getNumInverters();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user