イメージ 1

今日はRS-232Cでの無線機周波数読み取りとその読み取り値をDDS34の周波数発発振器のVBのプログラムをマージさせてコーディングとデバッグをした。プログラムもマージだが、メインフォームもほぼ単純にそれぞれをドッキングしたようなものでほんと間に合わせだ。(動作確認が目的ですのであまり気にしてませんHi!)いずれフォームも不要なコンポーネントオブジェクトはいずれ削除し、新たなフォームで作る予定ではいるが、確かではない。
フォームはマージの形でできているが、実際のところはRS-232Cのメインフォームを広げ、広げたところにDDS34と同じコントロールをツールボックスから手動追加しています。こうすることで,RS-232Cのプログラムはそのまま使え、コントロール数の少ないDDS34プログラムの各コントロール番号を変更するだけですむ。しかもプログラムはコピペだ。もっといい方法は、コントロールにはすべて名前をつけておくことで、同じ名前であればプログラムもそのまま使える。要は最初のプログラムの初期設計でどれだけきちんと設計しておくかが後からの改良などの対応時間に差が出るということで、わかっているが、今回は動作確認なのでしかたがないので手間をかけてやることなりました。
実際の動作確認では、エラーが出た。単純にオブジェクトの登録エラーだったが、単体では、問題なく動作していたものがマージ後に動作エラーなので困った。これは単純でstr関数を使わないことで対応できた。一応は解決し動くは動いた。ただし読み取りのデータの変換上の問題なのだが、RS-232Cでの周波数読み取り値は全てテキストで行っていたので、DDS34の周波数設定上の変換で、少数部がまるめられてしまい1KHz以下の100Hz、10Hzが設定されないという問題が発生した。VBの変数型を参考書を首っ引きでいろいろと試したが、どうも変換がうまくいかない。”03.551230”-> 3.551 にしか変換できない。3.55123にしたい
10ヘルツの桁まで設定値がない状態なので、別の方法を考えた。100ヘルツと10ヘルツの桁を別読み取りにしてRITとするのである。つまりメインの値とRIT値を後で加え、読み取り周波数をすべて再現するという方法です。つまり、3.551はメモリし、小数部を230ヘルツをRIT値の0.00023 でさらにメモリしDDS34のデータ設定時に3.551と0.00023を加えもとの3.55123をDDS34の設定値にするんです。上記の方法で10ヘルツ代も問題なくFT-1000MPのダイヤルを動かしたのに連動しDDS34の周波数が設定される様になった。動作は完全なリアルタイムとはいきませんが、タイマーインターバル設定値を極力小さくしてあります。FT-1000MPのCATマークはほぼ、点灯している感じです。ゆっくりメインダイアルを回すとWinrad1.32上のスペクトラムが動いてゆくのがとても面白い。ヤッター!バンザイ!これでWinrad受信部は無線機のメインダイアルと同じ周波数となり、トランシーブ操作が可能になりつつあります。トランシーバーのRX受信用のアンテナ出力も実際に確認しなければ、新しいフォームでこのプログラムも書きなおさなければとまだまだやることが山ほどある。また以前に作成している455KHzSSBの送信部もケースを考えなければ、あれこれとほんとに八方美人的ブログであるが、ご勘弁あれ!
本日のプログラム作成フォームを添付します。to be continue!