-------------------------------------------------------------------------------
上記の3種類の周波数桁文字周波数をポインタからのデータとしてmojiwheel[]配列に入れましたのでマウスホイールイベント内で次の処理を行います。以下省略コード部
--------------------------------------------------------------------------------
//アスキーコードの文字化 例)コード53は アスキー文字 ’5’に変換
Char charkhz0=(Char)int::Parse(mojiwheel[0].ToString());
Char charkhz1=(Char)int::Parse(mojiwheel[1].ToString());
Char charkhz2=(Char)int::Parse(mojiwheel[2].ToString());
Char charkhz3=(Char)int::Parse(mojiwheel[3].ToString());
Char charkhz4=(Char)int::Parse(mojiwheel[4].ToString());
String^ allcharkhz;
allcharkhz=(charkhz0.ToString())+(charkhz1.ToString())+(charkhz2.ToString())+(charkhz3.ToString())+(charkhz4.ToString());
textBox17->Text=allcharkhz;
// アスキー文字の1khz代を整数数字化
int suuji;
suuji=(int::Parse(textBox17->Text));
int calsuuji;
calsuuji = suuji + cv; // 新しい周波数の数字 例5khzが 4khzまたは6khzになる
int lenFread;
lenFread = lenF;// 6 or 7 or 8 936,1503,21255
String^ mvFreq;
switch (lenFread)
{
case 8:
mvFreq="0A0"+calsuuji.ToString()+"00";
break;
case 7:
mvFreq="0A00"+calsuuji.ToString()+"00";
break;
case 6:
mvFreq="0A000"+calsuuji.ToString()+"00";
break;
}
textBox18->Text=mvFreq;
// +-の周波数を送信
String^ retda;
String^ cntcomdat;
cntcomdat=mvFreq;
retda="NONE";// コマンド送りのみの場合に"NONE"に設定する
String^ backdata;
backdata=ft1000mpcom(cntcomdat,retda);
// 周波数が変わったのを受信します。
button21_Click(sender,e);
}
------------------------------------------------------------------------------
周波数の1khz台までの数字データをドットなしの文字列にて取得してこれを数字化しホイールの±1を加算して新しい周波数を決めます。これを0Aの運用周波数設定コマンドで無線機へ関数化したft1000mpcomを使い送り周波数設定をします。周波数設定が無線機で行われたのを周波数取得コマンド(タイマーでコールするのと同じ)をコールしてフォーム上に変更された周波数を表示させます。上記でマウスホイールをまわすと無線機の周波数が回転方向により±1khzずつ変わります。変化させる周波数のデータをドットなしの文字で取得して加工するところがキーポイントです。c++ではポインタを使ってデータを入れ込み、配列(mojiwheel[])をグローバル的に使用するところでしょうか。ポインターの開放も忘れないようにします。やはり型変換が至る所で使われています。今回はVBのときと違い、桁処理なしで行う、もっともシンプルな新しい方法で周波数を変えるやり方になったと思います。最後のコマンドとして送るところは同じ方法ですが... とにかくマウスホイールでの周波数可変は完成ということにしました。つづく