HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者
参照先
C++ JTDX
837
2018/02/01(Thu) 10:49:27
JA2BQX 太田

こんにちは。教えて下さい。

JTSDK で JTDX のソースのビルドにトライしています。

logqso.h に Th527api の HAMLOG50.H を追記してのビルドはOKです。

logqso.cpp に
Hamlog が起動していない時にQSOデータを THW_append() にて追加したいのですが
最初の HamlogOpen(0, TThLog, *p, 0) でエラーが出ます。
C:\Hamlog\Hamlog.hdb をポインタでセットする必要があると思いますが
この辺りからのサンプルコードをお願い出来ますか?

その後はHamlog が起動している時の事もやりたいですが。
 
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: Th527API.zip
836
2018/01/02(Tue) 05:25:27
JA2BQX 太田

浜田さん、早速の修正ありがとうございました。

> さっそく修正しました。
> 入力ウインドウのチェックボックスの説明と定義を加えただけです。

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

Re: Th527API.zip
835
2018/01/01(Mon) 20:57:34
JG1MOU浜田
> [ Tubo HAMLOG 最新版 ] のページの下記の件ですが
> ダウンロードしたファイル名が Th524api.zip となっています。

JA2BQX太田さん、明けましておめでとうございます。
今年もよろしくお願いします。

あらー、旧ファイルをリンクしてましたね。
さっそく修正しました。
入力ウインドウのチェックボックスの説明と定義を加えただけです。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Th527API.zip
834
2018/01/01(Mon) 17:43:36
JA2BQX 太田

明けましておめでとうございます。
今年もよろしくお願いします。

[ Tubo HAMLOG 最新版 ] のページの下記の件ですが
ダウンロードしたファイル名が Th524api.zip となっています。
内容は HamlogMs.txt にコマンド 30 が追加されているので改修版と思います。
ダウンロード後にリネームすれば実害は無いですがお時間のある時に
修正して頂けるとFBかと思います。
 
○ Th527API.zip HAMLOG50.DLLの仕様書 2017/12/27
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: memcpy()
833
2017/11/10(Fri) 19:25:53
JA7UDE 大庭
浜田さん、こちらこそお世話になっております。そうですか、Borland C++ 5.0をお使いということで、わたしも、簡単なプログラムにはC++ Builder 5.0を使っています。ずいぶん古いものになってしまいましたが、動作が軽くて、なかなか手放せません。memcpyは、領域をオーバーランしたり、コピー元とコピー先が重なっているとまずいのですが、手軽なので、つい使ってしまっています。また、いろいろご指導ください。

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

Re: memcpy()
832
2017/11/04(Sat) 22:11:39
JG1MOU浜田
> これはコンパイラか標準ライブラリにバグがあるということでしょうか?自分はmemcpy()をよく使うもので、心配になりました。

大庭さん、その節は大変お世話になりました。

これは、私が使っている大昔の Borland C++ 5.02Jでの話です。
なんせ1997年製ですから。Hi

バグではないと思うのですが、最適化の過程でおかしなコードが生成
されているのか、メモリリークなのか、わかりません。
私の場合は、数ヶ月に一度、お目にかかれるかどうかのエラーです。

人によっては、ハムログが落ちてしまうそうですので、動作環境に
よるみたいです。

Visual C++に移植すれば問題なくなるのかもしれませんが、定年後に
時間的な余裕ができたら、遊んでみたいと思ってます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: memcpy()
831
2017/11/04(Sat) 21:39:31
JA7UDE 大庭
浜田さん、こんばんは、

これはコンパイラか標準ライブラリにバグがあるということでしょうか?自分はmemcpy()をよく使うもので、心配になりました。

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

memcpy()
830
2017/11/04(Sat) 19:22:39
JG1MOU浜田
HAMLOG50.DLLからのエラーでは、コンパイラの最適化によりmemcpy関数
からエラーが出ているような気がしまして、気のせいかもしれません
けど、memcpy()をまったく使わないようにしてみました。
メモリブロックをコピーする関数です。

