Ergebnis 1 bis 15 von 301

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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.

  2. #2
    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.

  3. #3
    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 11:43 Uhr)

  4. #4
    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

  5. #5
    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ß

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
  •