From 2ef67d92c40a4eaa3d6727b86e519df468773b9e Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Sun, 3 Nov 2024 09:51:54 +0100 Subject: [PATCH] Fixed missing prices after changes in entsoe API --- lib/PriceService/src/EntsoeA44Parser.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/PriceService/src/EntsoeA44Parser.cpp b/lib/PriceService/src/EntsoeA44Parser.cpp index ec326d36..e3096e31 100644 --- a/lib/PriceService/src/EntsoeA44Parser.cpp +++ b/lib/PriceService/src/EntsoeA44Parser.cpp @@ -72,7 +72,10 @@ size_t EntsoeA44Parser::write(uint8_t byte) { } else if(docPos == DOCPOS_POSITION) { if(byte == '<') { buf[pos] = '\0'; - pointNum = String(buf).toInt() - 1; + long pn = String(buf).toInt() - 1; + if(pn < 25) { + pointNum = pn; + } docPos = DOCPOS_SEEK; pos = 0; } else { @@ -81,7 +84,10 @@ size_t EntsoeA44Parser::write(uint8_t byte) { } else if(docPos == DOCPOS_AMOUNT) { if(byte == '<') { buf[pos] = '\0'; - points[pointNum] = String(buf).toFloat(); + float val = String(buf).toFloat(); + for(uint8_t i = pointNum; i < 25; i++) { + points[i] = val; + } docPos = DOCPOS_SEEK; pos = 0; } else {