Vielen vielen Dank für dein Programm.
Sehr gut gemacht.
Ich habe es für die Industrie im Einsatz mit Motorola MTM800E und es läuft super.
Hast du privat noch weitere Programme?
Also Programme die dann auf deine Datenbank zugreifen.
mfg Christian
Vielen vielen Dank für dein Programm.
Sehr gut gemacht.
Ich habe es für die Industrie im Einsatz mit Motorola MTM800E und es läuft super.
Hast du privat noch weitere Programme?
Also Programme die dann auf deine Datenbank zugreifen.
mfg Christian
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
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
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.
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
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
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.
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 10:57 Uhr) Grund: Beiträge zusammengeführt
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
;-)
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"
"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.
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
Hallo dies klingt sehr interessant wir arbeiten hier auch an einem WebFront End.
Wir setzen auf Ruby on Rails.
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
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?
Aktive Benutzer in diesem Thema: 6 (Registrierte Benutzer: 0, Gäste: 6)