Seite 20 von 37 ErsteErste ... 678910111213141516171819202122232425262728293031323334 ... LetzteLetzte
Ergebnis 286 bis 300 von 549

Thema: monitor 1.9.0 - aber richtig :)

  1. #286
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo,

    das neue ZVEI-Modul ist von mir eben ins SVN eingecheckt worden (danke für den schnellen Zugang :)!) und sollte damit allen zur Verfügung stehen.

    Die von mir geschriebene Sirenentonerkennung stellte sich bei weiteren Versuchen als wackelig heraus, auch wenn nur die 1240Hz als Trigger verwendet wurde. Der Grund dafür ist, dass die Algorithmen zur Frequenzsuche erst eine Matrix aufspannen, diese dann aber durch "find_max_index()" auf ein einzelnes, eindeutiges Zeichen heruntergebrochen wird. Die implementierten Filter für Rauschabstand und Eindeutigkeit verhindern damit die Erkennung der Sirenen-Doppeltöne. Ich werde also auch da noch Hand anlegen müssen (vermutlich werde ich die Energie der 675Hz auf die Energie des oberen Doppeltons aufaddieren, womit wieder eine eindeutige Frequenz auffindbar ist und die anderen Kontrollen weiterhin auch für den Sirenenton aktiv bleiben können).

    Seit meinem letzten Posting habe ich ein paar Tests mit abgebrochenen/schlecht übertragenen/unterbrochenen/stark verrauschten Tonfolgen gemacht und noch einige Verbesserungen bezüglich der Fehlerunterdrückung eingeführt.

    Nebenbei gleich noch eine andere Frage zum Ablegen/Speichern der Alarmierungen: Gibt es im monitor
    a) ein SQLite-Backend?
    b) ein Backend für HTTP-Anfragen (GET oder POST) zur Übergabe der Daten an einen Webserver (z.B. via http://server/store_zvei.php?folge=[abcde]&typ=[0|1|2]&time=[timestamp])?

    Viele Grüße
    Martin

    PS: Spricht etwas dagegen, die libcurl als Library für ein HTTP-Backend zu nutzen?
    Geändert von mdi (26.11.2007 um 18:38 Uhr) Grund: SVN-Access erhalten

  2. #287
    Registriert seit
    21.08.2005
    Beiträge
    251
    Hallo Martin,

    Erst einmal vielen Dank für dein Engagement bei diesem Projekt.
    Ich werde den neuen ZVEI-Code gleich unter Linux gehörig stressen.

    Ein paar Anregungen hätte ich noch:

    Zitat Zitat von mdi
    a) "unklare Ausloesung" (0) bei "eine Fünftonfolge gelesen, neue Ziffer erkannt" (entsprechend der nächsten, in geringem Abstand zur vorherigen geschickten Tonfolge).
    b) "Melderausloesung" (1) bei erkannter Fünftonfolge und erkanntem Melderweckton.
    c) "unklare Ausloesung" (0) bei zu langer Pause nach Abschluss der Fünftonfolge aber fehlenden Melder/Sirenentönen.
    d) "Sirenenausloesung" (2) bei erkannter Fünftonfolge und anschließendem Sirenenton wie oben geschrieben (NUR die 1240 Hz).
    Die Rettungsdienste in unserer Gegend lösen Melder generell ohne den alten Melderweckton aus. Nur wenn die Leitstelle nicht über den Computer, sondern manuell über den alten Geber alarmiert, folgt das Piepsen auf die Fünfton-Folge.

    Die Auswertung sollte daher zwischen a) und c) unterscheiden und unterschiedliche Statusmeldungen für beide Fälle ausgeben. Ich biete euch an dieser Stelle nochmal an, das bestehende Protokoll zu überarbeiten, um diese und andere Kommandos und Statusmeldungen einzupflegen.

    Wie aufwändig ist es, andere Dualton-Dekodierungen einzubauen? Neben "Feueralarm" kommen in der Praxis vor allem "Testalarmierung" und "Katastrophenalarm" zum Einsatz. Es wäre schön, wenn der monitor diese Töne erkennt und korrekt auswertet.

    Zitat Zitat von mdi
    Nebenbei gleich noch eine andere Frage zum Ablegen/Speichern der Alarmierungen: Gibt es im monitor
    a) ein SQLite-Backend?
    b) ein Backend für HTTP-Anfragen (GET oder POST) zur Übergabe der Daten an einen Webserver
    Noch nicht. Der unrsprüngliche Plan sah vor, SQL-Datenspeicerung über einen Client abzuwickeln -- der natürlich auf der selben Maschine laufen könnte.

    Zwischenzeitlich haben wir über eine optionale DB-Anbindung des Backends diskutiert, um den Monitor-Clients History-Funktionen zu ermöglichen. In Sachen Code hat sich hier aber noch nichts getan.
    Web-Funktionen liessen sich über ein reguläres PHP-Backend umsetzen.

    Ich finde allerdings, dass der monitord-Dienst an sich so klein wie eben möglich gehalten werden sollte, so dass er auf lausigen alten PCs läuft, die ein völlig abgespecktes Linux von CD oder USB booten.

    viele Grüße,
    Andreas

  3. #288
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo Andreas,

    Zitat Zitat von nepomuck Beitrag anzeigen
    Erst einmal vielen Dank für dein Engagement bei diesem Projekt.
    gern; ich habe zur Zeit eben selber eine gehörige Portion Interesse daran und bin schon sehr angetan, auf welch breiter Grundlage man hier mitarbeiten kann :)!

    Zitat Zitat von nepomuck Beitrag anzeigen
    Ich werde den neuen ZVEI-Code gleich unter Linux gehörig stressen.
    Das ist gut; ich habe zur Zeit leider keine sinnvolle Möglichkeit, den "mal eben" unter Linux zu testen ohne große Aktionen machen zu müssen. Muss dringend mal wieder ein Multiboot-System einrichten ;). Feedback ist gerne genommen; meine C/C++-Programmierkünste sind ein wenig eingerostet in den letzten Jahren.

    Die Geschichte mit dem Unterscheiden der beiden Fälle "unklare Auslösung" wäre vom Code her kein Problem - da sowieso unterschiedliche Stellen für die Ausgabe zuständig sind, bräuchte man nur wie Du schriebst entsprechend eine weitere Definition. Ich weiß allerdings nicht, auf welchen Argumenten die bisherige fußt!

    Zitat Zitat von nepomuck Beitrag anzeigen
    Wie aufwändig ist es, andere Dualton-Dekodierungen einzubauen? Neben "Feueralarm" kommen in der Praxis vor allem "Testalarmierung" und "Katastrophenalarm" zum Einsatz. Es wäre schön, wenn der monitor diese Töne erkennt und korrekt auswertet.
    Das ist ein wenig Aufwand aber wie geschrieben noch zu machen und alles andere als vom Tisch, wenngleich bei mir zur Zeit etwas geringer priorisiert (da ich nur die echten Fünftonfolgen brauche -> Betriebsfunk). Notwendig ist dafür die Überarbeitung der process_block()-Methode, da diese zur Zeit nur Einzelfrequenzen erkennen bzw. zurückmelden (return int Frequenz-Index) kann. Lösungsansätze habe ich schon im Kopf, allerdings wird der Eingriff etwas umfassender, weil dafür vermutlich auch die diversen Matrizen erweitert werden müssen und ich in dem Zuge gleich alle im ZVEI-Standard definierten Buchstaben (A, C, J, ...) mit einbauen wollte - vielleicht braucht sie einmal jemand (ich brauche nur das A, das ist prinzipiell schon da, wird aber noch nicht weiter behandelt). Für die Fälle der Sirenentöne müssten dann auch entsprechende Typ-Nummern vergeben und im Protokoll integriert werden (oder gibt es die schon?).

    Zitat Zitat von nepomuck Beitrag anzeigen
    Noch nicht. Der unrsprüngliche Plan sah vor, SQL-Datenspeicerung über einen Client abzuwickeln -- der natürlich auf der selben Maschine laufen könnte.
    Hm, dem SVN-Inhalt nach zu urteilen gibt es bereits eine MySQL-Storage-Engine, die entsprechendes für MySQL tun könnte. Wie ist da der Stand der Dinge?

    Zitat Zitat von nepomuck Beitrag anzeigen
    Web-Funktionen liessen sich über ein reguläres PHP-Backend umsetzen.
    Öh... das habe ich jetzt nicht ganz verstanden, muss ich ehrlich sagen ;).
    Mir schwebte vor, dass die StoreResult()-Methode in der Lage wäre, eine noch zu schreibende HTTPStorage-Engine zu nutzen, um per HTTP GET (oder auch POST, das kann man ja beliebig ausweiten) die Telegramme/Tonfolgen/... an einen Webserver zu übergeben. Das hätte in meinen Augen den Vorteil, dass diese nicht nur über eine dauerhaft bestehende TCP-Verbindung (entsprechend FMS/Crusader/monitor-Socket) erhältlich wären sondern (in der monitor.xml konfigurierbar) per HTTP an ein PHP-Skript "gepusht" werden könnten, was sie dann wie der Anwender möchte weiterverarbeitet. Oder gibt es etwas ähnliches schon und ich habe Tomaten auf den Augen, weil ich bisher nur die ZVEI-Codes angeschaut habe?

    Zitat Zitat von nepomuck Beitrag anzeigen
    Ich finde allerdings, dass der monitord-Dienst an sich so klein wie eben möglich gehalten werden sollte, so dass er auf lausigen alten PCs läuft, die ein völlig abgespecktes Linux von CD oder USB booten.
    Ja, das wäre gut, keine Frage. Ist halt die Frage, ob die Einbindung von libcurl da schon ein Problem wäre oder ob nicht. Meine Tests eben (Windows only) verliefen sehr vielversprechend und würden genau meinen Wunsch von oben realisieren: Übergabe der Daten an einen Webserver zur Weiterverarbeitung mittels PHP wie auch immer gewünscht.

    Viele Grüße
    Martin

  4. #289
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Ich werde auch den Ansatz der StorageModule weiter verfolgen. Einfach aus eigenem interesse - Das MySQL Modul war mal so ein Ansatz zwischendurch :-)

    Vorher möchte ich aber die Kommunikation der Auswertungsmodule zu den Display und Storagemoduln nochmal überarbeiten. Ich könnte mir gut ein std::map vorstellen, daß durch das Auswertungsmodul gefüllt wird und dann an eine std::list aller StorageModule geht. Der Auswerter kann dann auch neue Daten hinzufügen, die dem StorageModul nicht schaden, wenn es sie nicht versteht.

    Ein Beispiel könnte sein, daß der Auswerter folgendes liefert:

    data['typ']='zvei'
    data['kennung']='12345'
    data['Weckton']='Sirene'

    Und das Storagemodul aber nur 'typ' und 'Kennung' nutzt (weil es den Eintrag 'Weckton' noch nicht gab, als das StorageModul gemacht wurde).

    Nicht so umfangreich wie XML. Aber doch flexibel und vor allen Dingen erweiterbar. Kennt das StorageModul den typ der Daten nicht, kann es ihn ignorieren. Fehlende Felder (aus Sicht des StorageModuls) hätten automatisch einen leeren Wert.

    Was halten denn die anderen von dem Ansatz ?

  5. #290
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von Buebchen
    Ein Beispiel könnte sein, daß der Auswerter folgendes liefert:
    data['typ']='zvei'
    data['kennung']='12345'
    data['Weckton']='Sirene'
    Wobei data['Weckton'] folgende Ergebnisse liefern kann:
    Ohne, Weckton, Feuer, Test, Katastrophe, Warnung, Entwarnung
    Dieses Konstrukt läßt aber keinen Platz für "unklare Auslösung". Erkennt der Dekodierer einen möglichen Fehler, wenn das Signal schlecht, verzerrt oder überlagert ist?

    Würde dann ein data['klare Auslösung'](Boolean)=1 (Fehlerfreie Dekodierung) oder =0 (mögliche Falsche Codefolge) Sinn machen?

    Zitat Zitat von mdi
    Öh... das habe ich jetzt nicht ganz verstanden, muss ich ehrlich sagen ;).
    Der Ansatz war hier, das monitor selbst nicht mit dem Web-Server spricht, sondern sich dieser per php aus der Datenbank bedient, die monitor füttert.
    Bei deinem Vorhaben würde vom monitor aus direkt auf einen Webserver schreiben. Das ist eine gute Idee, aber ich würde diese Funktion lieber in einem Client-Modul sehen als direkt im monotord-Code.

    Zitat Zitat von mdi
    Hm, dem SVN-Inhalt nach zu urteilen gibt es bereits eine MySQL-Storage-Engine, die entsprechendes für MySQL tun könnte.
    Richtig. Das Problem der existierenden monitor-Version mit mysql-Engine ist nur, dass sie zu monolithisch aufgebaut ist und viele Dependencies hat. Die läuft nicht auf jedem Linux. Deshalb sind wir ja hier, um eine modulare Version zu schaffen. Der bestehende MySQL-Code liesse sich auf einem Client umsetzen.

    @Buebchen: Wie sieht es eigentlich mit den Soundkartenfunktionen aus?
    Wenn ich mich an die Überarbeitung des Protokolls mache, würde ich dabei gerne die Befehle für die Aufzeichnung integrieren. Liesse es das Backend zu, dass mehrere Tasks simultan von ein und dem selben Kanal aufzeichnen? Dann könnten mehrere Clients unabhängi voneinander Aufnehmen.
    Wird es nun ein (optionales) MySQL-Modul im Backend geben oder nicht -- irgendwann müssen wir uns entscheiden.
    Dann müssten nämlich die passenden Befehle ins Protokoll, wie "SendLastAlarms" oder so.

    Mein Vorschlag: Wir lassen für die erste "Final" Version 2.0 von monitord und des Protokolls das SQL-Backend weg und konzentrieren uns auf die Dekodierung. Auch das Recording sollte drin sein.
    Für 2.2 nehmen wir uns dann das MySQL-Backend und/oder die HTTP-Push-Engine vor.


    Viele Grüße,
    Andreas

  6. #291
    Registriert seit
    30.08.2005
    Beiträge
    247
    So ganz zwischendurch melde ich mich zurück... Nach Umzug hat sich der Telekommunikationsdienstleister ordentlich Zeit gelassen. Ich bin aber jetzt wieder online und versuche die Mails und Forenbeiträge der letzten zwei Monate aufzuarbeiten. Ich freu mich schon den aktuellen Stand näher zu betrachten :)

    jhr

  7. #292
    Registriert seit
    21.08.2005
    Beiträge
    251
    Eine kurze Frage vom Nicht-C++-Entwickler::

    Wenn ich das SVN auschecke: In welchem Verzeichnis muss ich dann meinen Make fahren, um die aktuelle monitord-Version für Linux mit dem neuen ZVEI-Dekoder zu erhalten.

    Und was passiert, wenn ich das auf einer x86-64-Kiste mit 64-Bit-Ubunut mache?

    Andreas

  8. #293
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo,

    Zitat Zitat von nepomuck Beitrag anzeigen
    Erkennt der Dekodierer einen möglichen Fehler, wenn das Signal schlecht, verzerrt oder überlagert ist?
    Würde dann ein data['klare Auslösung'](Boolean)=1 (Fehlerfreie Dekodierung) oder =0 (mögliche Falsche Codefolge) Sinn machen?
    hm... dass der Dekoder eine "Signalqualität" erkennt, ist zur Zeit so gar nicht vorhanden. Wenn eine Fünftonfolge erkannt werden kann (bei jedem Wechsel des Tons gibt es ein neues Zeichen, Pausen dürfen zwischen den fünf Tönen nicht auftreten), wird diese ausgegeben. Das ist ja auch verhältnismäßig einfach zu realisieren. Wenn man eine etwas fehlertolerantere Lösung schreiben wollte, könnte man die Toleranz von Pausen in der Tonfolge einbauen (so dass z.B. von den 70ms Tonlänge grob 30ms unerkannt bleiben dürfen - generell keine schlechte Idee, so etwas sollte ich machen). Andersherum könnte man das dann vielleicht für die "Signalqualität" nutzen: Wenn weniger als 60% der eigentlichen Tonlänge eines der Töne erkannt wurden, ist das Signal "unklar"). Da stellt sich aber die Frage: Wird so etwas echt benötigt? Ja, ok, es wäre dann nur noch ein BOOL ;D.

    Zitat Zitat von nepomuck Beitrag anzeigen
    Der Ansatz war hier, das monitor selbst nicht mit dem Web-Server spricht, sondern sich dieser per php aus der Datenbank bedient, die monitor füttert.
    Bei deinem Vorhaben würde vom monitor aus direkt auf einen Webserver schreiben. Das ist eine gute Idee, aber ich würde diese Funktion lieber in einem Client-Modul sehen als direkt im monotord-Code.
    Hm, schade. ;).
    Nein; Spaß bei Seite: Grundsätzlich kann ich die Einstellung gut nachvollziehen. Für mich (aus Anwendersicht) wirkt die MySQL-Geschichte "fetter" als die HTTP-Idee. Im Monitor integriert (als Storage-Engine) hätte es den Vorteil, dass man keinen direkten Zugriff auf eine MySQL-Datenbank braucht um Daten wegzuschreiben, sondern die Daten per HTTP POST an einen Webserver liefern kann (nicht jeder Hoster bietet MySQL-Zugriff von außen an). Auch bräuchte man keinen Client, der über Netz/Sockets dauerhaft connecten muss, sondern hätte entsprechend keinerlei Ports zu öffnen und würde mit dem Monitor keinen "Server" sondern einen "HTTP-Client" aufsetzen. Das wäre auch für Paketfilter/Firewalls einfacher zu händeln. Aber das als Client-Modul (das heißt, es läuft als eigenes Programm im eigenen Prozess und verbindet sich zum Monitor über die Sockets?) zu bauen, sollte ja grundsätzlich nicht problematisch sein und hätte wiederum den Vorteil, dass keine weitere Library für den eigentlichen monitord benötigt wird.

    Zitat Zitat von nepomuck Beitrag anzeigen
    @Buebchen:
    Wird es nun ein (optionales) MySQL-Modul im Backend geben oder nicht -- irgendwann müssen wir uns entscheiden.
    Dann müssten nämlich die passenden Befehle ins Protokoll, wie "SendLastAlarms" oder so.
    Hier würde ich die Weiterführung des obigen Gedankens vorschlagen: Das MySQL-Modul als Client-Modul bauen und für die History SQLite nutzen (wobei das Datenbank-Design und die SQL-Queries sicher ähnlich wenn nicht gleich sind). Damit könnte der Monitor "von Hause aus" immerhin eine SQL-fähige Datenbank auf Dateibasis mit den aufgefangenen Alarmierungen füttern, die sehr einfach handhab- und auch anderweitig nutzbar ist. Auch ist kein MySQL-Server dafür notwendig, den Monitor einschließlich der History-Funktion zu nutzen. Wer dann MySQL-Unterstützung braucht, kann das MySQL-Modul einbinden und die Daten in einer eigenen Datenbank sonstwo sammeln.
    Ja, ich bin begeistert von SQLite, entschuldigung ;).

    Zitat Zitat von nepomuck Beitrag anzeigen
    Mein Vorschlag: Wir lassen für die erste "Final" Version 2.0 von monitord und des Protokolls das SQL-Backend weg und konzentrieren uns auf die Dekodierung. Auch das Recording sollte drin sein.
    Für 2.2 nehmen wir uns dann das MySQL-Backend und/oder die HTTP-Push-Engine vor.
    Das finde ich sehr gut. Die HTTP-Push-Sache ist bereits in der Mache (basierend auf curl, ich brauche das Feature! ;)).

    Da wir gerade bei der Zukunft sind: Ich habe mir gestern Abend das SVN einmal genauer angeschaut und gesehen, dass in /trunk gar nicht entwickelt wird. Stattdessen gibt es mehrere 2.x-Branches, in denen sich Dinge tun, wobei es den Eindruck macht, als würden die Branches immer wieder voneinander abstammen und "abbrechen", sobald ein neuer Branch gebaut wurde.
    Da es ja auch bei der Nutzung von SVN gewisse Standards gibt, möchte ich hiermit vorschlagen, dass /trunk nach /branches/1.9.0 gemoved wird (als Archiv, damit es nicht wegkommt, quasi). Entsprechend ist /trunk dann leer und kann mit den Daten des aktuellen Branches (/branches/2.1.1-mergeWinLin) gefüllt werden, wobei dann hoffentlich keine wichtigen Änderungen aus den anderen 2er-Branches verloren gehen (gut, man könnte nochmal diff-en und nötigenfalls mergen). Damit wäre im /trunk die aktuelle Version 2.0 (ohne die 1en und das mergeWinLin am Ende - brechen wir es auf das eigentliche Ziel herunter), die dann als Feature-Set hat: Plattformunabhängigkeit, Funktionalität (Erkennung, Ausgabe über die drei Sockets in drei Formaten Crusader, FMS32, monitord).
    Einen Branch/Branches für die 2.1 oder 2.2 (HTTP-Engine, MySQL-Engine, was auch immer) anzulegen, wäre dann sicher sinnvoll, sobald ein neues Feature implementiert werden soll. Ich möchte auch die Nutzung von Tags anregen, mit denen man ja ganz famos Revisionen im SVN Versionsnummern von Software aufklatschen kann, so dass nach einer Umstrukturierung wie vorgeschlagen direkt der Inhalt von /trunk in /tags/2.0-291107 als lauffähige Version markiert werden könnte und sollte, um lauffähigen Code schnell und einfach auscheckbar zu haben.

    Auch möchte ich anregen, dass die tolle Entwicklung des 2er monitor ein bisschen mehr an die Öffentlichkeit kommt. Ich würde gern hier im Forum diesen Thread schließen (er wird doch arg unübersichtlich) und drei neue anfangen:
    a) Der Monitor 1.9 (falls existent)
    b) Der Monitor 2.0: Aktueller Stand der Entwicklung
    c) Der Monitor 2.x: Ausblick

    Dabei sollte b) enthalten: Verweise auf die Sourcen/das SVN, die genutzten Entwicklungsumgebungen unter Windows (MSYS/MinGW) und Linux, Protokolle, kompilierte Binaries zum Anschauen als naja, nicht nightly aber "aktueller Stand der Dinge"-Build, Informationen zu den Frontends (die ich mir ehrlich gesagt leider noch gar nicht weiter angeschaut habe).
    c) sollte die Vorschläge/Planung für die nächste Version (MySQL-Storage, History-Funktion, HTTP-Push-Mechanismus) enthalten.
    Eventuell sollte man auch einen Extra-Thread für die Monitor-Frontends anlegen, in denen diese kurz vorgestellt und ihre Benutzung erklärt werden. Sicherlich könnte man diese aber auch in b) mit integrieren.

    Puuh... wieder viel geschrieben und "neue Ideen" eingebracht. Ich hoffe, ich verprelle damit niemanden, aber ich bin echt begeistert vom "neuen Monitor" und finde es ehrlich schade, dass der aktuelle Stand hier doch irgendwie ein Schattendasein fristet :7.

    @Buebchen: Die Sache mit dem Überarbeiten der Storage-/Display-Module und dem "Übersehen" unbekannter Parameter finde ich sehr sinnvoll.
    Allerdings fiel mir dazu ein: Warum sollte man nicht die Nachrichten, die von den Auswertern kommen, in eigene Objekte kapseln? Damit könnten die Nachrichtenpakete vom Typ "ZVEImsg", "POCmsg" und "FMSmsg" sein, auch wenn sie dann vielleicht nur Attribute enthalten (Datencontainer eben). Damit würde es die Ausgabe-Methoden geben "Output(ZVEImsg out)", "Output(POCmsg out)" und "Output(FMSmsg out)". Das würde auch ein ähnliches Verhalten abbilden wie Du schriebst: Zusätzliche Attribute der Datenobjekte würden zwar bestehen aber nicht ausgegeben (weil die Methode das Feld nicht kennt und eben nicht darauf zugreift - aus die Maus), ohne dass große Eingriffe in den Code (speziell die Definition der Ausgabemethoden) notwendig wären.

    Viele Grüße
    Martin

  9. #294
    Registriert seit
    15.11.2007
    Beiträge
    213
    Hallo,

    Zitat Zitat von nepomuck Beitrag anzeigen
    Wenn ich das SVN auschecke: In welchem Verzeichnis muss ich dann meinen Make fahren, um die aktuelle monitord-Version für Linux mit dem neuen ZVEI-Dekoder zu erhalten.
    ich habe ausgecheckt: svn://jhr-online.de/monitor/monitor/branches/2.1.1-mergeWinLin (HEAD-Revision). Hier führst Du configure und make aus (also einen oberhalb von /monitord im Verzeichnisbaum). Jedenfalls tut das so unter Windows...

    Martin

  10. #295
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von mdi Beitrag anzeigen
    Hallo,
    ich habe ausgecheckt: svn://jhr-online.de/monitor/monitor/branches/2.1.1-mergeWinLin (HEAD-Revision). Hier führst Du configure und make aus (also einen oberhalb von /monitord im Verzeichnisbaum). Jedenfalls tut das so unter Windows...
    Martin
    ast@fkl2:~/monitorsvn/monitor/branches/2.1.1-mergeWinLin$ ./configure
    configure: error: cannot run /bin/bash ./config.sub


    Das passiert, obwohl ich die Dateien mit chmod +x ausführbar gemacht habe.

    Ich habe mit config.sub angesehen und festgestellt, dass die Textzeilen mit <0d><0a> enden (Windows-Like "CR+LF") statt wie unter Linux üblich mit <0a> "LF" alleine.

    Für den Interpreter lautet die erste Zeile von config.sub daher "#1/bin/sh^M" und das geht nicht.
    Auch die geänderten Sourcecode-Dateien haben den falschen Linefeed drin -- ich weiss nicht, wie der Compiler darauf reagiert.

    Kannst du das in deinem Editor korrigieren und die von dir veränderten Dateien nochmal mit <0d> "LF" alleine einstellen?

    Danke,
    Andreas

  11. #296
    Registriert seit
    15.11.2007
    Beiträge
    213
    Zitat Zitat von nepomuck Beitrag anzeigen
    Auch die geänderten Sourcecode-Dateien haben den falschen Linefeed drin -- ich weiss nicht, wie der Compiler darauf reagiert.

    Kannst du das in deinem Editor korrigieren und die von dir veränderten Dateien nochmal mit <0d> "LF" alleine einstellen?
    ich habe die ZVEI-Sourcen geändert. An der config.sub habe ich nicht geschraubt; es gibt aber auch das Tool dos2unix oder unix2dos - das macht das auch. :).

    Martin

  12. #297
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Zitat Zitat von mdi Beitrag anzeigen
    Hallo,
    [...viel Text:-) ]

    Ja, ich bin begeistert von SQLite, entschuldigung ;).
    Ich kenne SQLite nicht. Aber ich suche noch eine effektive Methode um die Nachrichten vom Decoder zu den Socketthreads zu queuen oder spoolen. Könnte man nicht sogar eine SQListe-DB (oder mehrere) nehmen ?

    Zitat Zitat von mdi Beitrag anzeigen
    Da es ja auch bei der Nutzung von SVN gewisse Standards gibt, möchte ich hiermit vorschlagen, dass /trunk nach /branches/1.9.0 gemoved wird (als Archiv, damit es nicht wegkommt, quasi). Entsprechend ist /trunk dann leer und kann mit den Daten des aktuellen Branches (/branches/2.1.1-mergeWinLin) gefüllt werden, wobei dann hoffentlich keine wichtigen Änderungen aus den anderen 2er-Branches verloren gehen (gut, man könnte nochmal diff-en und nötigenfalls mergen). Damit wäre im /trunk die aktuelle Version 2.0 (ohne die 1en und das mergeWinLin am Ende - brechen wir es auf das eigentliche Ziel herunter), die dann als Feature-Set hat: Plattformunabhängigkeit, Funktionalität (Erkennung, Ausgabe über die drei Sockets in drei Formaten Crusader, FMS32, monitord).
    Kann ich nur unterstützen. Sofern nichts dagegen spricht werde ich mit jhr-online absprechen, daß wir mal umsetzen. Ich habe auch schon nem Test-PC ohne drauf zu achten den trunk ausgecheckt und war doch etwas verwundert...

    Zitat Zitat von mdi Beitrag anzeigen
    Einen Branch/Branches für die 2.1 oder 2.2 (HTTP-Engine, MySQL-Engine, was auch immer) anzulegen, wäre dann sicher sinnvoll, sobald ein neues Feature implementiert werden soll. Ich möchte auch die Nutzung von Tags anregen, mit denen man ja ganz famos Revisionen im SVN Versionsnummern von Software aufklatschen kann, so dass nach einer Umstrukturierung wie vorgeschlagen direkt der Inhalt von /trunk in /tags/2.0-291107 als lauffähige Version markiert werden könnte und sollte, um lauffähigen Code schnell und einfach auscheckbar zu haben.
    Kann ich auch so unterstützen.

    Zitat Zitat von mdi Beitrag anzeigen
    @Buebchen: Die Sache mit dem Überarbeiten der Storage-/Display-Module und dem "Übersehen" unbekannter Parameter finde ich sehr sinnvoll.
    Allerdings fiel mir dazu ein: Warum sollte man nicht die Nachrichten, die von den Auswertern kommen, in eigene Objekte kapseln? Damit könnten die Nachrichtenpakete vom Typ "ZVEImsg", "POCmsg" und "FMSmsg" sein, auch wenn sie dann vielleicht nur Attribute enthalten (Datencontainer eben). Damit würde es die Ausgabe-Methoden geben "Output(ZVEImsg out)", "Output(POCmsg out)" und "Output(FMSmsg out)". Das würde auch ein ähnliches Verhalten abbilden wie Du schriebst: Zusätzliche Attribute der Datenobjekte würden zwar bestehen aber nicht ausgegeben (weil die Methode das Feld nicht kennt und eben nicht darauf zugreift - aus die Maus), ohne dass große Eingriffe in den Code (speziell die Definition der Ausgabemethoden) notwendig wären.

    Viele Grüße
    Martin
    Details zur Umsetzung sind noch ganz offen. Ich denke der Datentyp map<std::string,std::string> hat halt den Charme, daß man ihn wie ein PHPArray ansprechen kann. Das ganze kann ja dann auch Element einer der Klasse wie bei Dir beschrieben sein. Das ganze dann von einer BASEmsg abgeleitet könnte doch recht zukunftssicher sein.

    Ob drei Ausgabemodule mehr oder weniger Sinn machen als eine einzelne Output-Funktion muss ich mal überlegen.

  13. #298
    Registriert seit
    30.08.2005
    Beiträge
    247
    Um's nicht zu kompliziert zu machen:

    Ich bin voll einverstanden und übergebe hiermit mal ausdrücklich buebchen die ehrenwerte Aufgabe, die Änderungen durchzuführen. Vielleicht sollten die Schreiberlinge kurz vom svn die Finger lassen bis buebchen hier die Durchführung bekannt gibt.
    Okay?

    jhr

  14. #299
    Registriert seit
    11.12.2001
    Beiträge
    1.008

    Erledigt

    trunk ist jetzt die 2.1.1-merginwin.

    Die alten branches habe ich in den Ordner branches/discontinued verschoben.
    Der alte trunk ist jetzt tags/1.9.0

    Hab ich jetzt noch was vergessen ?
    Geändert von Buebchen (30.11.2007 um 13:02 Uhr)

  15. #300
    Registriert seit
    21.08.2005
    Beiträge
    251
    Eine kurze, organisatorische Bitte:

    Da Ihr offensichtlich gerade mehr unter Windows als unter Linux am Entwickeln seid, fehlt sämtlichen Skripten im SVN das Executable-Flag. Wer den Code unter Linux übersetzen will, muss zunächst einmal in alle Dateien reinschauen und herausfinden, was per chmod +x umgestellt werden muss..

    Könntet Ihr bitte alle ausführbaren Skripte so umbennennen, dass sie auf ".sh" enden. Dann genügt es, ein einziges "chmod +x *.sh" zu fahren.

    Danke,
    Andreas

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
  •