SRT独自のAISコマンド
このページは機械翻訳されています。 原文を読む (English)
私のNavico NAIS-300は、以前から市販されている他の多くのAISクラスB製品と同じく、SRT製のAISクラスB OEMボードを使っています。同じボードはRaymarine 500、True Heading AIS-CTRX、Transas、Digital Yacht AIT250/1000など、ほかにもたくさんの機種に載っています。見分け方は、どうやらAISトランスポンダーにPro AISソフトウェアが付属しているかどうかのようです。そこでシリアルデータロガーをつなぎ、Pro AISソフトウェアがトランスポンダーにどんなNMEA-0183コマンドを送っているのか調べてみました。残念ながら、SRTも各ベンダーもこのプロトコルを公開していないのです。
この調査を始めたきっかけは、AISトランスポンダーの送信設定をソフトウェアから制御したかったことです。なぜかリモートボタン入力には割り当てられる機能がたくさんあるのに、送信のオン/オフを確実にレベル信号で切り替える機能だけがありません。最近のファームウェアでは追加されているのですが、私の機体に入っているのは古いファームウェアです。ところが1時間ほど解析してみると、送信機の制御は実はとても簡単だとわかりました。それどころか、Pro AISで設定できることはほぼすべて、拍子抜けするほど簡単に実装できます。
基本
SRT製品は、当然ながら独自仕様(Proprietary)を示す接頭辞「P」に続けてSRTを付けています。PSRTメッセージの例はこちらです。
$PSRT,LED,01*49
このページで紹介する他のセンテンスもすべて同様ですが、示しているメッセージ形式には行末のNMEA形式のチェックサム(上の例では*49)も含まれています。
なぜか一部のセンテンスは$DUAIQという接頭辞で始まります。理由はよくわかりません。もしかすると、別のマイコンがデータを受け取っているのかもしれません。
認証
センテンスによってはパスワードを渡す必要があります。幸い、その手順はとても単純で、認証付きメッセージを送る前に毎回次のセンテンスを送るだけです。
$PSRT,012,,,(--QuaRk--)*4B
サイレントモード
AISをサイレント(自船位置を送信しない状態)にするには、次の認証付きセンテンス(上記コマンドを前に付けて)を送ります。
$PSRT,TRG,02,33*6A
AISに自船位置を送信させるには、次の認証付きセンテンスを送ります。
$PSRT,TRG,02,00*6A
アラームモード
AISに全アラームを毎分出力させるには、次の認証付きセンテンスを送ります。
$PSRT,ALM,0000*45
アクティブなアラームだけを出力させるには、次の認証付きセンテンスを送ります。
$PSRT,ALM,0001*44
GPS更新間隔
AISにGPSデータを毎秒出力させるには、次の認証付きセンテンスを送ります。
$PSRT,GER,01*54
GPSデータを4秒ごとに出力させるには、次の認証付きセンテンスを送ります。
$PSRT,GER,00*55
GPSデータ
SRTボードには完全なGPSが内蔵されています。なのに、なぜか出力するGPSセンテンスはRMCとGBSの2つだけです。これらのセンテンス(および後述のもの)について詳しくはGPSDのソースを参照してください。
もっと多くのGPSセンテンスを出力させるには、次の認証付きセンテンスを送ります。
$PSRT,GPSDATA,,,1*60
これでRMCとGBSに加えて、VTG、GGA、GSV、GLL、ZDAのセンテンスも出力されるようになります。ただ私のボードにはちょっとしたバグがあって、RMCとGBSもそれぞれ2回ずつ送られてくるようになります。
追加のGPSメッセージを止めるには、次の認証付きコマンドを送ります。
$PSRT,GPSDATA,,,0*61
ボードへの問い合わせ
システム情報を読み出すためのセンテンスがひと揃いあります。以下のとおりです。
LEDステータス
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
内部データ
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
局の静的データ(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名
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
船舶の静的データ(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
ソフトウェアバージョン
Send: $DUAIQ,SWF*26
Recv: $PSRT,SWF,a,b*hh
a: AIS software version
b: FPGA version
hh: Checksum
トランスポンダーのシリアル番号
Send: $DUAIQ,SNO*36
Recv: $PSRT,SNO,a*hh
a: Serial number in ASCII, 10 digits. Usually all 0.
設定データのリセット
次のコマンドを使うと、MMSI番号も含めてAISを工場出荷時の設定に戻し、再設定できる状態にできます。たとえばAISトランシーバーを売りに出したいときなどに便利です。
$PSRT,RDP*6F
いろいろな機種で問題なく使えたという報告をたくさんいただいています。お使いのAISにProAISが付属していれば、まず大丈夫でしょう。
注記 この記事は、以前のブログ http://yachtelectronics.blogspot.nl/2011/02/srt-proprietary-ais-commands.html からの転載です。
コメント