From e6284685a9b89b82bd20764584ac3404093ea849 Mon Sep 17 00:00:00 2001 From: fredycpu Date: Sun, 17 Aug 2025 10:27:57 +0200 Subject: [PATCH 1/2] Update LibTeleinfo.cpp Repair valueget function, add String handle to work easyly with ESP32 --- src/LibTeleinfo.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/LibTeleinfo.cpp b/src/LibTeleinfo.cpp index 161f224..d2d8949 100644 --- a/src/LibTeleinfo.cpp +++ b/src/LibTeleinfo.cpp @@ -448,7 +448,13 @@ Input : Pointer to the label name pointer to the value where we fill data Output : pointer to the value where we filled data NULL is not found ====================================================================== */ -char * TInfo::valueGet(char * name, char * value) +String TInfo::valueGet(String name) +{ + char *Cname = const_cast(name.c_str()); + return String(TInfo::valueGet(Cname)); +} + +char * TInfo::valueGet(char * name) { // Get our linked list ValueList * me = &_valueslist; @@ -469,10 +475,8 @@ char * TInfo::valueGet(char * name, char * value) if (me->value) { // Check back checksum if (me->checksum == calcChecksum(me->name, me->value)) { - // copy to dest buffer - uint8_t lgvalue = strlen(me->value); - strncpy(value, me->value , lgvalue + 1 ); - return ( value ); + // return value + return ( me->value ); } } } From 787da56d1baafe4a61d30135f00749e3c4feb798 Mon Sep 17 00:00:00 2001 From: fredycpu Date: Sun, 17 Aug 2025 10:54:55 +0200 Subject: [PATCH 2/2] Update LibTeleinfo.h En correspondance avec Libteleinfo.cpp --- src/LibTeleinfo.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/LibTeleinfo.h b/src/LibTeleinfo.h index 6fbd9e9..2143f75 100644 --- a/src/LibTeleinfo.h +++ b/src/LibTeleinfo.h @@ -140,7 +140,8 @@ class TInfo ValueList * addCustomValue(char * name, char * value, uint8_t * flags); ValueList * getList(void); uint8_t valuesDump(void); - char * valueGet(char * name, char * value); + char * valueGet(char * name); + String valueGet(String name); char * valueGet_P(const char * name, char * value); bool listDelete(); void clearStats();