Im Grunde ja es werden vordefenierte SDS auf die Tasten gelegt.
Dies bietet den Vorteil das auch andere "Betriebe" andere Stati nutzen können.
@meister Ja vse net
Im Grunde ja es werden vordefenierte SDS auf die Tasten gelegt.
Dies bietet den Vorteil das auch andere "Betriebe" andere Stati nutzen können.
@meister Ja vse net
I am trying to test SDS2DB.
Error is>
sds2db: Start sds2db begonnen
Mar 23 14:36:04 sds2db: lösche Alive-Einträge der FuGs aus DB
Mar 23 14:36:04 sds2db: lösche Alive-Einträge des Servers aus DB
Mar 23 14:36:04 sds2db: starte sds2db
Mar 23 14:36:04 sds2db: starte write spooler
Mar 23 14:36:04 sds2db: erstelle Cronjob für regular run skript
Mar 23 14:36:04 sds2db: initialisiere serielle Schnittstelle "ttyUSB0"
Mar 23 14:36:04 sds2db: starte /usr/local/sds2db/bin/user.init
Mar 23 14:36:04 sds2db: Stop! Userdefinierbares Init-Kommando fehlgeschlagen
On my linux comp. there is no:/usr/local/nullmodem/bin/nullmodem ????
Thanks!
Don't worry. Nullmodem isn't necessary to run SDS2DB. Just comment out the call of "/usr/local/sds2db/bin/user.init" in sds2db.conf.
Good luck
Hallo,Zitat von TLF1625
ich bin mal so indiskret deine PN in's Forum zu stellen. Dann haben auch andere Interessierte was davon...
Die Dateien aus dem Eröffnungspost kann ich einwandfrei herunterladen. Es ist ein tgz-Archiv was man mit "tar xvzf ..." auf dem Zielrechner auspacken können sollte. Evtl. vermurkst die Dateiendung .zip da irgenwas? Ich musste das .zip dranhängen, um die Datei hochladen zu können.
pei.write läuft als Daemon und schreibt den Inhalt der Spool-Dateien in .../var/spool/write/... an das passende Interface. Du siehst ja in den Skripten, wie ich die Spooldateien generiere.
Bei den GPS-Positionen sehe ich keine große Herausforderung in der Auswertung, wenn sie als LIP-SDS empfangen werden. Ich habe einen Satz PHP-Funktionen zum Dekodieren der SDS geschrieben. Die sollten auch in diesem Thread zum Herunterladen stehen. Ich habe SDS2DB auch für meinen Einsatzzweck weiterentwickelt und rufe ein weiteres Processing-Skript auf, dem ich in Abhängigkeit einiger Parameter die empfange SDS zur weiteren Verarbeitung übergebe.
Zur Dokumentation von Gesprächsdaten kann ich bis jetzt nichts beitragen. In meinem Fall ist das FRT auf eine reine Datengruppe geschaltet. Da wird nicht gesprochen. Wenn du es schaffst, dass das Gerät die Metadaten der Gruppenkommunikation als "unsolicited message" auf die PEI schreibt, sollten am Skript sds2db keine großen Ergänzungen dafür nötig sein.
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???
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.
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
Aktive Benutzer in diesem Thema: 61 (Registrierte Benutzer: 0, Gäste: 61)