Ergebnis 1 bis 15 von 94

Thema: SDS2DB schreibt SDS-Nachrichten in eine MySQL-Datenbank

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    16.01.2012
    Beiträge
    18
    Hallo,
    ich komme irrgendwie nicht klar mit dem Einrichten.
    Ich habe ein MTP850 mittel Serial->USB an einen Raspberry. Wenn ich screen /dev/ttyUSB0 nutze sehe ich eingehende SDS, z.B. +CTSDSR: 13,xxxxxxx,0,xxxxxxx,0,16 8007.

    Leider habe ich mit sds2db kein Erfolg.
    Config der Schnittstelle in der sds2db.conf:
    serialdev_1="ttyUSB0"
    serialdev_1_init_1="$sttybin -F /dev/$serialdev_1 0:0:cbf:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16 :0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    ttyToListenTo="ttySDS2DB0"

    Die userinit_1 ist auskommentiert wie in Beitrag #39 empfohlen, da der gleiche Fehler wie in Beitrag #38 auftritt. Es tritt dann aber beim Starten von sds2db folgender Fehler auf:
    pi@raspberrypi ~ $ sudo /etc/init.d/sds2db start
    Starting sds2db... /etc/init.d/sds2db: line 115: ((: != 0 : syntax error: operand expected (error token is "!= 0 ")
    done!

    Die beiden Log-Dateien beinhalten folgende Meldungen:

    sds2db.log.null:
    Sep 20 23:24:34 raspberrypi sds2db: <- ATZ
    Sep 20 23:24:35 raspberrypi sds2db: <- AT+CTSP=1,2,20
    Sep 20 23:24:36 raspberrypi sds2db: <- AT+CTSP=1,3,10
    Sep 20 23:24:37 raspberrypi sds2db: <- AT+CTSP=1,3,130
    Sep 20 23:24:38 raspberrypi sds2db: <- AT+CNUMF?

    sds2db.log:
    Sep 20 22:38:21 raspberrypi sds2db: --------------------------
    Sep 20 22:38:21 raspberrypi sds2db: Start sds2db begonnen
    Sep 20 22:38:21 raspberrypi sds2db: lösche Alive-Einträge der FuGs aus DB
    Sep 20 22:38:22 raspberrypi sds2db: lösche Alive-Einträge des Servers aus DB
    Sep 20 22:38:22 raspberrypi sds2db: starte sds2db
    Sep 20 22:38:22 raspberrypi sds2db: starte write spooler
    Sep 20 22:38:22 raspberrypi sds2db: erstelle Cronjob für regular run skript
    Sep 20 22:38:22 raspberrypi sds2db: initialisiere serielle Schnittstelle "ttyUSB0"
    Sep 20 22:38:22 raspberrypi sds2db: starte read spooler auf "ttyUSB0"
    Sep 20 22:38:22 raspberrypi pei.init: initialisiere PEI Schnittstelle an "ttyUSB0"
    Sep 20 22:38:23 raspberrypi pei.init: registriere TE für Status-SDS
    Sep 20 22:38:24 raspberrypi pei.init: registriere TE für LIP
    Sep 20 22:38:26 raspberrypi pei.init: registriere TE für Text Messaging
    Sep 20 22:38:27 raspberrypi pei.init: lese MS Identität
    Sep 20 22:38:28 raspberrypi sds2db: konfiguriere Logfile-Rotation für "/usr/local/sds2db/var/log/sds2db.log.ttyUSB0"
    Sep 20 22:38:28 raspberrypi sds2db: Start sds2db abgeschlossen
    Sep 20 22:39:02 raspberrypi regular.run: Server "raspberrypi" Alive-Eintrag in DB "sds2db" hinzugefügt
    Sep 20 22:40:01 raspberrypi regular.run: Server "raspberrypi" Alive-Eintrag in DB "sds2db" aktualisiert
    .
    .
    .

    Habt Ihr Hinweise was ich hier falsch mache???

    Gruß Grisu911

    PS.: Es wurde des öffteren darüber geschrieben das es noch php-Projekte gibt, könnten die vielleicht mal hochgeladen werden???

  2. #2
    Registriert seit
    30.07.2012
    Beiträge
    227
    Zitat Zitat von grisu911 Beitrag anzeigen

    Die beiden Log-Dateien beinhalten folgende Meldungen:

    sds2db.log.null:
    Sep 20 23:24:34 raspberrypi sds2db: <- ATZ
    Sep 20 23:24:35 raspberrypi sds2db: <- AT+CTSP=1,2,20
    Sep 20 23:24:36 raspberrypi sds2db: <- AT+CTSP=1,3,10
    Sep 20 23:24:37 raspberrypi sds2db: <- AT+CTSP=1,3,130
    Sep 20 23:24:38 raspberrypi sds2db: <- AT+CNUMF?
    Ich sehe hier zwei Auffälligkeiten:

    1. Der Name der Logdatei
    - Das Logfile wird für jedes konfigurierte Interface geschrieben. Das "null" weist darauf hin, dass "/dev/ttyUSB0" nicht als Character Device existiert.

    2. Die fehlenden Antworten vom Funkgerät
    - Auf die Initialisierungskommandos müsste das Funkgerät eigentlich antworten, was hier nicht passiert.

    Welche Bezeichnung hat dein Kabel?

    Welchen RS232/USB Adapter benutzt du?

    Schaue doch mal mit "tail -f /var/log/messages" oder "tail -f /var/log/syslog" welche Logmeldungen geschrieben werden, während du das Kabel ansteckst. Mir ist so, als würde der Pi das Device nicht /dev/ttyUSB0 nennen, sondern /dev/ACM0 oder so ähnlich.

  3. #3
    Registriert seit
    16.01.2012
    Beiträge
    18
    Hallo,

    danke für die schnelle Antwort.
    Eingehangen wurde das Gerät schon auf /dev/ttyUSB0
    Sep 20 23:17:21 raspberrypi kernel: [ 8.134611] usb 1-1.3: pl2303 converter now attached to ttyUSB0
    Als Kabel wird das Datenkabel PMKN4025A genutzt, welches auch unter Windows z.B. bei TetraControl funktioniert. Ich bekomme ja bei "screen /dev/ttyUSB0" Daten über die Schnittstelle.

    Das was mich irritiert ist folgender Eintrag
    ttyToListenTo="ttySDS2DB0" muss hier auch "ttyUSB0" rein oder was anderes rein???
    Wenn ich es auf ttyUSB0 stelle geht es auch nicht.
    Irrgendwas schein an meiner config nicht zu stimmen, ich weiß nur nicht was!?!?!

    Hier noch mal die ganze Config:
    #!/bin/bash
    ################################################## ################################################## ###########
    # Titel: sds2db.conf
    # Autor: Michael Kaden
    # Datum: 30.12.2012
    #
    # Funktion:
    # Dieses Skript ist Bestandteil von sds2db. Hier werden Konfigurationsvariablen gesetzt und Funktionen
    # beschrieben, die durch das Einbinden des Skripts in allen sds2db-Skripten programmweit verfügbar sind.
    #
    # Zweck:
    # Das Skript ermöglicht die zentrale Konfiguration von sds2db.
    #
    # Copyright (C) 2013 Michael Kaden
    #
    # Dieses Programm ist freie Software. Sie können es unter Beachtung der Nutzungsbedingungen benutzen,
    # weitergeben und modifizieren.
    # Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird,
    # aber OHNE IRGENDEINE GARANTIE, sogar ohne die Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN
    # BESTIMMTEN ZWECK.
    ################################################## ################################################## ###########
    configfile="/usr/local/sds2db/etc/$skriptname.conf"
    programdir="/usr/local/sds2db/bin"
    skriptname="sds2db"
    program="$programdir/$skriptname"
    readspooler="pei.read"
    writespooler="pei.write"
    inithelper="pei.init"
    regular_run="regular.run"
    readspooldir="/usr/local/sds2db/var/spool/read"
    writespooldir="/usr/local/sds2db/var/spool/write"
    pidfiledir="/var/run"
    runfiledir="/usr/local/sds2db/var/run"
    logfile="/usr/local/sds2db/var/log/$skriptname.log"
    initscript="/etc/init.d/$skriptname"
    sttybin="/bin/stty"
    mysqlbin="/usr/bin/mysql"
    awkbin="/usr/bin/awk"
    inotifybin="/usr/bin/inotifywait"
    db="sds2db"
    dbuser="root"
    dbpass="root"
    db_sds_table="sds2db_sds"
    db_radios_table="sds2db_radios"
    db_servers_table="sds2db_servers"
    now=$(date +"%b %d %H:%M:%S")
    host=$(/bin/hostname)
    # Name der ersten zu konfigurierenden seriellen Schnittstelle (ohne "/dev/")
    # Beispiel: serialdev_1="ttyS0"
    #
    serialdev_1="ttyUSB0"
    #
    # Initialisierungskommandos für erste zu konfigurierende serielle Schnittstelle
    serialdev_1_init_1="$sttybin -F /dev/$serialdev_1 0:0:cbf:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16 :0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    #
    # Moxa serial device server starten
    #serialdev_1_init_1="/sbin/modprobe npreal2 ttymajor=33 calloutmajor=38 verbose=0"
    #serialdev_1_init_2="/usr/lib/npreal2/driver/mxloadsvr"
    # Parameter der seriellen Schnittstelle mittels "stty" konfigurieren (38400,8,n,1)
    #serialdev_1_init_3="$sttybin -F /dev/$serialdev_1 0:0:80000cbd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    #
    # Name der zweiten zu konfigurierenden seriellen Schnittstelle (ohne "/dev/"; auskommentieren, wenn nicht gebraucht)
    # Beispiel: serialdev_2="ttyS1"
    #
    #serialdev_2="ttyS0"
    #
    # Initialisierungskommandos für zweite zu konfigurierende serielle Schnittstelle
    # Beispiel: serialdev_2_init_1="$sttybin -F /dev/$serialdev_2 0:0:80000cbd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    #
    # Parameter der seriellen Schnittstelle mittels "stty" konfigurieren (9600,8,n,1)
    #serialdev_2_init_1="$sttybin -F /dev/$serialdev_2 0:0:80000cbd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    #
    # Schnittstellenparameter für stty
    # 115200,8,n,1: "0:0:80001cb2:0:3:1c:7f:15:1:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    # 57600,8,n,1: "0:0:80001cb1:0:3:1c:7f:15:1:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    # 38400,8,n,1: "0:0:80000cbf:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0" (RTS/CTS)
    # 38400,8,n,1: "0:0:cbf:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16 :0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0" (ohne Handshake)
    # 9600,8,n,1: "0:0:80000cbd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f: 17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
    #
    # userdefinierbare Initialisierungskommandos (auskommentieren, wenn nicht gebraucht; Text zwischen []-Klammern erscheint im Logfile)
    #
    #userinit_1="/usr/local/sds2db/bin/user.init[starte /usr/local/sds2db/bin/user.init]"
    #
    # an welchen Interfaces soll sds2db lauschen? (mehrere durch Leerzeichen trennen)
    # Beispiel: ttyToListenTo="ttyS0 ttyS1"
    #
    ttyToListenTo="ttySDS2DB0"
    #
    # soll sds2db empfangene Statusmeldungen als Quittung zurücksenden?
    # Beispiel: confirmStatusSDS="yes"
    #confirmStatusSDS="yes"
    #
    # soll sds2db SDS-Empfangsquittungen senden, wenn sie angefordert werden?
    # Beispiel: SDSdeliveryReport="yes"
    #SDSdeliveryReport="yes"
    #
    # Funktion für Datenbankzugriff
    #
    exec_mysql() {
    $mysqlbin $db --protocol=TCP -u $dbuser -p$dbpass < $1;
    EOFMYSQL
    return $?
    }


    Gruß Grisu911

  4. #4
    Registriert seit
    30.07.2012
    Beiträge
    227
    Ja genau. So wie es im Kommentar der Konfig steht. ;-) Wenn dein Device ttyUSB0 heißt, muss natürlich das Programm auf dieses Gerät gebunden werden.
    ttyToListenTo="ttyUSB0"

    Wenn es trotzdem nicht geht, könntest du noch die Parameter der seiellen Verbindung prüfen, ob sie zur PEI-Konfig passt.

    Du setzt /dev/ttyUSB0 auf 38400 Bit/s,8 Datenbits, kein Paritätsbit, 1 Stopbit.

  5. #5
    Registriert seit
    16.01.2012
    Beiträge
    18
    Hallo,

    nach Änderung der ttyToListenTo zu "ttyUSB0" und der Parameter der seriellen Schnittstelle zu 9600,8,n,1 klappt es.
    Hatte ich gestern auch schon alles probiert, aber wahrscheinlich irrendwie nicht in der Kombination.

    Also Danle für die schnell Unterstützung.

    Nun noch die folgende Frage:
    pi@raspberrypi ~ $ sudo /etc/init.d/sds2db start
    Starting sds2db... /etc/init.d/sds2db: line 115: ((: != 0 : syntax error: operand expected (error token is "!= 0 ")
    done!

    Was hat diese Fehlermeldung beim Starten zu bedeuten?

    Gruß Grisu911

  6. #6
    Registriert seit
    30.07.2012
    Beiträge
    227
    Wird die Fehlermeldung bei jedem Start angezeigt?

    Der bemängelte Vergleich in Zeile 115 des Init-Skriptes bezieht sich auf folgenden Abschnitt:

    # Wenn Initialisierung nicht erfolgreich war
    if (( "$ret_userinit" != 0 )); then
    # Fehlermeldung ins Logfile schreiben und Skript beenden
    echo "$(date +"%b %d %H:%M:%S") $host $skriptname: Stop! Userdefinierbares Init-Kommando fehlgeschlagen" >> $logfile
    echo "failed!"
    stop_deamon
    exit 1
    fi

    Welche Shell benutzt du? Bash? Ich sehe die Meldung zum ersten Mal. Du kannst ja tesweise in Zeile 115 die 0 in Anführungszeichen setzen. (( "$ret_userinit" != "0" )) oder die Anführungszeichen weglassen (( $ret_userinit != 0 ))

    Nachtrag: Mir ist in deinem Post der Konfig aufgefallen, dass in den Strings zum Initialisieren der RS232-Ports Leerzeichen stehen, die dort nicht hingehören. Stehen die wirklich in deiner Konfig, oder ist das ein Kopierfehler im Post?
    Geändert von flachrelais_48 (21.09.2015 um 23:41 Uhr)

  7. #7
    Registriert seit
    14.10.2012
    Beiträge
    16
    Hallo zusammen,

    gibt es eine aktualissierte/andere Version bereits als Download?

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
  •