Ergebnis 1 bis 15 von 94

Thema: Informationen zum monitord 2.0

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    16.11.2007
    Beiträge
    213

    Informationen zum monitord 2.0

    Moin,

    da diese Infos sonst immer unterzugehen scheinen, möchte ich hier kurz auf wesentliche Infos zum aktuellen monitord hinweisen. Dieser Beitrag ist nicht notwendigerweise vollständig und abschließend und kann auch noch Fehler enthalten.

    Web-Präsenz des monitord: http://www.monitord.de

    a) SVN-Access:
    Der Zugang zu den Sourcen im SVN läuft über http://svn.monitord.de/monitor/trunk

    Checkout:
    svn co http://svn.monitord.de/monitor/trunk
    Oder mit einem SVN-Frontend, siehe http://subversion.tigris.org/links.html.

    b) Bugtracking:
    Das Bugtracking läuft zur Zeit über http://bts.monitord.de

    c) Features:
    Der monitord 2.0 läuft unter Windows und Linux/Unix. Ausgewertet werden ZVEI (einschließlich Sirenentöne), Pocsag und FMS. Es gibt Aufnahme- und Datenbank-Speichermodule, wobei noch nicht abschließend sicher ist, was im aktuellen Release und was in einem späteren Release integriert werden soll. Voraussichtlich werden Aufnahme- und Datenbank-Plugin bereits im 2.0er-Release bestehen; das Datenbank-Modul läuft einwandfrei, die Aufnahme-Funktion ist noch nicht komplett implementiert.
    Eine History-Funktion ist noch nicht implementiert, vorsichtig aber für die 2.1 geplant. Ein früher angedachtes HTTP-Push-Modul um die Daten an einen Webserver/ein PHP/Perl-Skript zu senden entfällt, seitdem LUA-Unterstützung integriert ist und damit eine Möglichkeit besteht, bei eingegangenen Alarmen/Telegrammen Aktionen auszuführen (also z.B. auch die Daten an ein anderes Skript zu übergeben).

    d) Frontends:
    Es gibt (im SVN) PHP-Frontends, die auf in einer MySQL-DB gespeicherte Daten zugreifen und diese anzeigen können. Direkte monitor-Clients (via Socket) sind zur Zeit nur bedingt vorhanden. Auch ein wx-basiertes Python-Frontend gibt es wohl, eine PHP-Neuentwicklung war mal in Arbeit, wie da der Staus ist, ist derzeit nicht bekannt.

    Kein direktes Frontend aber eine weitere Möglichkeit, eingehende Alarme zu behandeln, ist die Unterstützung der Skriptsprache LUA (http://www.lua.org/), die getrennt für die Socket-Protokolle und die Datenbank-INSERTs eingehende Tonfolgen und Co. behandeln kann. Das heißt, die Eintragung/Ausgabe kann unterdrückt oder mit einer Programmausführung mittels os.execute() behandelt werden. Zum Beispiel ist so ein SMS-Versand mit einem SMS-Tool und mehr möglich.

    e) Kompilieren (Windows):
    Bei den Entwicklern scheint sich die Kombination von MSYS und MinGW http://www.mingw.org durchgesetzt zu haben. Der reine monitord kann ohne Plugins (lame-Encoder/MySQL-Support/LUA) kompiliert werden (./configure, make).
    Für die Plugins sind erforderlich:
    Die aktuelle MySQL-Bibliothek http://www.mysql.org sowie die lame-Bibliothek http://lame.sourceforge.net (einschließlich Header, siehe auch g)). Cross-compiling ist mit MySQL-Support nicht möglich. LUA gibts bei http://www.lua.org/; wichtig ist hier, mindestens die Version 5.1 zu laden.
    Einschließlich Plugins wird der monitord kompiliert mit: ./configure --enable-plugins --with-mysql --with-lame --with-lua, make
    Für das Kompilieren auf einem unixoiden System sind die entsprechenden dev-Packages zu installieren.

    f) Windows-Installer:
    Es wurde im Verzeichnis win32-nsis eine Konfiguration für den Nullsoft Installer http://nsis.sourceforge.net abgelegt, der eine kompakte Installationsdatei mit den nötigen Bestandteilen (für MS Windows) baut. Ein fertiges Installer-Paket für Windows ist unter http://www.monitord.de herunterladbar.

    g) Linux-Pakete:
    Von der aktuellen Version haben wir Linux-Pakete (RPM) unter http://tinyurl.com/monitord-nightly abgelegt (cwh). Eine Version vom 16.09.2009 (mit funktionierendem Audioplugin) existiert unter http://tinyurl.com/monitord2009 (ebenfalls RPM).

    h) Plugins (mysql und lame) kompilieren:
    1. Vorbereitungen für das Lame-Plugin:
    a) Download der Sourcen von http://lame.sourceforge.net/download.php
    b) Entpacken in ein beliebiges Verzeichnis
    c) in MSYS: ./configure im entsprechenden Verzeichnis
    d) in MSYS: make
    e) in MSYS: make install
    f) nachsehen, ob die lame.h in /include und die libmp3lame.a in /lib bzw. im entsprechenden include-Pfad liegt.

    2. Vorbereitungen für das MySQL-Plugin:
    a) Download des aktuellen MySQL-Pakets von http://www.mysql.org
    b) entnehmen der libmySQL.dll aus /bin bzw. bearbeiten an beliebiger Stelle wie in c) und d) beschrieben
    c*) in MSYS: reimp -d libmysql.lib
    d*) in MSYS: dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a
    e) Prüfen, ob die nötigen Header-Files aus dem mysql-Ordner/include in /include/mysql vorliegen sowie ob die libmysql.a in /lib enthalten ist. Nötigenfalls entsprechend kopieren

    Wichtig: Für den korrekten Lauf von ./configure ist es möglicherweise notwendig, die libmysql.a temporär beliebig umzubenennen (z.B. in libmysql). Für das make benötigt sie wieder ihren urpsrünglichen Namen!

    * - hierfür wird das Tools-Paket für den MinGW namens "MinGW Utilities" benötigt. http://www.mingw.org/msys.shtml

    i) Es gibt scheinbar Auswertungsprobleme im Kontext eines 64bit-Systems. Wie genau, konnte nicht nicht ausreichend ergründet werden.

    j) Fragen, Probleme und Anregungen:
    Hier im Forum, nachzulesen vor allem im Thread "monitor 1.9.0 - aber richtig :)", der Thread ist sehr lang, und die enthaltenen Informationen müssen noch durchgesehen und sinnvoll sortiert werden. Für neue Anfragen bitte einen neuen Thread eröffnen.

    So weit - Fehlermeldungen und Anregungen bitte hier im Forum oder direkt im BTS; ich werde diesen Artikel immer mal wieder erneuern.
    Martin

    History dieses Beitrags:
    04.05.11: Hinweis auf Linux-Pakete eingefügt
    30.03.11: Allgemeine Anpassung an die Entwicklung
    15.03.10: LUA-Unterstützung
    pre-15.03.10: Grundgerüst des Artikels
    Geändert von mdi (05.05.2011 um 14:38 Uhr)

  2. #2
    Norad Gast
    Monitor-Frontend:
    Moin, ich habe hier 'nen einfach gehaltenen GUI-Client am laufen. Den habe ich in Python unter Verwendung von wxWidgets programmiert. Läuft auch unter Windows, wenn man Python und wxpython für Windows installiert.
    Außerdem habe ich ein Perl-Skript, dass über Port 9333 Ereignisse vom Monitor entgegen nimmt und in eine MySQL-Datenbank schreibt (als ich das geschrieben habe, erschien mir der Datenbanksupport vom Monitord noch etwas unausgegohren. Weiß nicht,wie es jetzt ist). Der GUI-Client kann sich beim Start die letzten Einträge aus der Datenbank ziehen.

    Das Ganze habe ich für eine frühere Version vom 2.0'er gebastelt, inzwischen hat sich aber anscheinend das Protokoll ein wenig verändert, ich teste gerade, ob ich die nötigen Anpassungen jetzt hinbekommen habe.

    Bei Interesse kann ich das ja mal ins SVN schieben ...

  3. #3
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Zitat Zitat von Norad Beitrag anzeigen

    Bei Interesse kann ich das ja mal ins SVN schieben ...

    jaaaa ! :-)

  4. #4
    Registriert seit
    30.08.2005
    Beiträge
    247
    Wie wird das strukturell dann einsortiert? Sollten wir uns darüber Gedanken machen? Oder vielleicht sogar ein System erstellen? :)

    jhr

  5. #5
    Registriert seit
    07.08.2003
    Beiträge
    161
    Habs mal oben angepinnt.

  6. #6
    Norad Gast
    Zur Struktur:
    Man könnte ja im Root des SVN ein Verzeichnis wie contrib oder frontends anlegen, wo sowas dann rein könnte.

  7. #7
    Registriert seit
    16.11.2007
    Beiträge
    213
    Hallo,

    @SirFS: Danke :).

    @Norad: Die Idee mit den Frontends im SVN sehe ich grundsätzlich positiv, allerdings müsste sich jhr äußern, ob er "das alles", was (vielleicht und hoffentlich) noch kommt, in seinem SVN haben mag. Schlecht wäre eine derart zusammengefügte Sammlung der Sourcen auch im Bereich der Frontends meiner Meinung nach nicht, sofern keine Lizenzprobleme entgegenstehen (Vorschlag: Nur GPL und vglb. werden integriert, zu anderen Projekten gibt es vielleicht einen Pointer).

    @all: Frontends sind ein gutes Stichwort. Ich brauche für bereits bestehende Frontends noch Screenshots für die monitord-Webseite! Kann mich da jemand per pm zu einem Download triggern oder anderweitig entsprechend versorgen?

    Martin

  8. #8
    Registriert seit
    30.08.2005
    Beiträge
    247
    Von mir aus kann rein, was wir so drin haben wollen. Ich würde nicht zu viel reglementieren wollen und kapazitativ sind so ein paar Sources nicht das Problem... :)
    Wir müssen nur überlegen, wie es soll. Derzeit haben wir diese Struktur:
    Code:
    monitor
       - branches
       - tags
       - trunk
    monitor-frontend
       - branches
       - tags
       - trunk
    monitordb
       - monitordb
       - wxMonitor
    wxmonitor
    Das bedarf eventuell einer gewissen Überarbeitung, oder? :)

    jhr

  9. #9
    Norad Gast
    Wie wäre:
    Code:
    monitor
       - branches
       - tags
       - trunk
    frontends
       - Frontend1
          - branches
          - tags
          - trunk
       - Frontend2 .....
    ?

    [edit: den Fehler mit dem h kann ich mir einfach nicht abgewöhnen ;) ]
    Geändert von Norad (05.01.2008 um 19:57 Uhr)

  10. #10
    Registriert seit
    16.11.2007
    Beiträge
    213

    Updated

    Dummy-Eintrag: Updated.

  11. #11
    Registriert seit
    16.11.2007
    Beiträge
    213
    Hallo zusammen,

    ich habe nochmal ein wenig Doku geschrieben; mittlerweile habe ich auch doe LUA-Skripting-Geschichten etwas vertieft und ein Beispiel eingebaut, wie man Schleifengesteuert externe Programme mittels os.execute() aufruft. Zu finden wie bisher unter http://www.monitord.de - Kapitel Konfiguration, LUA-Skripting. Das Handbuch habe ich auch auf den Stand der rev. 435 gebracht.

    Teil-Zitat:
    Viele User des monitord und anderer Auswerter benötigen die Möglichkeit, automatisch SMS zu versenden oder auch andere Dinge zu tun. Mit LUA ist auch das möglich, hierfür gibt es den Befehl 'os.execute()'. Über diesen kann z.B. ein externes Programm zum SMS-Versand angestoßen, aber auch ein PHP-Skript ausgeführt oder sonst eine interessante Methode genutzt werden.

    Ein Beispiel zur Syntax bei Ausführung eines PHP-Skripts:

    if(string.sub(arg["zvei"], 0, 3) == "007" and arg["channelnum"] == "0") then
    toexecute = "cmd /c c:\\xampp\\php\\php.exe ";
    toexecute = toexecute .. "c:\\programme\\monitord\\sendsms.php ";
    toexecute = toexecute .. arg['zvei'] ;
    os.execute(toexecute);
    end

    Hier wird PHP an der Kommandozeile aufgerufen, das Skript 'sendsms.php' im monitord-Verzeichnis ausgeführt, und dieses bekommt als Parameter die aktuell alarmierte Schleife angezeigt - der IF-Abfrage vorher gemäß aber nur, wenn diese mit '007' beginnt und vom linken Kanal der ersten Soundkarte (channelnum) ausgewertet wurde. Das entsprechende PHP-Skript kann dann den Zugriff auf eine SMS-Schnittstelle enthalten, aber z.B. auch per Jabber/XMPP oder E-Mail einen Alarm auslösen, da sind der Fantasie ja keine Grenzen gesetzt.
    Viele Grüße und einen guten Start in 2011
    Martin

  12. #12
    Registriert seit
    29.12.2010
    Beiträge
    14

    FMS Auswertungsproblem

    Hallo,

    ich habe zwei Scanner an einer alten CB Funkantenne angeschlossen. Der eine wertet POCSAG und der andere FMS aus.

    Ich habe jetzt folgendes Problem, dass monitord mir ca 1/3 bis 1/4 der FMS-Kennungen verschluckt. Habe dies ca über zwei Wochen lang getestet.
    FMS32 dagegen verschluckt mir fast keine Kennungen.
    Außerdem funktioniert die POCSAG Auswertung über monitord zu ca 99%.

    Habe auch schon verschiedene Scanner und verschiedene PC's durch getestet. Angeschlossen habe ich den Kopfhörerausgang des Scanners an die Line-in Buchse und es ist keine softwareseitiger Boost eingeschaltet.

    Alles läuft auf einem Ubuntu System.

    Meine Fragen sind jetzt:
    - Hat jemand ähnliche Probleme?
    - Wie kann ich das am besten Debuggen? (Habe die extra Debugfunktion in MonitorModuleFMS.h eingestellt)
    - Wie werte ich die Binärlogs von MonitorModuleFMS.h aus?

    Danke schon mal für eure Hilfe.


    Gruß
    Hugch

  13. #13
    Registriert seit
    10.10.2010
    Beiträge
    6

    Frontend für monitord

    Hallo zusammen,
    nach dem ich seit einigen Wochen monitord erfolgreich unter Linux (ubuntu 10) laufen habe, habe ich nun die erste Version eines Frontend im Testbetrieb das ich selber entwickelt habe.
    Grundlage ist die Datenbank in die monitord mir die POSAC Meldungen schreibt. Da ich nicht alle Meldungen des gesamten Funkverkehrskreis speichern möchte, habe ich die DB mit einem Trigger versehen der nur die Meldungen durchlässt die ich überwachen möchte.
    Neu eingenede Meldungen (ALarme) werden in einem Alarmdisplay 20min angezeigt. Danach wechselt der Bildschirm und zeigt Info-Fenster. Das sind derzeit eine Statistik und ein Terminkalender. Die Software läuft als Java Client, nutzt Hibernate und diverse andere Standards als Basis.
    Falls sich jemand für mein Projekt inmtressiert, der kann gerne mal hier schauen:

    http://code.google.com/p/stationinfo/

    Über Anregungen freue ich mich
    Jörg

  14. #14
    Registriert seit
    07.09.2003
    Beiträge
    694
    Das nenne ich mal eine gute Idee. Schön! Dann wird der monitord langsam zu dem, was viele erhofft haben: ein stabiles Universaltool im Bereich Funkauswertung.
    Ich bin sehr gespannt und würde mich gerne zum Testen zur Verfügung stellen.
    Wir wollen eine solche Anzeigemöglichkeit in unserem Feuerwehrhaus realisieren.

    Kannst mich gerne per PM anschreiben.

    Gruß,
    Funkwart

  15. #15
    Registriert seit
    29.12.2010
    Beiträge
    14

    MySQL mit SSL

    Hallo an alle,

    ich habe gerade mal ein Support für SSL Verbindungen in der /monitord/plugins/pluglibmplugin_mysql.cpp hinzugefügt.
    Das sieht Konkret so aus: (diff auf der Konsole)

    Code:
    $ diff libmplugin_mysql.cpp libmplugin_mysql.cpp_old
    42,45d41
    < 	unsigned int ssl;
    < 	std::string ssl_cacert;
    < 	std::string ssl_cert;
    < 	std::string ssl_key;
    145,148d140
    < 		ssl=getNodeInt(config,"ssl",0);
    < 		ssl_cacert=getNodeText(config,"ssl-cacert","0");
    < 		ssl_cert=getNodeText(config,"ssl-cert","0");
    < 		ssl_key=getNodeText(config,"ssl-key","0");
    162,171d153
    < 		if (ssl==1)
    < 		{
    < 			mysql_ssl_set(&m_mysql,
    < 				ssl_key.c_str(),
    < 				ssl_cert.c_str(),
    < 				ssl_cacert.c_str(),
    < 				NULL,
    < 				NULL);
    < 		}
    <
    Die Änderungen in der Konfigurationsdatei bei den MYSQL Server Einstellungen sehen dann wie folgt aus:
    HTML-Code:
    <ssl>1</ssl> <!-- 0: ssl disabled - 1: ssl enabled -->
    <ssl-cacert>/etc/mysql/ssl/ca-cert.pem</ssl-cacert>
    <ssl-cert>/etc/mysql/ssl/client-cert.pem</ssl-cert>
    <ssl-key>/etc/mysql/ssl/client-key.pem</ssl-key>
    Die Datei habe ich hier mal angehängt und bitte jemand mit Zugang zum svn bei Interesse ins repo hoch zu laden.


    Gruß

    Hugch


    PS: Zu meinem Problem oben drüber hat noch keiner eine Idee?
    Angehängte Dateien Angehängte Dateien
    Geändert von Hugch (10.02.2011 um 02:44 Uhr)

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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