Proprietäre AIS-Befehle von SRT
Diese Seite wurde maschinell übersetzt. Original lesen (English)
Mein Navico NAIS-300 verwendet, wie die meisten anderen kommerziellen AIS-Class-B-Geräte, die schon eine Weile auf dem Markt sind, das AIS-Class-B-OEM-Board von SRT. Ich weiß, dass dasselbe Board auch im Raymarine 500, im True Heading AIS-CTRX, bei Transas, im Digital Yacht AIT250/1000 und in vielen weiteren Geräten steckt. Das verräterische Merkmal scheint zu sein, dass der AIS-Transponder mit der Software Pro AIS geliefert wird. Ich habe einen seriellen Datenlogger angeschlossen, um herauszufinden, welche NMEA-0183-Befehle die Pro-AIS-Software an den Transponder schickt. Leider veröffentlichen weder SRT noch einer der Hersteller das Protokoll.
Angefangen hat meine Recherche, weil ich die Sendeeinstellung meines AIS-Transponders per Software steuern wollte. Aus irgendeinem Grund gibt es zwar jede Menge Funktionen, die man dem Eingang für den Fernbedienungsknopf zuweisen kann, aber kein zuverlässiges, pegelgesteuertes Ein/Aus für die Sendefunktion. In neueren Firmware-Versionen ist das inzwischen nachgerüstet worden, aber auf meinem Gerät läuft eine ältere Firmware. Eine Stunde Analyse zeigt allerdings, dass die Steuerung des Senders eigentlich ganz einfach ist. Genau genommen ist fast alles, was du mit Pro AIS einstellen kannst, ein Kinderspiel umzusetzen.
Grundlagen
Das SRT-Produkt verwendet, logischerweise, das Präfix ‘P’ für Proprietary, gefolgt von SRT. Hier ein Beispiel für eine PSRT-Nachricht:
$PSRT,LED,01*49
Wie bei allen anderen Sätzen, die ich auf dieser Seite dokumentiere, enthält das gezeigte Nachrichtenformat die NMEA-typischen Prüfsummen-Bytes am Zeilenende, z. B. *49 in der Nachricht oben.
Aus irgendeinem Grund beginnen manche Sätze mit dem Präfix $DUAIQ. Ich habe keine Theorie, warum das so ist – vielleicht werden die Daten von einem anderen Mikrocontroller abgefangen.
Autorisierung
Manche Sätze erfordern die Übergabe eines Passworts. Zum Glück ist das Protokoll dafür ganz simpel – schick einfach vor jeder autorisierten Nachricht den folgenden Satz:
$PSRT,012,,,(--QuaRk--)*4B
Silent Mode
Um das AIS stumm zu schalten (es sendet dann seine eigene Position nicht mehr), schickst du den folgenden autorisierten Satz (mit dem Befehl oben davor):
$PSRT,TRG,02,33*6A
Damit das AIS seine eigene Position wieder sendet, schickst du den folgenden autorisierten Satz:
$PSRT,TRG,02,00*6A
Alarmmodus
Damit das AIS jede Minute alle Alarme ausgibt, schickst du den folgenden autorisierten Satz:
$PSRT,ALM,0000*45
Damit das AIS nur die aktiven Alarme ausgibt, schickst du den folgenden autorisierten Satz:
$PSRT,ALM,0001*44
GPS-Aktualisierungsrate
Damit das AIS jede Sekunde GPS-Daten ausgibt, schickst du den folgenden autorisierten Satz:
$PSRT,GER,01*54
Damit das AIS alle vier Sekunden GPS-Daten ausgibt, schickst du den folgenden autorisierten Satz:
$PSRT,GER,00*55
GPS-Daten
Das SRT-Board hat ein komplettes GPS an Bord. Aus irgendeinem Grund sendet es aber nur zwei GPS-Sätze aus: RMC und GBS. Mehr Infos zu diesen Sätzen (und zu denen weiter unten) findest du im GPSD-Quellcode.
Damit das GPS mehr GPS-Sätze ausgibt, schickst du den folgenden autorisierten Satz:
$PSRT,GPSDATA,,,1*60
Dann sendet das Board zusätzlich zu RMC und GBS auch VTG-, GGA-, GSV-, GLL- und ZDA-Sätze. Mein Board hat dabei einen kleinen Bug: Es fängt außerdem an, RMC und GBS jeweils doppelt zu senden.
Um die zusätzlichen GPS-Nachrichten wieder abzuschalten, schickst du den folgenden autorisierten Befehl:
$PSRT,GPSDATA,,,0*61
Das Board abfragen
Es gibt einen ganzen Stapel Sätze, mit denen du Systeminformationen auslesen kannst. Das sind:
LED-Status
Send: $DUAIQ,LED*29
Recv: $PSRT,LED,a*hh
a bit 1: Power On
a bit 2: TX timeout
a bit 3: Error
a bit 4: SRM status
hh: checksum
Interne Daten
Send: $DUAIQ,ADC*22
Recv: $PSRT,ADC,a,b,c,d,e,f,g*hh
a: Tx forward power
b: Tx reverse power
c: RSSI Rx 1
d: RSSI Rx 2
e: Internal 3V3 supply
f: Internal 6V supply
g: Supply voltage
hh: Checksum
Statische Stationsdaten (AISSD)
Send: $DUAIQ,SSD*20
Recv: $AISSD,a,b,c,d,e,f,g,h*hh
a: Callsign, 8 bytes fixed length; @ for unused bytes
b: Ship's name,20 bytes fixed length; @ for unused bytes
c: GPS antenna distance from bow, in m
d: GPS antenna distance from stern, in m
e: GPS antenna distance from port side, in m
f: GPS antenna distance from SB side, in m
g: DTE
h: Source Identifier
hh: Checksum
MMSI
Send: $DUAIQ,010*55
Recv: $PSRT,010,,,c*hh
a: ?
b: ?
c: MMSI
OEM-Name
Send: $DUAIQ,SRM*28
Recv: $PSRT,SRM,a,b,c*hh
a: ?
b: ?
c: OEM name used in AIS messages, 7 bytes fixed length; unused bytes are filled with @.
hh: Checksum
Statische Schiffsdaten (VSD)
Send: $DUAIQ,VSD*25
Recv: $AIVSD,a,b,c,d,e,f,g,h*hh
a: Type of ship and cargo. For recreational use: 36 = Sailing vessel, 37 = Pleasure craft
b: Maximum present draught, always 00.0
c: Persons on board, always 0000
d: Destination, always @@@@@@@@@@@@@@@@@@@
e: Est. UTC of arrival, always 000000
f: Est. day of arrival, always 00
g: Est. month of arrival, always 00
h: Navigational status, always 00
i: Regional application flags, always 00
hh: Checksum
Softwareversion
Send: $DUAIQ,SWF*26
Recv: $PSRT,SWF,a,b*hh
a: AIS software version
b: FPGA version
hh: Checksum
Seriennummer des Transponders
Send: $DUAIQ,SNO*36
Recv: $PSRT,SNO,a*hh
a: Serial number in ASCII, 10 digits. Usually all 0.
Programmierdaten zurücksetzen
Mit dem folgenden Befehl kannst du das AIS auf Werkseinstellungen zurücksetzen, einschließlich der MMSI-Nummer, sodass es neu programmiert werden kann – zum Beispiel, wenn du deinen AIS-Transceiver verkaufen willst.
$PSRT,RDP*6F
Ich habe zahlreiche Rückmeldungen von Leuten bekommen, bei denen das über eine ganze Reihe von Geräten hinweg problemlos funktioniert. Stell nur sicher, dass dein AIS mit ProAIS geliefert wurde, dann sollte alles klappen.
HINWEIS: Dieser Beitrag stammt ursprünglich aus meinem alten Blog unter der URL http://yachtelectronics.blogspot.nl/2011/02/srt-proprietary-ais-commands.html
Kommentare