今朝の外気温は4℃で、最高気温は14℃の予報です。昨日も暖かくて畑仕事はジャンパーを脱いで作業しました。
FreeDVのログ転送機能がらみで興味があったので、WSJT-XのUDPメッセージの内容を調べてみました。
FreeDVからのUDPメッセージはWSJT-XのUDPメッセージ形式に準拠しています。
WSJT-XのUDPメッセージ形式の仕様は以下にあります。
https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/Network/NetworkMessage.hpp
Google翻訳したものを以下に置いておきます。
WSJTX_メッセージフォーマット.txt
FreeDVではログ記録時に[Status]と[QSO Logged] メッセージが送信されます。
他に定期的に[Heartbeat] メッセージが送信されます。
FreeDVで[Log QSO] を押した際に送信されるUDPパケットをキャプチャして解析してみました。
-----------------------------------------------------------------------------------------------------------------------------
WSJT-Xのログ時のメッセージも解析してみました。
-----------------------------------------------------------------------------------------------------------------------------
FreeDVのUDPメッセージはWSJT-Xに準拠しているので、WSJT-XとFreeDVの両方に対応したログ中継ソフトを作れそうです。
FreeDVのログ転送機能がらみで興味があったので、WSJT-XのUDPメッセージの内容を調べてみました。
FreeDVからのUDPメッセージはWSJT-XのUDPメッセージ形式に準拠しています。
WSJT-XのUDPメッセージ形式の仕様は以下にあります。
https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/Network/NetworkMessage.hpp
Google翻訳したものを以下に置いておきます。
WSJTX_メッセージフォーマット.txt
FreeDVではログ記録時に[Status]と[QSO Logged] メッセージが送信されます。
他に定期的に[Heartbeat] メッセージが送信されます。
FreeDVで[Log QSO] を押した際に送信されるUDPパケットをキャプチャして解析してみました。
-----------------------------------------------------------------------------------------------------------------------------
(Status)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><01> Status quint32
<00><00><00><06><46><72><65><65><44><56> Id utf8 (FreeDV)
<00><00><00><00><00><6d><83><28> Dial Frequency (Hz) quint64
<00><00><00><0c><44><49><47><49><54><41><4c><56><4f><49><43><45> Mode utf8
<00><00><00><06><53><56><32><53><52><58> Dx Call utf8
<00><00><00><00> Report utf8
<00><00><00><0c><44><49><47><49><54><41><4c><56><4f><49><43><45> Tx Mode utf8
<01> Tx Enabled bool
<00> Transmitting bool
<01> Decoding bool
<00><00><00><00> Rx DF quint32
<00><00><00><00> Tx DF quint32
<00><00><00><06><4a><41><34><4a><4f><45> DE call utf8
<00><00><00><06><50><4d><35><34><53><41> DE grid utf8
<00><00><00><06><4b><4e><31><30><74><6c> DX grid utf8
<00> Tx Watchdog bool
<00><00><00><06><46><52><45><45><44><56> Sub-mode utf8 (FREEDV)
<00> Fast mode bool
<00> Special Operation Mode quint8
<00><00><00><00> Frequency Tolerance quint32
<00><00><00><00> T/R Period quint32
<00><00><00><00> Configuration Name utf8
<00><00><00><00> Tx Message utf8
(QSO Logged)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><05> QSO Loged quint32
<00><00><00><06><46><72><65><65><44><56> Id utf8 (FreeDV)
<00><00><00><00><00><25><8d><9c> Date Off qint64
<04><d6><5b><87> Time Off quint32
<01> Timespec 1=UTC quint8
<00><00><00><06><53><56><32><53><52><58> Dx Call utf8
<00><00><00><06><4b><4e><31><30><74><6c> Dx Grid utf8
<00><00><00><00><00><6d><83><28> Tx Frequency quint64
<00><00><00><0c><44><49><47><49><54><41><4c><56><4f><49><43><45> Mode utf8
<00><00><00><02><35><39> Report sent utf8
<00><00><00><02><35><39> Report Received utf8
<00><00><00><00> Tx Power utf8
<00><00><00><08><43><6f><6d><6d><65><6e><74><73> Comments utf8
<00><00><00><04><4e><61><6d><65> Name utf8
<00><00><00><00><00><25><8d><9c> Date On qint64
<04><d6><5b><87> Time On quint32
<01> Timespec 1=UTC quint8
<00><00><00><06><4a><41><34><4a><4f><45> Operatercall utf8
<00><00><00><06><4a><41><34><4a><4f><45> My Call utf8
<00><00><00><06><50><4d><35><34><53><41> My Grid utf8
<00><00><00><00> Exchange sent utf8
<00><00><00><00> Exchange received utf8
<00><00><00><00> ADIF Propagation mode utf8
(Heartbeat)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><00> Heartbrat quint32
<00><00><00><06><46><72><65><65><44><56> Id utf8
<00><00><00><02> Maximum schema number quint32
<00><00><00><05><32><2e><32><2e><31> version utf8
<00><00><00><00> revision utf8
-----------------------------------------------------------------------------------------------------------------------------
Date qint64は8バイトのユリウス日、Time quint32は4バイトの夜0時からのミリ秒です。
utf8のデータは先頭4バイトが文字長(Byte)になっています。
utf8でデータが無い場合は、文字長<00><00><00><00>のみになります。
(QSO Logged)には Sub-modeが無いのでSub-modeは(Status)から持ってこないといけません。
(QSO Logged)には Sub-modeが無いのでSub-modeは(Status)から持ってこないといけません。
WSJT-Xのログ時のメッセージも解析してみました。
-----------------------------------------------------------------------------------------------------------------------------
(Status)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><01> Status quint32
<00><00><00><06><57><53><4a><54><2d><58> Id utf8 (WSJT-X)
<00><00><00><00><00><d6><c0><90> Dial Frequency (Hz) quint64
<00><00><00><03><46><54><38> Mode utf8 (FT8)
<00><00><00><06><4a><41><34><51><52><41> Dx Call utf8
<00><00><00><03><2d><31><35> Report utf8
<00><00><00><03><46><54><38> Tx Mode utf8 (FT8)
<00> Tx Enabled bool
<00> Transmitting bool
<00> Decoding bool
<00><00><06><2b> Rx DF quint32
<00><00><09><4d> Tx DF quint32
<00><00><00><06><4a><41><34><4a><4f><45> DE call utf8
<00><00><00><08><50><4d><35><34><53><41><38><32> DE grid utf8
<00><00><00><04><50><4d><35><31> DX grid utf8
<00> Tx Watchdog bool
<ff><ff><ff><ff> Sub-mode utf8
<00> Fast mode bool
<00> Special Operation Mode quint8
<ff><ff><ff><ff> Frequency Tolerance quint32
<ff><ff><ff><ff> T/R Period quint32
<00><00><00><07><49><43><2d><37><33><30><30> Configuration Name utf8 (IC-7300)
<ff><ff><ff><ff> Tx Message utf8
(QSO Logged)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><05> QSO Loged quint32
<00><00><00><06><57><53><4a><54><2d><58> Id utf8 (WSJT-X)
<00><00><00><00><00><25><8d><9d> Date Off qint64
<00><4a><3d><6d> Time Off quint32
<01> Timespec 1=UTC quint8
<00><00><00><06><4a><41><34><51><52><41> Dx Call utf8
<00><00><00><04><50><4d><35><31> Dx Grid utf8
<00><00><00><00><00><d6><c9><dd> Tx Frequency quint64
<00><00><00><03><46><54><38> Mode utf8 (FT8)
<00><00><00><03><2d><30><31> Report sent utf8
<00><00><00><03><2d><30><32> Report Received utf8
<00><00><00><02><35><30> Tx Power utf8
<00><00><00><03><46><54><38> Comments utf8
<00><00><00><04><4e><61><6d><65> Name utf8
<00><00><00><00><00><25><8d><9d> Date On qint64
<00><49><3f><85>Time On quint32
<01> Timespec 1=UTC quint8
<00><00><00><06><4a><41><34><4a><4f><45> Operatercall utf8
<00><00><00><06><4a><41><34><4a><4f><45> My Call utf8
<00><00><00><08><50><4d><35><34><53><41><38><32> My Grid utf8
<00><00><00><00> Exchange sent utf8
<00><00><00><00> Exchange received utf8
<ff><ff><ff><ff> ADIF Propagation mode utf8
<00><00><00><00>
<00><00><00><00>
<00><00><00><00>
<00><00><00><00>
<00><00><00><00>
<00><00><00><00>
(Heartbeat)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><00> Heartbrat quint32
<00><00><00><06><57><53><4a><54><2d><58> Id utf8
<00><00><00><03> Maximum schema number quint32
<00><00><00><09><33><2e><30><2e><30><2d><72><63><31> version utf8
<00><00><00><06><32><35><30><39><31><35> revision utf8
(Decode)
空のデータが<00><00><00><00>の場合と<ff><ff><ff><ff>の場合があるようです。(Decode)
<ad><bc><cb><da><00><00><00><02> Headder
<00><00><00><02> Decode quint32
<00><00><00><06><57><53><4a><54><2d><58> Id utf8
<01> New bool
<01><21><13><e8> Time qint32
<00><00><00><0e> snr qint32 (+14)
<3f><b9><99><99><a0><00><00><00> Delta time(S) float(serialized as double) (0.1)
<00><00><07><79> Delta frequency (Hz) quint32
<00><00><00><01><7e> Mode utf8 (~)
<00><00><00><0e><43><51><20><4a><46><33><44><43><48><20><50><4d><37><33> Message utf8 (CQ JF3DCH PM73)
<00> Low confidence bool
<00> Off air bool
-----------------------------------------------------------------------------------------------------------------------------
FreeDVのUDPメッセージはWSJT-Xに準拠しているので、WSJT-XとFreeDVの両方に対応したログ中継ソフトを作れそうです。
コメント
(お願い)質問はメールではなく、コメントでお願いします。