Turbo HAMLOG/Win 活用相談室


一括表示
タイトル
記事No
投稿日
投稿者
参照先
再びADIFファイルのFT4の記述について
27650
2024/12/01(Sun) 10:45:53
JI1FGX/DU9

ADIFファイルのFT4の記述について

残念ながら、FT4のADIFフォーマットは依然として仕様違反です。
MODEはMFSKであっていますが、本来、SUBMODEとしてFT4がなければだめです。

私のQSLマネージャーに多大な迷惑と修正の手間をかけさせています。

ぜひADIFの仕様書をきちんと読んでいただきプログラムの修正を切に希望します。

HAMLOGが吐き出しているFT4の記述:
RV9UAF20241103090224.9
21312mMFSK
-10-11Asiatic Russia


本来あるべきファイル:
20241103 0902 RV9UAF
;24.921
12M -10 -11 MFSK <
SUBMODE:3>FT4
Asiatic Russia 15


QSLマネージャーはADIF Masterを使って「正しく変換済み」との事ですが仕様違反を修正して
国際的に通用する仕様にしてほしいです。

【2024/12/01(Sun) 10:46:38 投稿者により修正されました。】
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27655
2024/12/01(Sun) 20:48:17
JG1MOU浜田
> 本来あるべきファイル:
> 20241103 0902 RV9UAF
> ;24.921
> 12M -10 -11 MFSK <
> SUBMODE:3>FT4
> Asiatic Russia 15
>
>
> QSLマネージャーはADIF Masterを使って「正しく変換済み」との事ですが仕様違反を修正して
> 国際的に通用する仕様にしてほしいです。

WSJT-Xが吐き出すADIFを見ると、FT8 はありますが、submodeタグがありません。
これって、私のWSJT-Xの設定が悪いのでしょうか?
それとも、WSJT-Xが国際的に通用していない??

追記
FT4で交信した時のWSJT-XのADIFを見たら、確かに
MFSK FT4
となっていました。

【2024/12/01(Sun) 21:10:51 投稿者により修正されました。】
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27656
2024/12/01(Sun) 21:53:17
JG1MOU浜田
相談室書き込みですと変なふうに改行されてますが、以下の定義ファイルでWSJT-Xと
同じようなADIFを出力することができました。
ただ、HAMLOGの仕様上 qso_date_off や qso_time_off は省略しています。
; ------- ADIF出力用の定義ファイル by JG1MOU -----------
; 印刷イメージは機能しない。試し印刷も機能しない。
; #ADIF命令では、次のようにフォルダ指定が可能
; #Adif="D:\Adif_Out.adi"
; #Adif ←フォルダ指定が無ければHamlogフォルダに出力
; #AdifJ ←JARL非会員との交信は出力しない(他は#Adifと同じ)
; -------------------------------------------------------
#Adif="D:\!nW.adi" ; 日付をファイル名にして出力する(D:\2024-09-26.adi)
#Mov $$C="JB1XYZ" ; 【要修正】自局コールサイン
#Mov $$G="PC98" ; 【要修正】自局グリッドロケーター
#Mark="" ; QSL発行済みマークを書き込まない
#Jst2Utc ; JSTはUTCに変換する

#Print 0,0,"!cp!GL"
? Data7 "FT4" ; FT4の場合
#Print 0,0,"MFSKFT4"
? Data7! "FT4" ; FT4以外の場合
#Print 0,0,"!MD"
#Print 0,0,"!HR!MR!DY!DM!DD!TH!TM!Bt!Fr!$$C!$$G"
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27658
2024/12/02(Mon) 19:07:43
JK2XXK/Taka
FT8はMODEの位置付けです。
FT4はMFSKのSUBMODEという位置付けです。
なのでWSJT-Xの挙動は正常だと思われます。

SUBMODEについては、こちらをご参照願います。
https://adif.org/315/ADIF_315.htm#Submode_Enumeration

> > 本来あるべきファイル:
> > 20241103 0902 RV9UAF
> > ;24.921
> > 12M -10 -11 MFSK <
> > SUBMODE:3>FT4
> > Asiatic Russia 15
> >
> >
> > QSLマネージャーはADIF Masterを使って「正しく変換済み」との事ですが仕様違反を修正して
> > 国際的に通用する仕様にしてほしいです。
>
> WSJT-Xが吐き出すADIFを見ると、FT8 はありますが、submodeタグがありません。
> これって、私のWSJT-Xの設定が悪いのでしょうか?
> それとも、WSJT-Xが国際的に通用していない??
>
> 追記
> FT4で交信した時のWSJT-XのADIFを見たら、確かに
> MFSK FT4
> となっていました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27657
2024/12/02(Mon) 07:29:58
JA4JOE 尾中
No.27447にも同じコメントをしましたが、HAMLOGの複合条件検索からのADIF出力では、FT4は FT4 になると思います。
私の環境で、複合条件検索した出力は FT4 になります。やってみました。
9M2COD20241102082328.18210mFT4
-02-09YNorshafarizal Abd RaWest Malaysia, Seremban
OJ02

