Seite 2 von 7 ErsteErste 1234567 LetzteLetzte
Ergebnis 16 bis 30 von 94

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

  1. #16
    Registriert seit
    31.07.2012
    Beiträge
    225
    Schön zu hören, dass SDS2DB auch im Industrie-Einsatz ist. Welche Anwendungen deckst du damit ab? Ich habe SDS2DB auch weiterentwickelt. Es gibt jetzt die Möglichkeit Empfangs- und Sende-ISSI-Whitelists zu konfigurieren um zu filtern, welche ISSIs ausgewertet werden. Ich werde es bei Gelegenheit hier einchecken.

    Ich habe ein PHP-Programm als Web-basiertes Einsatzführungstool geschrieben, das die Statusmeldungen in einer Statusübersicht der Einsatzmittel verarbeitet und in einem Journal protokolliert hatte. Mangels Zeit, konkurierender Projekte und fehlender Unterstützung ging die Entwicklung aber nur schleppend voran und die Anwender haben die Geduld verloren, auf weitere Funktionen zu warten. So ist es unvollendet geblieben.
    Jetzt setzen wir EDP4 als Einsatzführungstool ein und die SDS2DB-Datenbank wird von einem erweiterten monitord-Web-Frontend als Rückfallebene und Referenz-"Empfänger" genutzt.

    Für die Auswertung von digitalen Alarmierungen habe ich SDS2DB etwas modifiziert und POCSAG2DB daraus gemacht. Zusätzlich zum Sichern der Meldungen in der Datenbank, wird das Meldungsformat aufbereitet und per RS232 an den EDP4-Einsatzservice weitergeleitet um aus den Alarmierungen automatisiert Einsätze anlegen zu lassen. Das kann ich auch hochladen, falls jemand Interesse bekundet.

    Schöne Grüße

  2. #17
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hallo habe eben festgestellt das der SDS-Header von den SDS Nachrichten abweicht

    Header mit Software +CTSDS3010,0,491016,0,40
    Header ohne Software +CTSDSR: 12,473010,0,491016,0,40

    Weiss jemand den Unterschied zwischen den Beiden Headern?

    bzw. mit welchem Befehl kann ich dies Umstellen?

    Wenn ich den COMPort Sniffer kann ich keinen besonderen Befehl erkennen der dies umstellen könnte.

    mfg
    CS

  3. #18
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hallo dies klingt sehr interessant wir arbeiten hier auch an einem WebFront End.
    Wir setzen auf Ruby on Rails.

  4. #19
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hi flachrelais_48 ist dir bekannt ob und wie das ctsdsr Protokoll wechseln kann?
    die Erste sds ist immer "R: 12,473010,0,491016,0,40"(richtig) und ab dann im Format
    +CTSDS3010,0,491016,0,40. Dieses Format wird solange von der pei Empfange bis man mit sds2d restart das Programm neu startet.

    Ist dir sowas schon mal aufgefallen?


    Log von pei.ttyS1:

    sds2db: <- ATZ
    sds2db: <- AT+CTSP=1,3,130
    sds2db: -> OK
    sds2db: -> R: 12,473010,0,491016,0,40
    sds2db: -> 82064F0141
    sds2db: <- AT+CMGS=473010,32
    sds2db: <- 8210004F
    sds2db: -> +CME ERROR: 35
    sds2db: -> +CMGS: 0
    sds2db: -> OK
    sds2db: -> +CMGS: 0,4,79
    sds2db: -> +CTSDS3010,0,491016,0,40
    sds2db: -> 8206500141

    mfg
    CS

  5. #20
    Registriert seit
    31.07.2012
    Beiträge
    225
    Hallo,

    das "ctsdsr Protokoll" kann nicht wechseln. Wenn der AT-Command Mode auf ETSI gestellt ist, muss die Signalisierung einer empfangenen SDS auch der Norm entsprechen.

    In deinem Log sind mir aber ein paar Sachen aufgefallen.

    sds2db: <- ATZ
    sds2db: <- AT+CTSP=1,3,130
    sds2db: -> OK

    Hier ist das OK vermutlich die Antwort auf ATZ, d.h. dass das Kommando AT+CTSP=1,3,130 zu früh gesendet wird.

    Kannst du bitte mal ein Log posten, bei dem die Zeitstempel zu sehen sind? Und den Inhalt der pei.init am besten auch.

    Hier mal ein Beispiel, wie es aussehen sollte:

    Sep 15 19:05:12 statusmonitor2 sdsfwd: tx ATZ
    Sep 15 19:05:13 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:14 statusmonitor2 sdsfwd: tx AT+CTSP=1,2,20
    Sep 15 19:05:14 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:15 statusmonitor2 sdsfwd: tx AT+CTSP=1,3,10
    Sep 15 19:05:15 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:16 statusmonitor2 sdsfwd: tx AT+CTSP=1,3,130
    Sep 15 19:05:16 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:17 statusmonitor2 sdsfwd: tx AT+CTSP=1,1,11
    Sep 15 19:05:17 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:18 statusmonitor2 sdsfwd: tx AT+CTGS=1,2xxxxx2
    Sep 15 19:05:19 statusmonitor2 sdsfwd: rx +CTGS: 1,2xxxxx2
    Sep 15 19:05:19 statusmonitor2 sdsfwd: tx AT+CNUMF?
    Sep 15 19:05:20 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:20 statusmonitor2 sdsfwd: rx +CNUMF: 0,262100104xxxxx9
    Sep 15 19:05:20 statusmonitor2 sdsfwd: rx 2,16xxxxx2
    Sep 15 19:05:21 statusmonitor2 sdsfwd: rx 3,16xxxxx2
    Sep 15 19:05:21 statusmonitor2 sdsfwd: tx AT+CTGS?
    Sep 15 19:05:21 statusmonitor2 sdsfwd: rx 4,262100116xxxxx4
    Sep 15 19:05:21 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:22 statusmonitor2 sdsfwd: rx +CTGS: 1,2xxxxx2
    Sep 15 19:05:22 statusmonitor2 sdsfwd: rx OK
    Sep 15 19:05:28 statusmonitor2 sdsfwd: rx +CTSDSR: 12,5xxxxx8,0,2xxxxx2,0,416
    Sep 15 19:05:28 statusmonitor2 sdsfwd: rx 8200....
    Sep 15 19:05:29 statusmonitor2 sdsfwd: rx +CTSDSR: 12,5xxxxx5,0,2xxxxx2,0,416
    Sep 15 19:05:29 statusmonitor2 sdsfwd: rx 8200...

    Handshake und Geschwindigkeit für /dev/ttyS1 sind passend konfiguriert?

    Scheinbar, funktioniert bei dir auch das Senden der Quittung nicht:

    sds2db: <- AT+CMGS=473010,32
    sds2db: <- 8210004F
    sds2db: -> +CME ERROR: 35
    sds2db: -> +CMGS: 0

    "+CME ERROR:" zeigt immer, dass etwas nicht passt.

    Ändere doch im Skript sds2db das Kommando auf "AT+CTSDS=12,0,0,0,1". Das fehlt auch im Log. Bist du sicher, dass die serielle Verbindung einwandfrei ist?

  6. #21
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hi flachrelais_48 anbei das Logfile:

    Hast du eine neuere Version von SDS2DB weil bei dir anstelle der Pfeile TR und RX steht?

    Inhalt vom Logfile ttyS1:
    Sep 16 08:23:40 linuxFR-Feinblech sds2db: <- ATZ
    Sep 16 08:23:41 linuxFR-Feinblech sds2db: <- AT+CTSP=1,3,130
    Sep 16 08:23:41 linuxFR-Feinblech sds2db: -> OK
    Sep 16 08:23:58 linuxFR-Feinblech sds2db: -> R: 12,473010,0,491016,0,40
    Sep 16 08:23:58 linuxFR-Feinblech sds2db: -> 82065F0141
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: <- AT+CMGS=473010,32
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: <- 8210005F^Z
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: -> +CME ERROR: 35
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: -> +CMGS: 0
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: -> OK
    Sep 16 08:23:59 linuxFR-Feinblech sds2db: -> +CMGS: 0,4,95
    Sep 16 08:24:01 linuxFR-Feinblech sds2db: -> +CTSDS0060,0,491016,0,40
    Sep 16 08:24:01 linuxFR-Feinblech sds2db: -> 8206620141
    Sep 16 08:24:05 linuxFR-Feinblech sds2db: -> +CTSDS3010,0,491016,0,40
    Sep 16 08:24:05 linuxFR-Feinblech sds2db: -> 8206600141

    Die erste SDS wurde fehlerfrei Empfangen und quittiert anschließend kamen die CTSDS rein.


    Inhalt der PEI.init:

    # Config-File einlesen
    source /usr/local/sds2db/etc/sds2db.conf

    # Initialisierung aller PEI Connections für den übergebenem Parameter ausführen
    device=$1
    if [ ! -c "/dev/$device" ]; then
    device="null"
    fi
    # Sequenzzähler der Write-Spooler-Dateien initial auf Zufallswert setzen
    seqnr=$RANDOM

    # PEI-Schnittstelle initialisieren
    echo "$(date +"%b %d %H:%M:%S") $host $inithelper: initialisiere PEI Schnittstelle an \"$device\"" >> $logfile
    printf "ATZ\r" > $writespooldir/$(date +%s).$seqnr.$device
    sleep 1
    #echo "$(date +"%b %d %H:%M:%S") $host $inithelper: registriere TE für Status-SDS" >> $logfile #wird nicht benötigt #GPS
    #printf "AT+CTSP=2,2,20\r" > $writespooldir/$(date +%s).$(($seqnr+1)).$device
    #sleep 1
    #echo "$(date +"%b %d %H:%M:%S") $host $inithelper: registriere TE für LIP" >> $logfile #wird nicht benötigt
    #printf "AT+CTSP=1,3,10\r" > $writespooldir/$(date +%s).$(($seqnr+2)).$device
    #sleep 1
    echo "$(date +"%b %d %H:%M:%S") $host $inithelper: registriere TE für Text Messaging" >> $logfile
    printf "AT+CTSP=1,3,130\r" > $writespooldir/$(date +%s).$(($seqnr+3)).$device
    sleep 1
    #echo "$(date +"%b %d %H:%M:%S") $host $inithelper: lese MS Identität" >> $logfile
    #printf "AT+CNUMF?\r" > $writespooldir/$(date +%s).$(($seqnr+4)).$device
    #sleep 1

    exit 0

    Alles Auskommentiert außer SDS (1,3,130)

    mfg
    CS

  7. #22
    Registriert seit
    04.06.2013
    Beiträge
    38
    Der SerialPort ttyS1 scheint auch richtig konfiguriert zu sein:

    stty -F /dev/ttyS1 -a
    speed 9600 baud; rows 0; columns 0; line = 0;
    intr = ; quit = ; erase = ; kill = ; eof = ^D;
    eol = ; eol2 = ; swtch = ; start = ; stop = ;
    susp = ; rprnt = ; werase = ; lnext = ;
    flush = ; min = 5; time = 0;
    -parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
    -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff
    -iuclc -ixany -imaxbel -iutf8
    -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    -isig icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
    -echoctl -echoke

    Noch ein Hinweis. Mir ist aufgefallen wenn ich die Software starte und beende ist das Nachrichten-Eingan Menü am Gerät gesperrt (auch wenn keine SDS über die Software empfangen wurde).
    Es erscheint die Meldung (Nachr. Empfang blockiert).

    Mir sagt das nichts.


    mfg
    Christian
    Geändert von Quietschphone (16.09.2014 um 11:57 Uhr) Grund: Beiträge zusammengeführt

  8. #23
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hi ich konnte den Fehler weiter eingrenzen.

    Das Format der SDS verändert sich nicht es ist immer +CTSDSR:
    allerdings verschluckt meine SDS2DB Version teile dieses SDS-Strings.

    Vermutlich gibt es eine kleine Abweichung im der ttyS1 Konfiguration.

    ich suche mal weiter, bin kurz vor der Lösung

    ;-)

  9. #24
    Registriert seit
    04.06.2013
    Beiträge
    38
    Leider komme ich nicht darauf warum teile vom ttyS1 verschluckt werden
    hier ist meine stty konfig zum vergleichen:

    serialdev_1_init_1="$sttybin 9600 cs8 -parenb -cstopb ixon ixoff -F /dev/$serialdev_1"

  10. #25
    Registriert seit
    31.07.2012
    Beiträge
    225
    "ixon ixoff" ist ja Softwarehandshake. Bist du sicher, dass dein FuG (was für ein Gerät hast du angeschlossen?) das unterstützt? Vlt. liegt hier schon der Fehler?

    [-]parenb
    generate parity bit in output and expect parity bit in input
    --> Paritätsbit??? - ich weiß nicht, ob das passt


    [-]cstopb
    use two stop bits per character (one with '-')

    --> 1 Stopbit klingt gut

    [-]ixoff
    enable sending of start/stop characters

    [-]ixon
    enable XON/XOFF flow control

    --> Software Handshake??? - kann ich mir kaum vorstellen


    Teste doch mal ohne "XON/XOFF" und ohne Parität.

  11. #26
    Registriert seit
    31.07.2012
    Beiträge
    225
    Zitat Zitat von CSchumacher85 Beitrag anzeigen
    Hi flachrelais_48 anbei das Logfile:

    Hast du eine neuere Version von SDS2DB weil bei dir anstelle der Pfeile TR und RX steht?
    Sorry für's Doppelposting. Habe bei den vielen Antworten den Überblick verloren ;-).

    Ja, ich habe sds2db weiterentwickelt. Es gibt mittlerweile ISSI-Empfangs- und Sende-Whitelists und die pei.init wird auch beim Stoppen aufgerufen und kann das TE am FuG wieder deregistrieren. (Deshalb ist dein Nachrichteneingang blockiert, wenn du sds2db beendest.)

    Ich muss die aktuelle Version "nur" von meiner Konfig anonymisieren, bevor ich es hochlade. Mal schauen, ob ich die nächste Zeit dazu komme.

  12. #27
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hi ich habe jetzt ein Y-Kabel am Comport angeschlossen und sniffer alles mit.

    Anscheinend ist die stty konfig nicht 100% richtig ich suche jetzt dort weiter.


    PS Wie kannst du denn den Bedienkopf sperren?
    Ich habe keinen "Sperrbefehl" auf der Schnittstelle gesehen.

    mfg
    CS

  13. #28
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hallo ich bin schon ein gutes Stück weiter.

    bei stty muss anscheinend der Parameter inlcr gesetzt werden. Dann klappt die Initalisierung schon besser. Allerdings werden immer noch Zeichen bei mehrzeiligen Antworte verschluckt.

    Logfile ttyS1:
    Sep 17 10:32:47 linuxFR-Feinblech sds2db: <- ATZ
    Sep 17 10:32:47 linuxFR-Feinblech sds2db: -> OK
    Sep 17 10:32:48 linuxFR-Feinblech sds2db: <- AT+CTSP=2,2,20
    Sep 17 10:32:48 linuxFR-Feinblech sds2db: -> OK
    Sep 17 10:32:49 linuxFR-Feinblech sds2db: <- AT+CTSP=1,3,10
    Sep 17 10:32:49 linuxFR-Feinblech sds2db: -> OK
    Sep 17 10:32:50 linuxFR-Feinblech sds2db: <- AT+CTSP=1,3,130
    Sep 17 10:32:50 linuxFR-Feinblech sds2db: -> OK
    Sep 17 10:32:51 linuxFR-Feinblech sds2db: <- AT+CNUMF?
    Sep 17 10:32:51 linuxFR-Feinblech sds2db: -> : 0,2620015200491016 Eigentlich +CNUMF:0,2620015200491016
    Sep 17 10:32:52 linuxFR-Feinblech sds2db: -> 2,16777010
    Sep 17 10:32:52 linuxFR-Feinblech sds2db: -> 3,16777110
    Sep 17 10:32:52 linuxFR-Feinblech sds2db: -> OK

  14. #29
    Registriert seit
    04.06.2013
    Beiträge
    38
    Hi flachrelais_48

    kannst du mal bitte deine tty Konfig posten?

    bitte mal das Ergebniss von

    stty -a -F /dev/ttyS1
    posten
    Danke

    Das würde mir sehr helfen.

  15. #30
    Registriert seit
    31.07.2012
    Beiträge
    225
    Da komme ich die nächsten Tage nicht ran. In der sds2db.conf stehen aber Beispiele als Kommentar. Da sollte auch eine Konfig für 9600,8,n,1 ohne Handshake dabei sein.

    Grüße

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
  •