お気に入りのSDR製作 「Sメーター表示を作ってみる」


 写真は最近購入したVisual C#の参考書。C#の参考書はどれも似たような内容ですが、本書はやりたい内容から、コード例を参照出来るので 入門書の次に購入する参考書としてお奨めです。

2018.5.31

はじめに
 「お気に入りのSDR」をソフトも含めて自作するプロジェクトは、なかなか進みませんが、今回はSDRstudyに組み込みを予定しているS_Meterの作成です。
 作成といってもハードの製作では無く、PC画面に表示するためのS_Meterです。SDRのメインになる SDRStudyの画面にはS_Meterが無く、実際に運用するには 不便なので、SDRStudyに組み込むことを想定したS_Meterを作成してみます。

構想
 当初の構想では、Sメーター表示部をペイント等の描画ソフトで作成して、Visual C#のフォームのPictureBoxに貼り付けて、メーターの針を入力レベルに応じて 動かそうとしました。
 メーター指針を動かすには、前の針位置を消し(背景色で塗りつぶす)て新しい針位置の画面をアニメーションの様に描いていきます。この時メーター表示部も消えるので、メーター指針を描く時に、 表示部を再表示する必要がありますが、この再表示がどうしてもうまくできません。  新たな構想として、Sメーター表示部もC#のコードで記述して、針の移動に伴って表示部もその都度描くようにしました。ソフトの処理時間がかかる気がしますが、 とりあえずこの方法でやってみます。  

画面を作ってみる
 SDRのフォーム画面は前回作成したものにSメーター部を新規に追加しました。
 フォーム上にPictureBox2を配置し、そこにSメーターの背景を描いていきます。PictureBox1はSDRStudyのスペアナ表示で使っているので、ここではPictureBox2 として作成します。背景は単純な直線の組み合わせなので、ペンの色、太さ、フォントのサイズ等を指定してDrawLineメソッドで描いていけばOKです。

Sメーター部詳細 デザインはPowerSDRのメーター部デザインを参考にしました。サイズは133x35ピクセル、目盛は等間隔で割り付けましたが、実際の入力 レベルとS強度の変換は計算が必要になりそうです。
 メーター指針は g.DrawLine(yellowpen,x1,5,x1,35)で描いており、x1はpictureBox2内の座標(ピクセル値)を示し、x1の値を信号強度に応じて変化させています。
今の段階では、信号強度の代わりにx1の値をfor〜nextで変化させて針の動きを確認しています。

     SDR S Meter demo(動画 YOUTUBEへ)Sメーターの動きの様子を動画にしてみました。

  ソフトの説明
ソースリストの関連部分のみを抜粋したものを参考まで
System.Threading.Thread.Sleep(20);のコードは20msのwaitルーチンで、この時間とメーター移動ピクセル値を調整することでメーターの動きの滑らかさが かわります。

   今後の進め方
 次回はVisual C#〜PIC間のシリアル通信にTRYの予定。SDR側にはアナログVFOを配置するので、その周波数データーをPC側に送って表示する狙いです。

   Top Menu