JI1FGXさんはHAMLOGの複合条件検索から出力されているのではないのでしょうか?

また、浜田さんからのコメントのとおり、QSLカード印刷からのADIF出力でSUBMODEを出力できるのでQSLカード印刷から出力したADIFを使えば良いと思います。
ブログ記事を書いたので参考にしてください。
https://ja4joe.livedoor.blog/archives/27255046.html

今回のJI1FGXさんのコメントは「QSLカード印刷からのADIF出力は難しいから、複合条件検索からのADIF出力でADIFの仕様どおりにSUBMODEに対応すべきだ」というコメントでしょうか?
確かにそのほうが親切だと思いますが。

あと、後学のため教えていただきたいのですが、MODE=FT4 のADIFを使って問題が起こるサービスというのは何でしょう?
eQSL、LoTWはMODE=FT4のADIFをアップロードしても問題ありません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: 再びADIFファイルのFT4の記述について
27659
2024/12/02(Mon) 20:00:04
JI1FGX/DU9

こんばんは

> JI1FGXさんはHAMLOGの複合条件検索から出力されているのではないのでしょうか?

はい複合条件検索を使って出力したものをそのままメールでマネージャーに送っています。

> また、浜田さんからのコメントのとおり、QSLカード印刷からのADIF出力でSUBMODEを出力できるのでQSLカード印刷から出力したADIFを使えば良いと思います。
> ブログ記事を書いたので参考にしてください。
> https://ja4joe.livedoor.blog/archives/27255046.html

浜田さんが書いてくださっているスクリプトをどのようにQSLカード印刷で使うのか理解していません。あどでブログを拝見しますね。

> 今回のJI1FGXさんのコメントは「QSLカード印刷からのADIF出力は難しいから、複合条件検索からのADIF出力でADIFの仕様どおりにSUBMODEに対応すべきだ」というコメントでしょうか?
> 確かにそのほうが親切だと思いますが。

あつかましいお願いだとは思いますがマネージャーに毎月手間をかけさせるのも申し訳なく思っています。

> あと、後学のため教えていただきたいのですが、MODE=FT4 のADIFを使って問題が起こるサービスというのは何でしょう?
> eQSL、LoTWはMODE=FT4のADIFをアップロードしても問題ありません。

そこなんですよ。私もGridTracker2を使ってLoTW,Clublog,eQSLにアップロードしていますがFT4で問題なかったのでマネージャーから指摘されるまで気が付きませんでした。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: 再びADIFファイルのFT4の記述について
27660
2024/12/02(Mon) 20:35:22
JI1FGX/DU9

HAMLOGの話から離れしまいますが、今日一日、JTDXやWSJTXから月単位のADIFファイルを作るプログラムを書いていました。浜田さんへの負担が少なるように(笑)

プログラムはPythonというプログラミング言語で書いています。

動作確認をしたのはWindows11のパソコンですがpython-3.13.0-amd64をダウンロードしてインストールしておく必要があります。

プログラムの動作としてはJTDXからUDPで受け取ったADIFファイルをそのまま指定したフォルダーに書きだすだけです。月単位のファイルの書き出しのタイミングは0時UTCまたはJSTです。

# ------ (log_receiver_Ver2.1.py)
# JI1FGX/DU9 Kouichi Ueno
# 2024/12/02
# ディレクトリは C:\Logs

import os
import socket
import time
from datetime import datetime, timedelta

# UDPの設定
UDP_IP = "127.0.0.1" # JTDXが送信するIPアドレス
UDP_PORT = 2333 # JTDXが使用するポート番号

# ADIFファイルの保存先
LOGS_FOLDER = "C:\\Logs" # Logsフォルダのパス

# Logsフォルダが存在しない場合は作成
if not os.path.exists(LOGS_FOLDER):
os.makedirs(LOGS_FOLDER)

# タイムゾーンの設定
TIMEZONE = "UTC" # "UTC" または "JST" を指定
UTC_OFFSET = timedelta(hours=9) if TIMEZONE == "JST" else timedelta(hours=0)

# 現在の月に基づいてファイル名を生成
def get_adif_filename():
"""現在の月に基づいてADIFファイル名を取得"""
now = datetime.utcnow() + UTC_OFFSET # タイムゾーンを考慮した現在時刻
return os.path.join(LOGS_FOLDER, f"real_time_log_{now.year}_{now.month:02d}.adi")

# UDPソケットを作成
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))