DOS版のときは、Cのソースコードにアセンブラのストリング命令を
入れて、一気にコピーしていたのですが・・・
 asm sub si, ax
 asm sub di, ax
 asm shr cx, 1
 asm rep movsw  ・・・みたいな・・・

今の32ビットコンパイラでは、別途アセンブラを用意しなければ
ならないので、インラインアセンブラが使えません。

そこで、DWORDにキャストして4バイトずつコピーしてやれば少し速い
かなぁーなんて。 次のように・・・
void __fastcall StrLCopy(char *dest, const char *src, int Count)

{ while (Count >= sizeof(DWORD)) 
{  *(DWORD *)dest = *(DWORD *)src; // 4バイトコピー
  dest += sizeof(DWORD);
  src += sizeof(DWORD);
  Count -= sizeof(DWORD);
 }
 while (Count > 0) { // 残り3バイト以下
  *dest++ = *src++;
  Count--;
 }
 *dest = (char)0x00;}



結果、一億回ほどループさせて呼び出してみると、少し速いような気が
しました。
ま、エラーが出なくなれば、それでよろし。
http://hamlog.no.coocan.jp/mou/index.html

以上、晩酌プログラミングでした。Hi
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: JTDX の表示文字列の取得
829
2017/11/04(Sat) 12:39:52
JA9AOB 銅子
> 私も、同じようなことを考えて、WSJT_Xの画面内に表示されている文字列を別のソフトに転送したいと思いましたが、、、できませんでした。Windows用として作られたソフトなら、各エディットボックスのハンドルが分かるので、取り出せるし、書き込むことも出します。しかし、WSJT_Xはリナックスか何か良く分かりませんが、全く違ったプログラミングソフトを使っているのでしょうかね??? と言うことで、JTDXも同じく読み書きできそうにありませんね。
> 何か方法が見つかったら、お教え下さいな。
私も最近JT65からFT8モードに運用を移行しました。このため、WSJT-Xを使わざるを得なくなり何とか取り込みを検討していましたが、spy++ではハンドル等が認識出来ませんでした。やむなく、WSJT-Xの画面データをCopyして(クリップボードを経由)このデータを100msec程度の間隔で見に行く手法で取り込んでいます。取り込めれば、後は工夫次第で結構いけるかも。私の場合は、Callと認識出来るデータを含む場合のみ取り込み他は無視するようにしています。他の部分でCallをコピーペストを使用しようと思うと横取りされる不便も有りますが。
JTDXの場合も全く同じ手法でいけますよ。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: QRコード
828
2017/11/04(Sat) 10:56:35
JA2BQX 太田
JP7CZE 川辺さん,こんにちは。

QSL定義ファイルの中ではなかなか思う様には処理が出来ないので。

例えば , !cp で取り出した
RI0C/2 => RI0C_2 にする時に RI0C と 2 を取り出せたでしょうか?  VB2010上ではなくてです。 置換命令はあったかな....? !
C1 は JARL枠1文字目は全角文字ですし、コールサインの桁数も直接は取れないですし。

#Jpg 命令で !cpLeft_!cpRight 等と出来れば良いですが。

いずれにしてもレコード番号の方が簡単です。


現在はレコード番号(川辺さんがhamlog相談室にて書かれていました)でjpgを作るようにして Hamlog.hdb からレコード範囲を決めて出力テストしています。

白紙横.QSL の最後に下記の命令を追加。
#Jpg x50,y700,240,240,"D:\Thw_QRCode\jpg\!NO.jpg"

予め同じ範囲を読みだしてQRコードのjpgを出力・保存して置く。
同一範囲をQSLカード印刷時にjpgを読み込み印刷。

左下にQRコードが印刷出来ました。 イメージを添付しました。

1枚QSLに複数データには対応していません。(だいぶ面倒そうなので)

Hamlog.hdb との照合処理は自作ソフトからコピーしてきたら
まだエラーが多いので修正に苦労中。
変数名等が統一されていないので新たに、処理を書いた方が早いかも?
pagetop