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 ); } } } 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();