def write_to_adif(data, file):
"""ADIFファイルにデータを書き込む"""
with open(file, 'a') as f:
f.write(data)
f.write("\n") # 各QSOを新しい行で区切り

def process_qso(data):
"""受け取ったデータをADIFフォーマットに変換する"""
# ここでは仮にJSON形式のデータが送られてくると仮定しています
# GridTracker2が送信するデータ形式に合わせて修正する必要があります
qso_data = data.decode('utf-8') # 文字列としてデコード
adif_data = f"{qso_data}" # 簡単なADIF形式に変換
return adif_data

print(f"Listening for UDP packets on {UDP_IP}:{UDP_PORT}...")

current_file = get_adif_filename() # 初期ファイル名を設定
last_checked_month = (datetime.utcnow() + UTC_OFFSET).month # 最後にチェックした月を保持

while True:
data, addr = sock.recvfrom(1024) # データを受信
if data:
print(f"Received message from {addr}: {data}")
adif_data = process_qso(data)

# 現在の月が変わった場合、ファイル名を更新
current_month = (datetime.utcnow() + UTC_OFFSET).month
if current_month != last_checked_month:
last_checked_month = current_month # 月を更新
current_file = get_adif_filename() # 新しい月のファイル名を取得
print(f"Switched to new file: {current_file}")

# ADIFファイルにデータを書き込む
write_to_adif(adif_data, current_file)

time.sleep(1) # 少し待ってから次のデータを受信




' プログラムをWindowsを起動したときにバックグラウンドで動かすためのスクリプト
'----------(start_log_receiver.vbs)
' start_log_receiver.vbsまたはショートカットをスタートアップフォルダーに置く
' スタートアップフォルダーは WindowsKey+Rに「shell:startup」と入力するとフォルダーが開きます

Set objShell = CreateObject("WScript.Shell")
objShell.Run """C:\Users\kueno\AppData\Local\Programs\Python\Python313\pythonw.exe"" ""C:\Users\kueno\log_receiver_Ver2.1.py""", 0, False

【2024/12/02(Mon) 22:03:15 投稿者により修正されました。】
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27661
2024/12/02(Mon) 20:44:19
JG1MOU浜田
修正版をアップしました。使ってみてください。
https://hamlog.sakura.ne.jp/mou/index.html

> 浜田さんが書いてくださっているスクリプトをどのようにQSLカード印刷で使うのか理解していません。あどでブログを拝見しますね。

QSLカード印刷の機能を使って、印刷はせず、ADIF出力するものです。
レアケースの場合はこの機能を使っていただければカスタマイズできますので、かなり応用が
可能と思っています。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27662
2024/12/02(Mon) 20:59:50
JK2XXK/Taka
> 修正版をアップしました。使ってみてください。
> https://hamlog.sakura.ne.jp/mou/index.html
>
> > 浜田さんが書いてくださっているスクリプトをどのようにQSLカード印刷で使うのか理解していません。あどでブログを拝見しますね。
>
> QSLカード印刷の機能を使って、印刷はせず、ADIF出力するものです。
> レアケースの場合はこの機能を使っていただければカスタマイズできますので、かなり応用が
> 可能と思っています。

> 修正版をアップしました。使ってみてください。
> https://hamlog.sakura.ne.jp/mou/index.html
>
> > 浜田さんが書いてくださっているスクリプトをどのようにQSLカード印刷で使うのか理解していません。あどでブログを拝見しますね。
>
> QSLカード印刷の機能を使って、印刷はせず、ADIF出力するものです。
> レアケースの場合はこの機能を使っていただければカスタマイズできますので、かなり応用が
> 可能と思っています。

これで試してみて下さい(LoTWへのアップロードを念頭に書いてあります)。
検証はしていませんが、My定義ファイルを元に作ったので動くと思います。
基本的な使い方は、紙QSLの印刷と同じです。

(1) 以下の定義文をどこかへファイルとして保存。拡張子は「.qsl」とすること
(2) HAMLOG オプション>QSLカード印刷
(3) 次の設定をおこなう
・印刷順は「入力順」のラジオボタンをON
・「連続印刷」にチェックを入れる
・「未発行局を印刷」のチェックを外す
(4) 「開始」をクリック
(5) HAMLOGフォルダにADIFが生成される

この方法だと、出力済みレコード番号をHAMLOGが記憶してくれるので、
複合条件印刷のようにレコード番号を手動で指定する必要がありません。
また新たにSUBMODEが必要となるモードを運用するようになったら、
定義ファイルを参考に自分で好きなように追加することで即座に対応できます。
MOUさんがおっしゃるように、このやり方は応用がかなり効きます。

#SUBMODEに関する大本営発表(hi)はこちらで
https://adif.org/315/ADIF_315.htm#Submode_Enumeration


