Fehler in Funktion alpha_auslesen

Alles was mit der Solaranzeige Image Installation und Betrieb zu tun hat. Einfache Konfiguration mit einem Gerät.

Moderator: Ulrich

Antworten
riju
Beiträge: 5
Registriert: Do 22. Okt 2020, 18:06

Fehler in Funktion alpha_auslesen

Beitrag von riju »

Hallo !

ich habe einen Fehler in der Funktion alpha_auslesen entdeckt und korrigiert. (Version 4.6.9c)
Der Fehler hat sich dadurch geäußert, dass teilweise keine gültige Daten empfangen wurden.
Beim Debugging habe ich festgestellt, dass Daten verloren gegangen sind obwohl diese mit fgets gelesen wurden.
Problem war die Abfrage if( trim($Antwort)=="")
trim ist eine Stringfunktion die Whitespaces aus der Zeichenkette entfernt. -> https://www.php.net/manual/en/function.trim.php
Wenn nun nur ein "Whitespace" Zeichen empfangen wird, wird dies gelöscht und somit nicht an $Ergebnis angehängt

Hier handelt es sich aber um binary daten.
Ich habe dies wie folgt geändert und es läuft nun stabil:

Statt ursprünglich:
$Antwort = fgets($Device,2048)
if( trim($Antwort)=="") { ...


Neu: -> https://www.php.net/manual/de/function.fgets.php
if (($Antwort = fgets($Device,2048))==false) { .....

Siehe auch PHP Handbuch

Wäre super wenn dies in zukünftigen Versionen aufgenommen wird

Gruß
Richard

Benutzeravatar
Ulrich
Administrator
Beiträge: 2741
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: Fehler in Funktion alpha_auslesen

Beitrag von Ulrich »

Hallo Richard,

vielen Dank für die Informationen. Ich werde den Script korrigieren.
--------------------------------------
Ulrich [Admin]

Antworten