PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rics filtern?



DocSteel
07.02.2008, 00:08
Hallo
Frage an die Developer bgl. der Monitord Version aus dem SVN (Rev. 292):

Gibt es eine Möglichleit RICS festzulegen die NICHT in die DB geschrieben werden sollen?

Buebchen
07.02.2008, 15:29
Die Option ist bisher nicht für die Serverseite vorgesehen. Ich für meinen Teil würde mir langfristig einen Transfer-Filter per regulärem Ausdruck vorstellen können.

Bis dahin würde ich ein regelmässiges "delete from [Tabelle] where not (ric > .start. and ric < .ende.)" vorschlagen. Wobei Start und Ende die erste und letzte sinnvolle RIC sind (Jeder LK hat normalerweise einen eigenen Bereich zugeteilt bekommen).

DocSteel
09.02.2008, 17:22
So....ich habe über einen Workaround eine Filterung eingebaut:

Lösung 1:
======

Filtern der Ausgabe des PHP-Frontends:

index.php:

// Auslesen pocsag
//
$result = mysql_query("SELECT a.num, a.adresse AS adresse_neu, a.bezeichnung AS bezeichnung_neu, a.text, DATE_FORMAT(a.zeit, '%Y%m%d%H%i%s') AS zeit, a.funktion, a.REC_TYP, a.done,
b.adresse, b.formatierung_id, b.bezeichnung,
d.id AS org_id, d.org_name, d.org, d.alarm_count, d.last_alarm
FROM dme a
LEFT JOIN ric_zvei b ON b.adresse = a.adresse
LEFT JOIN organisation d ON d.id = b.org_id
$show_filter AND a.adresse<>1xxxxxx AND a.adresse<>1xxxxxx
ORDER BY a.zeit DESC") or die (mysql_error());

die Änderung ist hier in der Zeile hinter $show_filter die einfach die beiden unerwünschten RICs wegfiltert.


Lösung2:
======

Im trunk Ordner editieren der Datei: /trunk/monitord/plugins/libmplugin_mysql.cpp

Unter Zeile 114 einfügen:


mysql_query(&m_mysql,"delete from dme where adresse = 1xxxxxx or adresse = 1xxxxxx");


Nach der Änderung neues configure --with-mysql --enable-plugins --with-alsa && make && make install
Das löscht die Einträge mit den RICs sofort wieder aus der DB.

<b><del>ACHTUNG: Das ganze ist nicht erprobt und erstmal nur ein Versuch!</del> läuft stabil! Trotzdem: Verwendung auf eigene Gefahr!</b>
Lob und Kritik bitte hier im Thread oder via PM :)

DocSteel
04.07.2009, 18:38
<b><u>Version 2:</b></u>
So die aktuelle Lösung um RICS die nicht in die DB sollen zu filtern sieht jetzt so aus:


Im trunk Ordner editieren der Datei: /trunk/monitord/plugins/libmplugin_mysql.cpp

Unter Zeile 114 die beiden Zeilen einfügen:


mysql_query(&m_mysql,"delete from dme where adresse = 1xxxxxx or adresse = 1xxxxxx");
mysql_query(&m_mysql,"delete from dme where adresse < STARTRIC or adresse > ENDRIC");


STARTRIC= Die erste verwendete Ric des Landkreises.
ENDRIC= Die letzte verwendete Ric des Landkreises.

Die erste Zeile ist weiterhin wie in der alten Lösung die Ausfilterung der Netzric.

Nach der Änderung neues configure --with-mysql --enable-plugins --with-alsa && make && make install
Das löscht die Einträge mit den RICs sofort wieder aus der DB.


Lob und Kritik bitte wie immer hier im Thread oder via PM :)

codeman2001
30.03.2010, 23:17
das heisst, er schreibt erst alle datensätze in die DB und sucht dann die dem entsprechenden raus und löscht sie wieder. ist doch irgendwie doppelt gemoppelt ;)

kann man das schreiben in die DB nciht sofort unterbinden, sowie eine nicht "erlaubte" RIC vorhanden ist?

Gruß

DocSteel
30.03.2010, 23:39
Das ganze war damals als "Quick and Dirty" Lösung entwickelt worden um überhaupt erstmal was zu haben. Wenn Du eine Idee hast wie man das besser umsetzten kann dann immer her damit. :)

codeman2001
31.03.2010, 10:14
die idee steht oben ;) muss "nur" noch umgesetzt werden..aber das bekomme ich nicht alleine hin ;)

mdi
31.03.2010, 23:08
Moinmoin,

der monitord bietet mittlerweile LUA-Unterstützung. Damit ist Filtern per Skriptsprache direkt möglich (sowohl am Socket als auch für das MySQL-Plugin). Ernst zu nehmende Doku fehlt noch, aber hier im Forum gibt es einen Thread. Such mal nach LUA :)! Ich wollt schon immer mal eine kleine Doku dazu bauen... den Thread "Informationen zum monitord 2.0" bzw. den ersten Beitrag darin habe ich schon angepasst.

Viele Grüße
Martin