Ergebnis 1 bis 12 von 12

Thema: monitord - LUA als Skriptsprache ?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    21.05.2003
    Beiträge
    217
    kann das jetzt nochmal einer in "deutsch" erklären, wie ich RIC#s aufn Socket und für MySQL filtern kann?

    Funzt das jetzt richig?

    vielleicht wäre es ja möglich eine kompilierte version mit LUA für Socket und MySQL zur Filterung von RIC's online zu stellen?

    von mir auch auch via icq, mail ;)

    Gruß
    Geändert von codeman2001 (01.04.2010 um 09:33 Uhr)
    Tüddeldraht - ein Mittel für jeden Zweck ;)

  2. #2
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo,

    anbei ein laufendes LUA-Skript als Beispiel.
    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
    Edit1: Ich komme derzeit nicht an den monitord-Server ran (Passwort vergessen). Eine entsprechende Anfrage an den Hoster ist raus.

    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
    Geändert von mdi (21.04.2010 um 17:31 Uhr)

  3. #3
    Registriert seit
    07.02.2006
    Beiträge
    415
    Alles Gut und Schön. Aber wenn ich ehrlich bin, schaue ich hier wie ein Schwein ins Uhrwerk. Verstehe nicht wie, wo ich hier Einstellungen vornehmen muß. Es wäre schön wenn man Anhand eines Beispieles dies hier mal erklärt bekommt. Außerdem, ist es evtl. auch möglich wiederholte Meldungen zu unterdrücken?

  4. #4
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo,

    ja das glaube ich, wenn man "es nur nutzen möchte", ist das ganze nicht gar so einfach zu handhaben.

    Ich habe mal den "Doppelauslösefilter" für Fünftonfolgen ins Beispiel oben eingebaut. Was verstehst Du denn am Beispiel nicht bzw. was genau möchtest Du denn haben?

    Edit: Das mit dem Filter scheint nicht richtig zu tun. Schon weil das Skript augenscheinlich bei jeder Folge _neu_ getriggert wird, also quasi "zustandslos" (wie HTTP) arbeitet und nichts über vorherige Aufrufe weiß. Open problem so far.

    Viele Grüße
    Martin
    Geändert von mdi (18.08.2010 um 15:34 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •