一括表示

QSOデータの共有オープンで 投稿者:JL1GYY もき 

FT8を始めてGLも増えてきたのもあり昔作ったプログラムに
ディジタルのモードの追加を含め改定をしています。
基本的に読み込みだけなので共有オープンも便利かと思い
使用できる様にしてみたのですが
今まではGLのインデックスを自身のプログラム実行時に作成して
オープンする様にしていたのですが共有時は
インデックス作成は出来ない(?)(共有時はもちろん作成はしたくない)
のですが何か良い手法等があれば教えて頂きたいと思い
投稿させて頂きました。

2021/08/29(Sun) 10:07:21  [No.928]


Re: QSOデータの共有オープンで 投稿者:JA2BQX 太田  《URL》  

こんばんは。

> 今まではGLのインデックスを自身のプログラム実行時に作成して
> オープンする様にしていたのですが共有時は
> インデックス作成は出来ない(?)(共有時はもちろん作成はしたくない)
> のですが何か良い手法等があれば教えて頂きたいと思い
> 投稿させて頂きました。

念の為に使用言語を書いて下さい。
「共有オープン」との事ですがどういう環境下で何をするソフトを作成中かが分かりません。
1台のPCで Hamlog を同時に2ケ起動なのか、ネットワークでつながった複数PCで起動している Hamlog なのか...とか。

参考までに Th527api の HAMLOG50.txt に下記の記載があります。

------------------------------------------------------------------------------
BOOL WINAPI SetDbsShare(const int i);
function SetDbsShare(const i: Integer): Boolean;
概 要:HamlogOpen()を呼び出す前に、共有オープンの設定をする。
引 数:i
1以上を指定すると共有オープン。0で現在の状況を得るだけ。
戻り値:Trueが返れば共有モード。Falseで非共有(排他)

------------------------------------------------------------------------------

2021/08/29(Sun) 19:23:26  [No.929]


Re: QSOデータの共有オープンで 投稿者:JL1GYY もき 

delphiを使用しています。
動作していたプログラムに共有関係を足しました。
HAMLOG自体の起動は1つで自分で作成したソフトでの話になります。
ksetの値も確認しており共有モードの設定もできています。
GLのインデックス作成がHAMLOG本体で手動の為
今まで自分のプログラムでインデックス作成を
行っていましたが共有オープンをするとインデックスの作成で
エラーとなるので共有時はインデックスの作成を回避していますが
共有時にインデックスが構築できないので何か良い手法があればと
思った次第です。

2021/08/29(Sun) 20:36:03  [No.930]


Re: QSOデータの共有オープンで 投稿者:JA2BQX 太田  《URL》  

こんにちは。

コードの提示をして下さい。
「言葉」だけでの説明では理解できない部分があります。

「共有時のインデックスの作成」部分のコードと、その時の条件。
「環境設定」での「QSOデータ共有」の設定(有り、無しを変えてみて)、
ソフト側で Hamlog_Open をする/しない....と条件を変えてみて
Hamlog は起動している/いない....と条件を変えてみて...など。


私のVB2010のテストでは上記の条件を色々組み合わせてもGLのインデックス作成は出来ますが...。

2021/08/30(Mon) 09:27:22  [No.931]


Re: QSOデータの共有オープンで 投稿者:JL1GYY もき 

アドバイス有難うございます。
何か問題がありそうなので土日になりますが
もう一度条件を振って確認してみます。
浜田OMから別の手法を書いていただいたので
何とかなりそうです。

2021/08/30(Mon) 19:07:15  [No.933]


Re: QSOデータの共有オープンで 投稿者:JL1GYY もき 

HELPに共有でQSOデータが他でOPENされている場合は
インデックスの再構築は出来ないと記載されていました。
舌足らずの上、出来ない内容の質問をしてしまい
お手数をおかけして申し訳ありませんでした。

2021/09/04(Sat) 15:22:48  [No.935]


Re: QSOデータの共有オープンで 投稿者:JG1MOU浜田 

共有の場合はあまりテストしたことが無いのですが、MakeIndex()を
呼び出す前に、HamlogClose()を呼び出す必要があると思います。

var cdsBff: TCOPYDATASTRUCT;
cdsBff.cbData := 0;
cdsBff.dwData := 27; // HamlogClose
SendMessage(ThwHwnd, WM_COPYDATA, Handle, LPARAM(@cdsBff));
MakeIndex();
cdsBff.dwData := 28; // HamlogOpen
SendMessage(ThwHwnd, WM_COPYDATA, Handle, LPARAM(@cdsBff));

うまくいかなかったらごめんなさい。
hQSLでは、共有モードでない場合はこのコマンドを使ってHAMLOGに
フィイルを閉じさせ、QSOデータを操作しています。

2021/08/30(Mon) 16:37:41  [No.932]


Re: QSOデータの共有オープンで 投稿者:JL1GYY もき 

サンプルプログラム有難うございます。
WM_COPYDATAを使用する事は考えられませんでした。
元プログラムに何かありそうなので今度の土日にそちらを
確認したうえで実験してみます。
ありがとうございました。

2021/08/30(Mon) 19:12:01  [No.934]


Re: QSOデータの共有オープンで 投稿者:JL1GYY もき 

HELPに記載されていました。
出来ない内容の質問をしてしまい
お手数をおかけして申し訳ありませんでした。
サンプルを書いて頂いたのですが
HAMLOG以外のプログラムの起動状態や他PCからの状態の判断が出来ないので
GLインデックスの構築は考えない様にします。

2021/09/04(Sat) 15:23:45  [No.936]