
Zitat von
dataflash
Nein das bringts nicht, bei 145 Zeichen ist Ende. Es muss an was anderem liegen.
Ich hab das gleiche vorhin versucht. Kein Erfolg.
In der Datei MonitorModulePocsag.h ist ein Buffer als Array mit einer Länge von 128 definiert. Die Arraylänge habe ich einfach mal auf 256 vergrößert. Damit kamen auch Längere Meldungen durch, allerdings wurden Meldungen, die Länger als 145 Zeichen waren nicht korrekt dekodiert. Mit nicht korrekt meine ich, dass man anhand des dekodierten Textes noch nicht mal was erahnen konnte.
Meldungen die weniger als 145 Zeichen enthielten wurden korrekt dekodiert.
Für FMS und POCSAG habe ich nun auch Filter erstellt, die prüfen, ob es sich bei den dekodierten FMS-Kennungen und den RICs um plausible Werte handelt. Ist das nicht der Fall, werden diese nicht in die MySQL-Datenbank geschrieben.
Die RIC, die bei uns alle paar Minuten ausgesendet wird, damit die DMEs wissen, dass sie noch empfang haben, habe ich ebenfalls herausgefiltert. Funktioniert soweit ganz gut.
Code:
local toHidePOCSAG = {"xxxxxxx"} ; --RIC, die zur Empfangskontrolle der DMEs dient
function pocsagAktion()
end
function fmsAktion()
end
function pocsagFilter()
if(string.sub(arg["ric"],1,2) ~= "xx") then --xx durch erste beiden Ziffern der RICs ersetzen
return 1
end
for index,testwert in pairs(toHidePOCSAG) do
if(testwert == arg["ric"]) then
return 1
end
end
return 0
end
function fmsFilter()
--print("fmsFilter")
--print(arg["fmskennung"])
if(string.sub(arg["fmskennung"],1,3) ~= "xxx") then --xxx durch erste drei Ziffern der FMS-Kennung ersetzen (BOS-Kennung, Landeskennung & 1. Ziffer der Ortskennung)
return 1
end
return 0
end
function pluginFilter()
--print(arg["typ"])
if (arg["typ"]=="pocsag") then
pocsagAktion()
return pocsagFilter()
end
if (arg["typ"]=="fms") then
fmsAktion()
return fmsFilter()
end
return 0;
end
Mir ist noch aufgefallen, dass im monitord manchmal auch nicht der ganze POCSAG-Text dekodiert wird. FMS32pro bekommt die selben Nachrichten jedoch dekodiert. Vielleicht bekommt man da auch noch was gedreht.