Gibts hier was neues?
Gibts hier was neues?
Das mit dem Array habe ich mir auch mal angeschaut, kann es aber auch logisch schon nicht sein: wenn das Array 128 lang ist, wieso werden dann bis zu 144 korrekt dekodiert? Ich habe da mal einen Bekannten drauf angesetzt, vielleicht findet der ja was. Ansonsten gibts' (worst-case-szenario) den multimon-ng, im Notfall muß man den dann halt um SQL erweitern oder (habe ich schon in Planung) per Pipe und PHP das ganze in die bis jetzt vom MonitorD gefütterte Datenbak zaubern.
Aber wir gehen mal davon aus das der "Fehler" im MonitorD gefunden und behoben werden kann. Nur schade das sich keiner der Entwickler auf eMails meldet.
Wie es aussieht haben wir den Fehler (oder besser: die zwei) gefunden:
In der MonitorModulePocsag.h muss folgendes geändert werden:
Zeile 75: die Länge des char-Arrays "buffer" entsprechend erhöhen - ich habe 512 gewählt
Zeile 72: die Variablendefinition "numnibbles" löschen und anschließend neu definieren - ich habe daraus ein "unsigned int" gemacht
ein "unsigned char" kann als Maximalwert 255 speichern, bei 256 gibt es einen Überlauf. Diese Variable zählt den Buffer hoch und zwar in Halbbytes, also Erhöhung um zwei pro Stelle von Buffer.
"buffer" beinhaltet den dekodierten POCSAG-Text (7bit-ASCII, daher können mit 128 Stellen 146 Zeichen gespeichert werden).
Wenn man jetzt nur "buffer" vergrößert kommt es zum Zählerüberlauf und damit zu der kryptischen Auswertung. Passt man jetzt noch die Zählervariable "numnibbles" entsprechend an (das die größer als 255 werden kann und damit mehr als 146 Zeichen verarbeiten kann), dann klappt es - darauf deuten die ersten Tests hin und es ist auch plausibel.
Ich werde das jetzt nochmal eine Woche lang testen und dann nochmal Bericht erstatten.
@All:
Die Änderungen (Erweiterung auf 256 Bytes buffer, Counter von unsigned char -> unsigned int) sind im svn eingepflegt. Falls also andere auch mal diese Korrektur testen will: sind im aktuelle trunk (457) drin.
Sauber, Vielen Dank an Markus. Habe es gerade auf meimer Umgebung getestet, funktioniert!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)