From 266dcefdfd2e9f3f1d181f3a8ea298ec74fda291 Mon Sep 17 00:00:00 2001 From: trabus322 Date: Sat, 6 Apr 2024 19:29:23 +0200 Subject: [PATCH] Doing some prevention --- inc/hoymiles/dtu.h | 2 ++ src/hoymiles/dtu.cpp | 4 ++++ src/main.cpp | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/inc/hoymiles/dtu.h b/inc/hoymiles/dtu.h index b5f98bc..bf11234 100644 --- a/inc/hoymiles/dtu.h +++ b/inc/hoymiles/dtu.h @@ -33,6 +33,8 @@ class Dtu { void setStatusMicroinverters(uint16_t value, std::string statusName, std::vector& microinvertersToSet); + bool empty(); + ~Dtu(); }; diff --git a/src/hoymiles/dtu.cpp b/src/hoymiles/dtu.cpp index 0f7ce54..85859fa 100644 --- a/src/hoymiles/dtu.cpp +++ b/src/hoymiles/dtu.cpp @@ -141,4 +141,8 @@ void Dtu::setStatusMicroinverters(uint16_t value, std::string statusName, std::v } microinvertersToSetIterator++; } +} + +bool Dtu::empty() { + return this->microinverters.empty(); } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index c8c3aa1..3c461e3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -88,7 +88,7 @@ int main(int argc, char **argv) { std::cout << "DTU construction time: " << std::chrono::duration_cast(endTime - startTime).count() << "ms" << std::endl; std::cout << std::endl << std::endl; - while (!writeMode && ((dtu.isConnected() || ignoreNotConnected) && (!parametersToGet.empty() || allParameters))) { + while (!writeMode && (!dtu.empty() && ((dtu.isConnected() || ignoreNotConnected) && (!parametersToGet.empty() || allParameters)))) { time_t now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); startTime = std::chrono::high_resolution_clock::now();