Hallo,
das Filtern doppelter Einträge bei doppelter Auslösung geht meines Wissens nach nicht, da der monitord den vorher ausgewerteten Code nicht mehr kennt (das LUA-Skript wird für jede EINZELNE RIC oder ZVEI-Tonfolge einzeln, getrennt voneinander aufgerufen). Der Filter erschlägt also nur die Eintragung aktuell ausgewerteter aber nicht gewünschter RICs/ZVEI-Folgen.
Wie das geht, sollte eigentlich aus der Anleitung hervor gehen: Du gibst an, welche Tonfolgen/RICs Du in der DB haben magst und alle anderen werden verworfen. Hierzu entsprechend bei "Fund" die Eintragung mit "return 0" erlauben oder halt die Eintragung mit "return 1" verwerfen. Zugegeben, das Beispiel auf monitord.de ist recht umfangreich.
Das Beispiel unten zeigt einen einfachen Filter, bei dem nur die unter "toShowXXX" angegebenen RICs/ZVEI-Tonfolgen/FMS-Kennungen in der Datenbank landen (ungetestet, eben nur zusammen gesammelt).
Viele Grüße
Martin
Code:
-- PluginFilter.lua
--
-- Filter für die Plugins - wird pro aktivem Plugin aufgerufen
--
-- Globales Array "arg" enthält die Daten vom Auswertermodul
--
-- Zusätzliche Werte im Array:
--
-- client_authenticated: 0/1 (1=angemeldet)
-- client_ip: IP-Adresse des Clients
-- client_loginname: Anmeldename
-- client_type: fms32, crusader, monitord
--
-- Rückgabewert:
-- 0 = an Client senden,
-- 1 = nicht an Client senden,
-- alle anderen = an Client senden
--
local toShowFMS = {"11111111", "22222222"} ;
local toShowPOCSAG = {"1111111", "2222222"} ;
local toShowZVEI = {"99000", "99001"} ;
function filter()
local dummyValue=1 ;
-- DEBUG-Info: Alles ausgeben
for index,testwert in pairs(arg) do
print(index)
print(testwert)
end
-- ZVEI
if(arg["typ"] == "zvei") then
for index,testwert in pairs(toShowZVEI) do
if(testwert == arg["zvei"]) then
return 0
end
end
end
-- FMS
if(arg["typ"] == "fms") then
for index,testwert in pairs(toShowFMS) do
if(testwert == arg["fmskennung"]) then
return 0
end
end
end
-- POCSAG
if(arg["typ"] == "pocsag") then
for index,testwert in pairs(toShowPOCSAG) do
if(testwert == arg["ric"]) then
return 0
end
end
end
-- default: anzeige unterdruecken
return 1;
end