Seite 4 von 21 ErsteErste 123456789101112131415161718 ... LetzteLetzte
Ergebnis 46 bis 60 von 301

Thema: multimon (der Vorgänger des monitord) auf Raspberry Pi

  1. #46
    Registriert seit
    18.02.2008
    Beiträge
    11

    Webfrontend

    Hi,

    was nutzt ihr als Webfrontend vor der mysqldb? Habe mir das Python-Skript von github gezogen und versucht POCSAG1200 laufen zu lassen. Leider hat es nicht geklappt. Habe jetzt mal das proprietäre aus dem Thread genommen. Das geht ganz gut. Da ich noch keine mysqldb installiert habe, habe ich einfach die mysql-Statements auskommentiert.

    Was haltet Ihr von einer Parameterdatei. Man könnte darin die Filter etc. definieren?

  2. #47
    Registriert seit
    01.04.2003
    Beiträge
    520
    Ich nutze mysql mit PHP.
    Aber alles learning by doing und noch sehr einfach gestrickt. Es ist nichts komplexes, erfüllt aber im Moment seinen Sinn. Da lässt sich mit der Datenbank bestimmt auch viel machen wenn man mysql und php gut beherrscht.

    Was für Filter würdest du definieren wollen?

    Gruß
    Reissdorf

  3. #48
    Registriert seit
    18.02.2008
    Beiträge
    11

    Filter

    Hallo Reissdorf,

    PHP und mysql ist schon klar. Das ist bei mir zwar schon ein bisschen her, aber wird schon gehen. Die Frage war eher, ob es schon etwas fertiges gibt bspw. Weboberfläche von BOS2Web oder so.

    Zum Thema Filter denke ich an Filter wie Sie Arne in AllFMS einsetzt. So kommt es beispielsweise immer wieder zu Fehlauswertungen, d.h. es werden RICs ausgewertet, welche gar nicht zur DA genutzt werden. Diesen "Müll" würde ich gerne gar nicht in der DB stehen haben. Auf den jeweiligen Landkreis bezogen beginnen die RICs ja immer mit der gleichen Abfolge. Weiterhin kommt es auf Grund der verschiedenen DAUs zu "Doppelalarmierungen". Diese kommen innerhalb eines kurzen Zeitfensters. Diese sollen natürlich auch nur einmal in die DB wandern.

    Derzeit schreibe ich noch nicht in die DB, sondern nur in die Textfiles. Außerdem teste ich derzeit nur die POCSAG-Auswertung, da ich derzeit nur einen DVBT-Stick habe.

    Ich habe das Python-Skript bereits angepasst, um die Doppelalarmierungen raus zu bekommen. Sieht bislang auch ganz gut aus, jedoch möchte ich dies noch etwas testen, ob mein Code auch wirklich stimmt. Was die Filter angeht, so habe ich bereits mal begonnen, bin jedoch noch ganz am Anfang.

    Da es nun immer mehr Paramter werden, war der Gedanke die ganzen Parameter in eine conf-Datei auszulagern. Die erleichtert es anderen evtl. Dinge einfacher auf Ihre Gegebenheiten bzw. Wünsche anzupassen, ohne durch das Python-Skript zu müssen.

    Gruß

  4. #49
    Registriert seit
    18.02.2008
    Beiträge
    11

    Antennen

    Hi,

    was nutzt ihr bei der Auswertung von FMS und ZVEI für Antennen am DVBT-Stick?

  5. #50
    Registriert seit
    22.07.2014
    Beiträge
    3
    Irgendwie komme ich nie zu einer Auswertung...
    Bräuchte Pocsac 1200, Frequenz ist bekannt.

    Vielleicht kann noch jemand bei der SQL-Datenbank helfen. Wo wird die Datenbank abgelegt, woher nehme ich die Daten für das Skript?

    Ich würde gerne auf der Himbeere oder der Banane ein Auswertesystem nutzen, und mit ner 2. Himbeere einen Monitor zur Darstellung der Einsatzstellen (in den letzten 15 min.).
    Vielleicht auch mit der 3. Himbeere ein GoogleMaps-Fenster, zur Darstellung des Einsatzortes.

    Das ist wohl Ziel der meisten User hier. Vielleicht kann man hier Images bereit stellen.

  6. #51
    Registriert seit
    18.02.2008
    Beiträge
    11

    Wo hängt's?

    Hallo hobbybastler72,

    wo genau hängt es denn? Hast Du rtl_fm installiert bekommen und die Sachen von RasPoc von github gezogen und installiert? Zusätzlich zu diesen Dingen muss natürlioch auch noch ein mysql als Datenbank installiert werden und anschließend eine DB angelegt werden und die darin enthaltenen Tabellen mit dem von Smith zur Verfügung gestellten Skript erzeugt werden.

    Ein komplettes Image bereits zustellen denke ich ist nicht sinnvoll, da hier auch sehr viele Anpassunge dann noch gemacht werden müssten, so dass dies dann einwandfrei in Deiner Umgebung läuft.

    Prinzipiell vesrtehe ichw as Du damit machen möchtest, allerdings denke ich das dies auch ein RasPi 2 Modell B evtl. je nach Lastaufkommen einzeln bewerkstelligen könnte.

  7. #52
    Registriert seit
    18.03.2015
    Beiträge
    67
    Erst mal Danke für das Script, der MySQL Support arbeitet Top.

    Ich würde gerne bei bestimmten ZVEI Schleifen eine ca 30 Sekunden Aufzeichnung starten.
    Dazu habe ich zu erst einmal im Script rtl_fm und multimon in 2 einzelne subprocess'es gepackt und leite den stdout von rtl_fm auf den stdin von multimon. Das klappt auch super.

    Nun versuche ich bei einem ZVEI Alarm mit einem weiteren Subprozess eine Aufnahme zu starten. Der Sound komtm hierbei wieder direkt von rtl_fm als raw über rtl_fm.stdout in den stdin des Aufnahme Prozess.

    Aufnahme versuche ich aktuell per "sox" genue Codeänderung kann ich erst heute Abend Posten. Die Aufnahme an sich funktioniert auch, allerdings total abgehackt und nicht zu verstehen. Multimon wertet aber während der Aufnahme sauber weiter aus.

    Ich hoffe Ihr versteht was ich meine und könnt mir evtl helfen.

    Gruß

    PS: Programmiere zwar kein python, spreche aber viele andere Sprachen, und kann mich daher schnell einarbeiten. Wenn Interesse besteht würde ich mich gerne im Projekt mit einbringen. PHP zwecks Front End ist auch kein Problem :-)
    Geändert von Schrolli (31.03.2015 um 12:43 Uhr)

  8. #53
    Registriert seit
    02.01.2002
    Beiträge
    105
    @Schrolli,

    das wird so nix.
    Ich denke mal Python kommt da mit dem Timing nicht nach.
    Habe da schon einiges an Lehrstunden ;-) investiert.

    Bei mir funktioniert das so, fast perfekt:

    Ich nutze dafür das snd_aloop Device.
    Sollte unter Raspian verfügbar sein.
    Auf meinem Banana Pi habe ich mir selbst einen Kernel mit aloop gebaut.

    1. Mache mal ein "modprobe snd-aloop" und schaue mal mit "aplay -l" ob Du ein Loopback Device hast.

    2. Erstelle Dir folgende .asoundrc (bei mir liegt die unter /root/)
    Code:
    pcm.dsnooped {
            type dsnoop
            ipc_key 2048
            ipc_perm 0666
            slave {
                    pcm "hw:Loopback,1"
                    channels 1
                    rate 22050
            }
    }
    3. Jetzt kannst Du hiermit das Signal einspeisen:
    Code:
    rtl_fm = subprocess.Popen("sudo rtl_fm -d "+str(deviceid)+" -f "+str(frequenz)+"M -M fm -s 22050 -l " + str(squelch) + " -p "+str(ppmerror)+" \
                              -E DC -F 0 -g 50 | AUDIODEV=plughw:Loopback,0 play -t raw -r 22050 -e signed-integer -b 16 -c1 -V1 -q -",
                                   stdout=subprocess.PIPE,
                                   stderr=open(LogString_rtl_fm,'a'),
                                   shell=True)
    Und hiermit in den multimon-ng wieder einspeisen:
    Code:
    multimon_ng = subprocess.Popen("sudo arecord_multimonng" +str(deviceid)+ " -r 22050 -D plug:dsnooped -c 1 -f S16_LE -t wav | \
                                   multimon-ng" +str(deviceid)+ " "+str(demod1)+" "+str(demod2)+" "+str(demod3)+" -f alpha -t raw -",
                                   stdout=subprocess.PIPE,
                                   stderr=open(LogString_multimonng,'a'),
                                   shell=True)
    Einen Record mache ich hiermit:
    Code:
    record = subprocess.Popen("sudo arecord_memo" +str(deviceid)+ " -D plug:dsnooped -f S16_LE -r 22050 -c 1 -d " + str(zvei_RecTime) + " -t raw | lame --scale 10 -s 22050 -r -m mono -b 16 --cbr --resample 48k --lowpass 4 --tt '" + ID3 + "' - " + zvei_RecPath + memolink_zvei,
                                                              stdout=subprocess.PIPE,
                                                              stderr=open(LogString_memo,'a'),
                                                              shell=True)
    Das funktioniert so eigentlich ganz gut. Nur nach ca. 12-24 Stunden,
    hängt sich der rtl_fm weg. In den Logfiles steht aber kein Fehler.
    Eventuell läuft da irgend ein Buffer voll.
    Ich habe mir hierfür ein Python WatchDog Script geschrieben.
    Damit werden alle Dienste dann durch gestartet.

    Momentan experimentiere ich mit dem "tee" Befehl.
    Damit starte ich alles vom Bash und splitte den Stream zum
    multimon-ng (hier wird ein Python-Filter-Script mit aufgerufen)
    und in das snd-aloop Device.

    Das läuft so jetzt schon 3 Tage durch !!!!

    Gruß

    Marcel

  9. #54
    Registriert seit
    18.03.2015
    Beiträge
    67
    Super, Danke!
    Werde das morgen mal testen.

    Wenn ich das richtig verstehe, leitest du die Daten also in eine virtuelle Soundkarte, von der dann multimon und das record wieder abgreift, ist das so korrekt?

    Gruß

  10. #55
    Registriert seit
    02.01.2002
    Beiträge
    105
    Genau, virtuelles Sounddevice.


    Sent from my iPhone using Tapatalk

  11. #56
    Registriert seit
    18.03.2015
    Beiträge
    67
    Damit wäre es ja dann möglich die Sound Daten an verschiedenste separat laufende Scripte zu verteilen, da man nicht mehr an das Piping innerhalb der Python Datei gebunden ist... Klingt gut :-)

  12. #57
    Registriert seit
    02.01.2002
    Beiträge
    105
    So mache ich das auch.
    Aber mit tee scheint es noch besser zu laufen.
    Aber vielleicht findest Du ja auch den Fehler.


    Sent from my iPhone using Tapatalk

  13. #58
    Registriert seit
    18.03.2015
    Beiträge
    67
    Also bin leider noch nicht zum testen gekommen, aber hab nachgeschaut, das Loopback Device ist da, von daher gehe ich davon aus das es so gehen würde.

    Wie machst du es denn mit tee?

    Gruß

  14. #59
    Registriert seit
    02.01.2002
    Beiträge
    105
    Zitat Zitat von Schrolli Beitrag anzeigen
    Wie machst du es denn mit tee?
    So vom Bash:
    Code:
    sudo rtl_fm$ID -d 0 -f XXX.XXXM -M fm -s 22050 -l 15 -p 12 -E DC -F 0 -g 32 | tee >(sudo multimon-ng -a XXXXX -f alpha -t raw - | python /install/py-scripte/raspoc/multimon-filter.py) >(AUDIODEV=plughw:Loopback,0 play -t raw -r 22050 -e signed-integer -b 16 -c1 -V1 -q -) > /dev/null
    Das Pythonscript "multimon-filter.py" sieht dann so aus:
    Code:
    import sys
    reload(sys)
    sys.setdefaultencoding("UTF-8")
    
    try:
        line = sys.stdin.readline()
        while line:
            
            line = sys.stdin.readline()
            .......
    Du brauchst die ganzen SubProzesse für rtl_fm und multimon-ng nicht starten.
    Der Rest ist dann gleich.

    Gruß

    Marcel

  15. #60
    Registriert seit
    02.11.2014
    Beiträge
    5
    Hi,

    Bei meinen Tests (meist FMS und 5-Ton) hat sich herausgestellt, dass die Dekodierung zuverlässiger wird, wenn man auf das NF (Audio)-Signal noch einen lowpass und highpass-Filter anwendet. Die Frequenzen, die zur Modulation verwendet werden, sind ja bekannt. Muss natürlich noch Rechenleistung dafür übrig sein.

    Beispiel für's Dekodieren, wenn die Demodulation von gqrx gemacht wird (und das Audiosignal per UDP weitergegeben wird):
    Code:
    nc -l -u -p 7355 | sox -t raw -esigned-integer -b16 -r 48000 - -esigned-integer -b16 -r 22050 -t raw - highpass 1k lowpass 2500 | multimon-ng -t raw -a ZVEI2 -a fmsfsk -
    Wenn ihr im Python-Programm eh schon mit tee und virtuellen ALSA-Karten arbeitet, sollte das aber auch einfach in den bestehenden Signalfluß einzubauen sein.

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
  •