イメージ 1

イメージ 2

シリアル通信の無線機へのデータ送出を関数化してみた。使いかってがかなり良くなる。

String^ ft1000mpcom(String^ cntcomdat, String^ retda);

内容はcntcomdatにパラメータとコマンドをretdaには返り値(通常の送りコマンドのみでは"NONE"を入れて送ります。
コマンドボタンには以下の6行を記入するだけでモード変更ができます。
変えるのはcntcomdatのデータのみです。
例)
String^ retda;
String^ cntcomdat;
cntcomdat="0C01000000";
retda="NONE";// コマンド送りのみの場合に"NONE"に設定する
String^ backdata; 
backdata=ft1000mpcom(cntcomdat,retda);

上記の値設定でストリング変数のbackdataにはシリアル通信の受信したデータ(バイトからアスキーデータ変換したデータが入るように組む予定です。現在はretda:"NONE"をそのまま返しています。受信したデータとは、無線機のVFO読み取りデータ値、Sメータ信号のリクエストコマンドによる返り値と内部ステータス状態等を返すデータになると思います。通常のモード変更とかの送りのみのコマンドでは、送り時に設定した"NONE"をそのまま返します。
今現在の構想はハムログに周波数情報と相手のSメータ情報を送ることができたらいいと思っています。Sメータに関してはいろいろと大変そうな感じがあります。常に動いているということと、相手が出ているときに処理しなければならないということがあります。プログレスバーに表示することはいたって簡単ですが、どういうふうにSメータ値データを決定してハムログに送るかを考える必要があります。なおシリアル受信に関してはこの構想で対応する事になります。今現在は、Sメータ値は最大値とするのが手っ取り早いような気がしています。この場合、ノイズでSメータが振れる場合がありますが、まずは実際にやっていってから考えようと思います。まだ受信もできていないのに構想だけは進みます。コマンドを関数化したフォームを載せました。関数化部のコードは先のUSBボタンのコードに受け渡しの変数宣言部の追加部分を載せてプロト宣言した関数をコーディングします。コマンド送出は例のとおりパラメータとコマンドからなるデータを入れ替えてft1000mpcomに入れるだけで簡単に制御できるようになります。今日は本当に暑い。外気温は31.8℃、部屋は30.7℃窓は開けっ放しだが風はなし。パソコンのモニターからは熱が感じられる。そろそろパソコンを止めねば...熱中症には気をつけねば...おわり