一括表示
タイトル
記事No
投稿日
投稿者
参照先
:
lazarus-1.6.4 , Pascal
:
788
:
2017/08/01(Tue) 10:25:11
:
JA2BQX 太田
:
こんにちは。
下記についてご指導頂けると幸いです。
lazarus-1.6.4 , Pascal にて JT65-HF-HB9HQX-Edition 4.6.9 のソースに追加して
Hamlog へのQSOデータを直接登録(転送)しようとしています。
Hamlog を起動しておいてデータ入力欄への転送は出来ました。
Hamlog が起動していない状態での転送でエラーが出て躓いています。
Pascal は初めてですのであちらこちらを調べながらですが
SetThBuffer() の設定に間違いがあるでしょうか?
Hamlog50.pas には THDLL2VB.DLL 関係の記載は無いです。
THW2VBNET.dll を Pascal で使う THW2VBNET.pas も欲しいです。
コーデイングの抜粋
procedure SetThBuffer(var Th: TThLog; const s: PChar; const n: Integer);
StdCall;
//implementation
const
HamlogDllNameVB = 'Thdll2Vb.dll';
procedure SetThBuffer;
external HamlogDllNameVB;
sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0);
//1ケでもデバッガーエラーが出る。
//「GDB にコマンドが送れません」が出る。
SetThBuffer(th,'JA2BQX',1);
(改行位置が乱れて醜いですが....)
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: lazarus-1.6.4 , Pascal
: 790
: 2017/08/01(Tue) 22:07:28
: je6lao
こんばんは、長野です。
Hamlog起動時は期待通りにデータが転送できていて、Hamlog未起動時に動作しないのなら、Hamlogの起動に問題があるのではないでしょうか。
文面からはどのような症状なのかよくわかりません。
Hamlog未起動時は、
1.HamlogOpenで起動。
2.SetThBufferでデータ転送
という手順なのでしょうか?
まず切り分けましょう。
2.SetThBufferをコメントアウトしたとき、Hamlogは正常に起動しますか。また、データ入力画面も開いていますか?
次に
sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0);
で、sdにSUCCESSが戻ってきていますか。この判定が無いようですが大丈夫ですか。
正常に起動しているのであれば、
1.起動してからSetThBufferで書き込むまでに、waitは必要ないのでしょうか。Hamlogが完全に起動してからSetThBufferで転送していますか?
症状がよくわからないので、思いつくまま書きました。
的を射ていないようでしたらごめんなさい。
> こんにちは。
> 下記についてご指導頂けると幸いです。
>
> lazarus-1.6.4 , Pascal にて JT65-HF-HB9HQX-Edition 4.6.9 のソースに追加して
> Hamlog へのQSOデータを直接登録(転送)しようとしています。
>
> Hamlog を起動しておいてデータ入力欄への転送は出来ました。
> Hamlog が起動していない状態での転送でエラーが出て躓いています。
> Pascal は初めてですのであちらこちらを調べながらですが
> SetThBuffer() の設定に間違いがあるでしょうか?
>
> Hamlog50.pas には THDLL2VB.DLL 関係の記載は無いです。
> THW2VBNET.dll を Pascal で使う THW2VBNET.pas も欲しいです。
>
>
> コーデイングの抜粋
> procedure SetThBuffer(var Th: TThLog; const s: PChar; const n: Integer);
> StdCall;
>
> //implementation
> const
> HamlogDllNameVB = 'Thdll2Vb.dll';
> procedure SetThBuffer;
>
>
> external HamlogDllNameVB;
>
> sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0);
>
> //1ケでもデバッガーエラーが出る。
> //「GDB にコマンドが送れません」が出る。
>
> SetThBuffer(th,'JA2BQX',1);
>
> (改行位置が乱れて醜いですが....)
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
791
:
2017/08/02(Wed) 05:32:39
:
JA2BQX 太田
:
長野さん、こんにちは。ご無沙汰しています。 回答ありがとうございます。
> Hamlog起動時は期待通りにデータが転送できていて、Hamlog未起動時に動作しないのなら、Hamlogの起動に問題があるのではないでしょうか。
今回は Hamlog未起動の状態で転送したいです。
> Hamlog未起動時は、
> 1.HamlogOpenで起動。
> 2.SetThBufferでデータ転送
> という手順なのでしょうか?
「1.HamlogOpenで起動。」は無い状況での動作です。
> 2.SetThBufferをコメントアウトしたとき、Hamlogは正常に起動しますか。また、データ入力画面も開いていますか?
SetThBufferをコメントアウトしたとき、ソフトからはHamlogは起動させません。
THW_append() にて Hamlog.hdb に直接QSOデータの追加をしたいので。
> sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0);
>
> で、sdにSUCCESSが戻ってきていますか。この判定が無いようですが大丈夫ですか。
sd は ゼロ が戻ってきています。
Hamlog50.bas には下記の記載があるので大丈夫と思います。
' 各関数が返すエラーナンバー
Public Const SUCCESS = 0 ' 成功
> 正常に起動しているのであれば、
> 1.起動してからSetThBufferで書き込むまでに、waitは必要ないのでしょうか。Hamlogが完全に起動してからSetThBufferで転送していますか?
Hamlog が起動しデータ入力画面も開いている時には HamlogMs.txt に記載のある
cmmd = 15
●コマンドを数値で指定し、Turbo HAMLOG/Winの入力ウインドウに文字列を送る...でやっています。
sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0); の前に
sc:= SetDbsShare(1); を追加しましたが、やはりSetThBufferでエラーが出ます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
792
:
2017/08/02(Wed) 07:39:44
:
JA2BQX 太田
:
そもそも THDLL2VB.DLL はVB用なので SetThBuffer を使う殊に問題がある?
SetThBuffer の定義、使い方が間違えている?
あれこれ考えている内に下記のテストをしたらOKでした。
StrPCopy(Th.QSO.Calls,'JA2BQX'); で全項目をセットして
sd := THW_append(Th, IsQSOdata, 0); でエラーは出なくてコンパイル成功、メインウインドウも出て [転送]ボタンを押して
Hamlog に転送されました。
ありがとうございました。 お騒がせしました。
後は cty.dat を分解しコールサインから Entity を取得し Hamlog の code を確定する処理を追加します。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: lazarus-1.6.4 , Pascal
: 793
: 2017/08/02(Wed) 10:04:13
: je6lao
解決なさったようで安心いたしました。
'hamlog50.pas'のpathを通し、usesに追加しておけば、
THDLL2VB.DLLは使わなくてもいいのではないでしょうか。
> そもそも THDLL2VB.DLL はVB用なので SetThBuffer を使う殊に問題がある?
>
> SetThBuffer の定義、使い方が間違えている?
>
> あれこれ考えている内に下記のテストをしたらOKでした。
>
> StrPCopy(Th.QSO.Calls,'JA2BQX'); で全項目をセットして
> sd := THW_append(Th, IsQSOdata, 0); でエラーは出なくてコンパイル成功、メインウインドウも出て [転送]ボタンを押して
> Hamlog に転送されました。
>
> ありがとうございました。 お騒がせしました。
> 後は cty.dat を分解しコールサインから Entity を取得し Hamlog の code を確定する処理を追加します。
>
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
794
:
2017/08/02(Wed) 11:00:26
:
JA2BQX 太田
:
長野さん、お手数をお掛けしました。
> 解決なさったようで安心いたしました。
階段を1段登れました。 VB6 ( もう長く VB2010 ですが ) と違って変数のスコープで悩まされます。グローバル変数、関数になる積りが別の *.pas で認識してくれなかったり。
IF 文、 For 文の制御構造も長く VB 環境だったので思うように行きません、 Hi
別に Pascal に乗り換える訳では無いのですが、 JTDX , WSJT-X のソースも修正、コンパイルにも挑戦したいと
思っていますがまだこちらはウインドウ( Form1 等 )を修正したりが反映されるかのテストもまだです。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!