すりごまの鯖缶?ブログ 2缶目

鯖管のことだったりプログラミングのことだったりマイクラのことだったり

生きてます

死んでました。
違います。就活してました。
そして、無事内定もらえたので思う存分遊びます。

今回は私の数ある趣味の一つ無線から、TurboHAMLOGのデータ解析をしたいと思います。


TurboHAMLOGは言わずと知れた交信ログソフトですが、データ解析には専用のDLLを用いるのみで構造は公表されておりません。
そこで今回、以前から作りたかった交信ログソフトの開発をすべく、手始めにTurboHAMLOGのログデータの解析をしてみました。

結果はこのようになっております。(Stirling構造体形式)

struct ListColumn
{
	byte ColumnName[11];
	byte Nazo[5];
	dword DataSize;
	dword Reservation[3];
} ;
struct QSOData
{
	byte DATAHEADER;
	byte CALLSIGN[6];
	byte IGN[14];
	DWORD DATE;
	DWORD TIME;
	byte CODE[6];
	byte GL[6];
	byte QSL[3];
	byte Flag[2];
	byte HIS[3];
	byte MY[3];
	byte FREQ[7];
	byte MODE[4];
	byte NAME[12];
	byte QTH[28];
	byte REMARK1[54];
	byte REMARK2[54];
} ;
struct TurboHAMLOG
{
	DWORD Version;
	dword LogCount;
	DWORD Version;
	DWORD Reservation[5];
	ListColumn Columns[16];
	byte QSODatasHeader;
} ;

コピペする場合は最終行を空行にしておいてください。(編集中ちょっと迷った)
大体のものはこのような構造になっているようです。
ただ、問題として、QSODataは各変数は可変長で、各変数の長さはListColumnに入ってます。
順番からすると TurboHAMLOG→(ListColum)→QSOData→1A となっております。
QSODataのDATEとTIMEはデータ位置的にはあってるはずなののですが、データが謎で良くわからないです。
FLAGは3bit目がCQ、4bit目がDXっぽいです。
ってことでした。
さて、Twitterクライアントもやらないと。。。