; ------- ADIF出力用の定義ファイル by JG1MOU -----------
; 印刷イメージは機能しない。試し印刷も機能しない。
; #ADIF命令では、次のようにフォルダ指定が可能
; #Adif="D:\Adif_Out.adi"
; #Adif ←フォルダ指定が無ければHamlogフォルダに出力
; -------------------------------------------------------
#Adif

; ===== Config =====
#Mov $$N = "JI1FGX/DU9"; 本定義ファイルの対象とするコールサイン
#Mov $$O = "MSC"; 地域略称
#Mov $$P = "PJ18wf"; グリッドスクエア

; ===== QSO_DATE・TIME_ON・CALL・BAND =====
#Jst2Utc
#Mov $$A = "!DY!DM!DD!TH!TM!cp!Bt"

; ===== MODE・SUBMODE =====
#Mov $$B = "!MD"
? nData7 "C4FM,DMR,DSTAR"
#Mov $$B = "DIGITALVOICE!MD"
? nData7 "FT4,JS8,Q65"
#Mov $$B = "MFSK!MD"
? nData7 "JT65A,JT65B,JT65B2,JT65C,JT65C2"
#Mov $$B = "JT65!MD"
? nData7 "PSK31,PSK63,PSK125"
#Mov $$B = "PSK!MD"
? nData7 "QRA64A,QRA64B,QRA64C,QRA64D,QRA64E"
#Mov $$B = "QRA64!MD"

; ===== STATION_CALLSIGN =====
#Mov $$C = "!$$N"

; ===== MY_CQ_ZONE・MY_ITU_ZONE・MY_DXCC =====
#Mov $$D = "2750375"

; ===== MY_STATE・MY_GRIDSQUARE =====
#Mov $$E = "!$$O!$$P"

; ===== 出力する =====
#Print 0,0,"!$$A!$$B!$$C!$$D!$$E"

; ===== End of File =====
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27663
2024/12/02(Mon) 21:07:28
JK2XXK/Taka
> ; ===== 出力する =====
> #Print 0,0,"!$$A!$$B!$$C!$$D!$$E"

ここ、を入れ忘れました(汗

#Print 0,0,"!$$A!$$B!$$C!$$D!$$E"

として下さい m(_ _)m
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27664
2024/12/03(Tue) 07:18:03
JA4JOE 尾中
> 修正版をアップしました。使ってみてください。
> https://hamlog.sakura.ne.jp/mou/index.html

浜田さん
対応いただきありがとうございます。
複合条件検索からのADIF出力で、MODE=MFSK/SUBMODE=FT4になるのを確認しました。

ついでに、Q65、DSTAR、C4FM、FreeDVにも対応していただけると嬉しいです。
厚かましいお願いで申し訳りません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27665
2024/12/03(Tue) 20:50:04
JG1MOU浜田
> ついでに、Q65、DSTAR、C4FM、FreeDVにも対応していただけると嬉しいです。
> 厚かましいお願いで申し訳りません。

一応やってみましたけど、JK2XXK/Takaさんの定義ファイル出力のほうがFBです。Hi
https://hamlog.sakura.ne.jp/mou/index.html
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27667
2024/12/04(Wed) 07:25:32
JA4JOE 尾中
浜田さん
早々に対応いただき、ありがとうございます。
試してみましたが、SUBMODEが出力されないMODEがありました。
DSTAR、C4FM、FREEDVがMODE=DIGITALVOICEのみで、SUBMODEがありません。
テスト用に入力したHAMLOGのログと複合条件検索からのADIF出力の画像を添付します。
よろしくお願いします。
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27669
2024/12/04(Wed) 10:25:52
JG1MOU浜田
> 浜田さん
> 早々に対応いただき、ありがとうございます。
> 試してみましたが、SUBMODEが出力されないMODEがありました。
> DSTAR、C4FM、FREEDVがMODE=DIGITALVOICEのみで、SUBMODEがありません。
> テスト用に入力したHAMLOGのログと複合条件検索からのADIF出力の画像を添付します。
> よろしくお願いします。

まったく動作検証していなかったもので、すみません。
簡単だったので、たぶんこのコードで大丈夫なはず、と思っていました。
今度はちゃんと動作確認をしました。
https://hamlog.sakura.ne.jp/mou/index.html
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: 再びADIFファイルのFT4の記述について
27676
2024/12/05(Thu) 10:08:42
JA4JOE 尾中
浜田さん
12月4日版の動作確認をしました。問題ありませんでした。
ありがとうございました。

> まったく動作検証していなかったもので、すみません。
> 簡単だったので、たぶんこのコードで大丈夫なはず、と思っていました。
> 今度はちゃんと動作確認をしました。
> https://hamlog.sakura.ne.jp/mou/index.html
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop