Hallo,
anbei ein laufendes LUA-Skript als Beispiel.
Edit1: Ich komme derzeit nicht an den monitord-Server ran (Passwort vergessen). Eine entsprechende Anfrage an den Hoster ist raus.Code:-- SocketFilter.lua -- -- Filter für den SocketServer - wird pro aktiven Client 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ückgabewerte: -- 0 = an Client senden -- 1 = nicht an Client senden -- alle anderen = an Client senden -- filterDoppelteZVEI = 1 local toShowFMS = {"11111111", "22222222"} ; local toShowPOCSAG = {"1111111", "2222222"} ; local toShowZVEI = {"99000", "99001"} ; function myfilterFMS32() for index,testwert in pairs(toShowFMS) do if (testwert==arg["ric"]) then return 0 end end return 1 ; end function myfilterMONITORD() -- 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 function filter() -- DEBUG-Info: Alles ausgeben for index,testwert in pairs(arg) do print(index) print(testwert) end -- genau zweimal gesendete Auslösungen filtern (Fünftonfolgen) if(filterDoppelteZVEI == 1) then if (arg["zvei"] == altZVEI) then altZVEI = nil; return 1; end altZVEI = arg["zvei"] end -- wird für jedes Telegramm (pocsag, fms, zvei) aufgerufen if (arg["client_type"]=="fms32") then return 0; -- delete this line to enable and uncomment the next one! -- return myfilterFMS32() ; end if (arg["client_type"]=="crusader") then -- nix dummyValue=2 ; end if (arg["client_type"]=="monitord") then return 0; -- delete this line to enable and uncomment the next one! -- return myfilterMONITORD() ; end -- default: alles anzeigen; ändern auf "1" um nichts anzuzeigen! return 0; end
Edit2: Ich habe ein Paket geschnürt und es bei Rapidshare hochgeladen. Beispiel-LUA-Skripte von Buebchen und mir sind enthalten, ebenso eine MySQL-Tabellendefinition, die mit der monitord-Konfigurationsdatei überein stimmen sollte. Wenn es Probleme gibt, bitte hier im Thread oder per PM an mich! Download-URL: http://rapidshare.com/files/37191401...w32-2.0svn.exe
Edit3: Verbessertes Skript-Beispiel hier im Beitrag.
Edit4: Der Download geht jetzt auch wieder über die monitord.de-Webseite.
Edit5: Skript um Filter für Fünfton-Doppelauslösungen ergänzt.
Viele Grüße
Martin




				
				
				
					
  Zitieren