記 2009年06月12日〜 ja3npl
別項のハードウェア・本体;60mhz_db_scope を制御するパソコン・ソフトです。
環境は、VB.NET2002、XpPro、900MHz 512MBのノートパソコンです。
(追記)Sep-20-2017 新しく、Windows 10 用に、パソコン側ソフト;60mhz_db_scope_v5 を作りました。
詳しくは、次をご覧ください。
"Visual Basic.Net...で手作りソフト"
その9.60MHzスペクトラム・アナライザー用制御ソフト(Windows 10用) (2017/09/20)
左は、クリック、別ウィンドウ拡大です。画面の輪郭は、518x448ピクセル、波形表示部は300x300 です。
VB.NETのコード・リストです。1,800行弱。Microsoft Word に貼り付けてあります。
クリックで、別ウインドウ、テキスト表示です。
左をクリックすると、ダウンロードのウィンドウとなります。
ダウンロードのファイル名は、60mhz_db_scope_v30.lzh、101KBです。
COMポートを使っての、パソコンと、ハード側マイコン間の通信です。19200,n,8,1 です。パソコン側から周波数スイープのデータとアッテネータ等設定のデータを送信します。ハード側マイコンは、アッテネータ等の設定をし、スイープ巾の1/300のステップで、周波数を変更します。変更の度に、db値を採取し、パソコンにデータを返信します。合計301個のデータを送り終えると、ハード側マイコンは、待機状態になります。
パソコンは、301個のデータに達すると、表示画面に、波形を書込みます。続いて、周波数スイープのデータ等を、送信して、繰り返しします。
なお、次のやり方も、有りますが、表示が遅く、今回は採用しませんでした。
パソコンから、周波数値を一つだけ送信する。ハード側マイコンは、その周波数で測定値を得て、返信して待機する。次の周波数値をパソコンから発信する..を繰り返すやり方です。ソフトの構成が大変シンプルになります。これを実験した所、301点のデータを得るのに、最速で3秒ほど掛かりました。時間を要しているのは、@USB、UARTでの通信時間、A測定の時リンギング防止の為の待機時間、B16ビット・マイコンでの32ビット数値計算の時間です。
私のパソコンは、USB1.0なので、これをUSB2.0にすれば、16ビット・マイコンを32ビット・マイコンにすれば、早くなると思われます。UART部のフォト・カップラーがネックになるかも知れません。
ソース・コードの抜粋では、次の3行で送信を表せます。
AxMSComm1.Output = Transmit_Fcode + Transmit_Acode + Chr(13)
Transmit_Fcodeは16文字のキャラクター、Transmit_Acodeは6文字のキャラクターで、送信終了の合図としてChr(13)です。これを、Comm1のバッファーに書込んで、順に送信されるようになっています。
Transmit_Fcode = FreqStartHex + FreqStopHex
FreqStartHexは8文字のキャラクター、FreqStopHexも8文字のキャラクター、で、16進の表示です。例えば、”0000000A”ならば、10進で"10"になります。
Transmit_Acode = SwpTimeHex + RbwStr + AttStr + TgStr
SwpTimeHexはスィープ時間;秒単位で3文字のキャラクター、”FFF”で ”4,095”まで表せます。RbwStrは1文字でRBWを、AttStrは1文字でATTの設定を、TgStrは1文字で、トラッキング・ジェネレータのオンオフ制御を行っています。
一方、受信データは、3文字づつ、301回となります。3文字は、最大4,095です。ハード側マイコンは、10ビットのAD変換;最大1,023の能力なので、100dbを、数値1,000で返すようになっています。
301個のデータを配列;ChartData(301)に収納、300x300ピクセルの横軸の一つ毎に、ChartData(301)の一つを割り当てて、各座標を算出し、座標間に線を引く..事をしています。
消すときは、バックグランドと同じ色で、線を引いています。
沢山の制御数値は、ComboBoxを使って、リストの帯を表示選択しています。
Mode ->Through,Norm,Cal
Ave/P ->Ave 1,Ave 2,Ave 4,Ave 8,Ave16,Ave32,Ave64,Peak Env
Ref ->+10dbm, 0dbm,-10dbm,-20dbm
RBW ->Auto, 100Hz, 1KHz, 10KHz,100KHz,200KHz
SWP ->Auto,1s,2s,3s,4s,5s,6s,7s,8s,9s,10s,20s,30s,40s,50s,60s,70s,80s,90s,100s,200s,300s
T.G. ->On,Off
Freq ->Start/Stop,Center/Span,Zero/Span
この内、RBW;200KHzは特別です。60MHz巾を301点でスィープするには、RBW;200KHzが必要なのに、ハード側には、RBW;100KHzしか無い..よって、2回程、周波数をシフトさせながらスィープさせて、ソフトで2倍の巾を作っています。
スクリーン・キーボードとは、左の様に、画面に呼び出すキーボードです。
C:\WINDOWS\system32\osk.exeで、Xpに標準に装備されています。
本当は、60mhz_db_scopeの中に、テン・キーを組み込みたかったのですが、フォーカスの移動制御が難しくて、私には出来ませんでした。
机の上で、空中配線の試作機を並べての測定中に、パソコン画面は、空中配線の向こうに有ります。手を伸ばして、キーボードから周波数変更の入力をするわけですが、空中配線が邪魔です。このような時は、手元のマウスだけで、画面操作のできるスクリーン・キーボードの出番となります。osk.exeを起動する押しボタンを60mhz_db_scopeに設けました。
以上
*戻る*