新着表示
タイトル
記事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 投稿者により修正されました。】
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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で問題なかったのでマネージャーから指摘されるまで気が付きませんでした。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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> となっていました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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をアップロードしても問題ありません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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"
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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 投稿者により修正されました。】
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSLカード印刷について
: 27654
: 2024/12/01(Sun) 20:05:23
: JA0CCL宮川
> > Jpg×250,1100,400,200,"C:User\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
>
> #Jpg 250,1100,400,200,"C:\Users\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
>
> これでどうでしょう?
> 私も詳しくないので、間違っているかもしれません。
> 画像ファイルのフルパスが不明な時は、その画像ファイルのショートカットを
> 作り、プロパティを開くと判明します。
横から失礼します。
jk2civさん コールサインの後ろにお名前をお願いできますでしょうか。
小川さんの書かれた構文で表示できると思いますが。
civさんの投稿を見てパッと気が付くのが、構文の最初の Jpg×250・・・ですが、JPEG画像ファイルをQSLに表示させるにはここが違いますよね。
ヘルプのオプション⇒QSLカードの印刷⇒QSLの定義に「JPEGイメージの印刷」という項目がありますからじっくりご覧になってくださいね。
(以下当該項目の最初だけのコピー)
#Jpg
デジカメ写真など、JPEG画像ファイル(*.jpg)を読み込み、印刷します。次のいずれかの構文で指定します。
#Jpg x1, y1, Width, Height, "Photo1.jpg"
#Jpg x1, y1, Width, 0, "Photo1.jpg"
#Jpg x1, y1, 0, Height, "Photo1.jpg"
CJVさんの構文との違いは 最初が「#Jpg」 になっていないことと直後の×がよけいだということですよね。ヘルプの記載をじっくりご覧いただいて修正してみてください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSLカード印刷について
: 27653
: 2024/12/01(Sun) 19:23:30
: JF0NFW / 栗林
7M2DTX 小川 OMのご回答で良いかと思います
JPG表示の命令文の構文ミスですね
よって、タイプミスを無くすためには、QSL定義ファイルの編集において
#Jpg 実行したい行の先頭に カーソルを合わせ
(1) 命令(C)をクリック
(2) JPEGイメージの印刷
(3) 写真が保存されているホルダーから表示する写真をクリック(選択)し[ 開く ]クリックで
#Jpgx1,y1,Width,Height,C:\Users\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
上記のように定義文が作成されるので x1,y1,Width,Height, の部分を250,1100,400, 200, と
タイプすれば、ファイルのパス転記ミスも無くせると思いますが・・・いかがですか?
(4) また、作成後、(1)編集(E) (2)印刷イメージ(I) で印刷時のイメージ見られますので
確認、修正が楽にできると思います
※現在HAMLOGの最新バージョンは5.44です バージョンアップされてはいかがですか?
タイトル
記事No
投稿日
投稿者
: Re: QSLカード印刷について
: 27652
: 2024/12/01(Sun) 16:00:22
: 7M2DTX 小川
> Jpg×250,1100,400,200,"C:User\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
#Jpg 250,1100,400,200,"C:\Users\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
これでどうでしょう?
私も詳しくないので、間違っているかもしれません。
画像ファイルのフルパスが不明な時は、その画像ファイルのショートカットを
作り、プロパティを開くと判明します。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
:
QSLカード印刷について
:
27651
:
2024/12/01(Sun) 14:44:14
:
jk2cjy
Turbo HAMULOG/win ver5.41aを使っています。カード印刷は普通に出来るのですが、自分で
写した写真をQSLカード印刷の画面の中に取り込む事が出来ません。写した写真はピクチャーと言うホルダーの中のNikonTransfer2というホルダーに入っています。
QSLカード印刷の編集をクリック、この画面の中に次のように入力すると
Jpg×250,1100,400,200,"C:User\HIDAMORIO\Pictures\NikonTransfer2\009\DSCN001.jpg"
このファイルは開けませんと表示されます。どのように入力すれば、保存されている写真を引き出す事が出来ますか?どなたか教えていただけませんか。よろしくお願いいたします。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!