コントロールボックスがだいたい動きそうなので、久々にプログラムを起動してUSBI/Oの出力の確認をしていたところ、バグと言うより勘違いでのエラーが見つかった。USBI/Oの4出力を16進に変換して出力を制御しているのだが、3.5MHzではリレー3つの出力論理表上数値で13(10進)でないといけない。16進では”&HD”、2進では 1101(2)である。ここが &HBとなっていた。確認してよかった。以下対応を下記します。
3のポートは単なる16進変換用で常にHのままです。使うのは2,1,0のポートです。
ポートのならびは 3,2,1,0の順です。

7MHz Normal  [H H H H] 1111(2) &HF
7MHz High [H H H L] 1110(2) &HE
3.5MHz Normal [H H L H] 1101(2) &HD
3.5MHz High [H H L L] 1100(2) &HC
3.7MHz Normal [H L L H] 1001(2) &H9
3.7MHz High [H L L L] 1000(2) &H8

以下プログラム訂正部
Dim inRet As Boolean
' intDat(0) = Val("&H" + "B") ’出力間違い 13 2進 1101 で D
intDat(0) = Val("&H" + "D")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L 
手直しして動作確認しOKとなった。
回路はLowアクティブなので少しややこしいが、PNPのトランジスタで受けてI/O出力が"H"でOFFし、"L"でONする(12V出力)回路だ。この回路も組む必要がある。電流は電源の電流を見た限り80mA程度なので、Icがそこそこ流せるトランジスタであれば使える。リレーのキックバック吸収のダイオードもいる。意外とやることがまだたくさんある。
動作確認して思ったのだが、プログラムからハムログを起動すると周波数制御のフォームがバックに消えてしまうが、実際のQSOを考えるとハムログの周波数をリアルタイムで読み込んでいるので特にフォーム上のボタンから手動操作で周波数を変える必要性もないのでこのままとする。またプログラム上からハムログを閉じれない。ここいらあたりが少々気になる。フォーム上に起動したままの状態が残る。ハムログが閉じる時の情報を得られればプログラムで処理対応できるのだが...いずれ久々にプログラムを動かしたが、問題なく動くので安心した。USBのポートはマウス、RS232C、USBI/Oと計3つほど使用する。意外とパソコンの周辺はケーブルでワイヤワイヤしている???USBハブでも一つさして、すっきりさせようかと思う。久々にプログラムを開いたが、案外と前のプログラムは忘れているものだ。これなんだっけが意外と多くある。もう少しプログラム以上にコメントを入れねばと思った次第である。