Release for implementing microinverter totals and actually managing the age of parameters
This commit is contained in:
parent
8c29930594
commit
5e34b7fe37
6 changed files with 57 additions and 25 deletions
|
|
@ -44,9 +44,9 @@ void Dtu::populateMicroinverters() {
|
|||
portParameterMicroinverterSerialNumber.updateValue(this->modbus, portStartAddress);
|
||||
long long serialNumber = portParameterMicroinverterSerialNumber.getValue().first.i;
|
||||
|
||||
std::pair<bool, Microinverter *> getMicroinverterBySerialNumber = this->getMicroinverterBySerialNumber(serialNumber);
|
||||
if (getMicroinverterBySerialNumber.first) {
|
||||
getMicroinverterBySerialNumber.second->ports.push_back(port);
|
||||
std::pair<Microinverter *, bool> getMicroinverterBySerialNumber = this->getMicroinverterBySerialNumber(serialNumber);
|
||||
if (getMicroinverterBySerialNumber.second) {
|
||||
getMicroinverterBySerialNumber.first->ports.push_back(port);
|
||||
} else {
|
||||
Microinverter microinverter{this->modbus, serialNumber};
|
||||
this->microinverters.push_back(microinverter);
|
||||
|
|
@ -59,16 +59,16 @@ void Dtu::populateMicroinverters() {
|
|||
}
|
||||
}
|
||||
|
||||
std::pair<bool, Microinverter *> Dtu::getMicroinverterBySerialNumber(long long serialNumber) {
|
||||
std::pair<Microinverter *, bool> Dtu::getMicroinverterBySerialNumber(long long serialNumber) {
|
||||
std::vector<Microinverter>::iterator microinvertersIterator = this->microinverters.begin();
|
||||
while (microinvertersIterator != this->microinverters.end()) {
|
||||
if (microinvertersIterator->serialNumber == serialNumber) {
|
||||
return std::pair<bool, Microinverter *>(true, &*microinvertersIterator);
|
||||
return std::pair<Microinverter *, bool>(&*microinvertersIterator, true);
|
||||
} else {
|
||||
microinvertersIterator++;
|
||||
}
|
||||
}
|
||||
return std::pair<bool, Microinverter *>(false, &*microinvertersIterator);
|
||||
return std::pair<Microinverter *, bool>(&*microinvertersIterator, false);
|
||||
}
|
||||
|
||||
void Dtu::updateMicroinverters(std::vector<std::string> ¶metersToGet, bool allParameters, std::vector<long long> µinvertersToGet) {
|
||||
|
|
@ -82,15 +82,15 @@ void Dtu::updateMicroinverters(std::vector<std::string> ¶metersToGet, bool a
|
|||
|
||||
std::vector<long long>::iterator microinvertersToGetIterator = microinvertersToGet.begin();
|
||||
while (microinvertersToGetIterator != microinvertersToGet.end()) {
|
||||
std::pair<bool, Microinverter *> microinverterPair = this->getMicroinverterBySerialNumber(*microinvertersToGetIterator);
|
||||
if (microinverterPair.first) {
|
||||
microinverterPair.second->updatePorts(parametersToGet, allParameters);
|
||||
std::pair<Microinverter *, bool> microinverterPair = this->getMicroinverterBySerialNumber(*microinvertersToGetIterator);
|
||||
if (microinverterPair.second) {
|
||||
microinverterPair.first->updatePorts(parametersToGet, allParameters);
|
||||
}
|
||||
microinvertersToGetIterator++;
|
||||
}
|
||||
}
|
||||
|
||||
void Dtu::printMicroinverters(std::vector<std::string> ¶metersToGet, bool allParameters, std::vector<long long> µinvertersToGet, bool shortNames) {
|
||||
void Dtu::printMicroinverters(std::vector<std::string> ¶metersToGet, bool allParameters, std::vector<long long> µinvertersToGet, bool shortNames, bool printTodayProduction, bool printTotalProduction) {
|
||||
if (microinvertersToGet.empty()) {
|
||||
std::vector<Microinverter>::iterator microinvertersIterator = this->microinverters.begin();
|
||||
while (microinvertersIterator != this->microinverters.end()) {
|
||||
|
|
@ -101,9 +101,16 @@ void Dtu::printMicroinverters(std::vector<std::string> ¶metersToGet, bool al
|
|||
|
||||
std::vector<long long>::iterator microinvertersToGetIterator = microinvertersToGet.begin();
|
||||
while (microinvertersToGetIterator != microinvertersToGet.end()) {
|
||||
std::pair<bool, Microinverter *> microinverterPair = this->getMicroinverterBySerialNumber(*microinvertersToGetIterator);
|
||||
if (microinverterPair.first) {
|
||||
microinverterPair.second->printPorts(parametersToGet, allParameters, shortNames);
|
||||
std::pair<Microinverter *, bool> microinverterPair = this->getMicroinverterBySerialNumber(*microinvertersToGetIterator);
|
||||
if (microinverterPair.second) {
|
||||
std::cout << "Microinverter: " << microinverterPair.first->serialNumber << std::endl;
|
||||
if(printTodayProduction) {
|
||||
std::cout << "TodayProduction: " << microinverterPair.first->getTodayProduction() << std::endl;
|
||||
}
|
||||
if(printTotalProduction) {
|
||||
std::cout << "TotalProduction: " << microinverterPair.first->getTotalProduction() << std::endl;
|
||||
}
|
||||
microinverterPair.first->printPorts(parametersToGet, allParameters, shortNames);
|
||||
}
|
||||
microinvertersToGetIterator++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue