ここのところ太陽黒点が高い日がつづいている。21日では指数が207で200を超えてきた。先週の日曜日もかなり15mバンド(21MHz)のコンディションが朝から良かった。昨日22日(土)も異常なぐらいのGOODコンディションで局数で40mバンド(7MHz)では2局、20mバンド(14MHz)は2局、15mバンドでは、な、なんと76局もDXができた。こんなコンディションは久々である。太陽黒点の指数は、電波伝搬には間違いなく連動しているような感じである。上記で交信できたのは時間帯が朝はW(ダブリュー)北米、午後は南米、カナダ、夕方はヨーロッパのロングパス、夜はショートパスでのヨーロッパ、ロシア、アジアといった具合に通信する方角が変わるのである。刻々と通信場所が変わっていくのはとても面白い。こんなコンデションなので、朝起きると食事をすませては無線機の前でワッチするといった日課ができた。今日23日もさほど昨日ほどのコンディションではないと思って、今日は今までやり残していることをやろうと思っていた。DXの相手から通信情報として10mバンドも開けていると聞いていたので、ワッチしてみた。アンテナはこのバンドはダイポールとシンプルなアンテナなので、八木アンテナと違いDXは難しいと思っていたが、LU8EOT局がCQをだしていて、信号強度もRS59と良かったのでダメもとで呼んでみた。地球の裏側のアルゼンチンである。コールバックは無理だろうと思いながら呼んだ。なんとコールバックがあるではないか。リポートも59と送り返してきた。Mark氏である。10mはバンドコンディションがアッという間に変わる。今日は10mが最初の交信となった。ほかのバンド12m(24MHz)も聞いてみたが、あまり好きでないノイズ(スキャンノイズのような信号)が多いため早々にバンドを変えた。昨日の交信局数で76局もした15mバンドである。今日は無理だろうと思いながら無線機のダイヤルを回すと21.260MHzでWに居られる古谷氏(無線のCQ誌ではWB6Zの実用QSO英会話のコラムを担当されていました。)と12年ぶりのコンタクトができると思い、ワッチをしていました。近くの由利本荘市の局とコンタクトするのが聞こえていたので、ここからも可能だと思い交信のタイミングを見て呼んでみた。前回の交信はサイクル23の1999年の10月9日である。今回はサイクル24での交信となった。古谷氏は前回はカリフォルニアロサンゼルスにての交信であることと今は、ワシントン州のBELLEVUEに住んでいるとのことでした。挨拶を済ませて、早々にファイナルを送った。その後もJAからの呼び出しが延々と続いていました。この後はバンドの様子を見ながら、CQを出している局をハンティングした。ハワイのAH6NF局が良く聞こえていたのでコールした。YL局である。無線機はK3でリニアをつけて1Kw出力、それとアンテナはラジカルアンテナ(垂直系のアンテナ)と言っていた。とても強い信号でした。これも太陽黒点の影響での伝播が多少影響しているかもしれない。がしかし通常でもハワイとの交信は開けるコンディションでなくても交信可能なので実際は良くはわからない。いづれにしても交信は容易にできた。その後もW局が立て続けに交信できた。省略するが46局ものDX交信ができた。今日23日の交信は昨日とは違い、少しノイズぽい交信が多かったように思う、完全なグッドコンディションではまだないが、予想では2013年頃がピークではないかと推定されているみたいだ。これからも太陽黒点指数をチェックしながらDXを追いかける日が続くと思う。とにかく呼ばれる側になれるのでとても忙しいが、楽しい日だった。今日の無線交信の締めくくりとして交信のQSLカードを印刷して終了しました。DX交信のみでなく、国内の交信も時々合間を見てやりたいと思う。GOOD LUCK TO YOU 73! おわり
先週も15MバンドのコンディションがよくてDX交信が23局もできてたので、今日16日にSWC宇宙天気情報センターの太陽黒点数を見てみた。な、なんと15日情報で166もの黒点数である。これはハイバンドのコンディションがとても気になる数値です。ということで、朝の10時から21MHzをワッチしていました。ワッチし始めからアンテナをW(ダブリュー:アメリカのことです。)に向けてCQを出したとたんに59+の信号でKN2M局のコールが入ってきた。6 OVER 6のスタックアンテナ(15mhと30mHに6エレメントのヤギアンテナをスタックにしているビックガンでした。名前はDAVE氏もちろんリニアアンプでKW局です。立て続けにDX局より次々と呼ばれ始めました。今までのコンディションとは違い、通常では西海岸の信号しか聞こえなかったのが、まるで嘘のように東海岸もかなり良く聞こえる。もちろん交信もできました。あまりにも交信が多すぎて、紹介しきれないほどです。少しオーバー・・か?どれくらいの交信ができたかをQSLカードを印刷してみたので見てほしい。こんなコンディションが待ち遠しかったので今日は本当にうれしい限りです。先週も23局のDX交信ができていましたが、それ以上の久々の感動でした。特にいつもと違うのは、相手の信号にエコーがかかってくるという状況でした。相手の信号も地球を何回も周回するためにエコーがかかるらしい。つまりコンディションが相当いいことの明かしということのようだ。私の信号もエコーがかかっているといってきた局もいた。アンテナの高さがある程度(1波長以上)高いとエコーが発生しやすいようだ。今日は風が強かったので20mHの高さでの運用でした。秋のコンディションということで、WのDX局からの情報でも10mBAND(28MHz)も開けているとのことでした。これからの季節は太陽黒点数のチェックが欠かせない。ワッチもかかせない。今日は36局との楽しいDX交信でした。
最近少しシリアルポートの列挙方法についていろいろと試していたが、どれが一番良いのかわからない。とりあえず2種類ほど試してはある。レジストリ情報からの列挙とserialPort->GetPortNames()の2つだ。今は固定のCOMポートでやっているが、汎用性を持たせるには現状のポート状態がいるからだ。とまずはうまくいったことから書いた。実はもう一つの方法を試しているが、うまくいっていないのがある。ManagementClassを使う方法だ。WMIを使うのだが、C++/CLIでは、なぜかうまく動かない。C#2010とVB2010では問題なく動く。ManagementClassの定義が呼び出せない状態だ。ということで、一旦保留とした。
今回は、今までより簡単な内容である。マウスホイールの周波数制御の部分を展開させてみた。先に書いたようにホイールの回転方向の値をラジオボタンで選択したステップに変えて周波数制御ステップを変えると言うことです。なぜこのようなことを行ったかというと実は理由があるのです。周波数を制御している無線機FT-1000MPのCATコントロールコマンド表上のコマンド群中の周波数制御コマンドでは10Hz単位のアップダウン、100KHzのアップダウン、1MHzのアップダウンしかないのです。ということでマウスホイールでの周波数ステップをうまく使い、ないところの1KHz、5KHz、10KHzのアップダウンを行ってみたわけです。特にSSBの復調には1KHzのアップダウンが意外と重宝します。(もう少し細かいほうが良いが。。。)内容的にはラジオボタンの使い方みたいなものです。あとは初期化ルーチンForm_Load(System::Object^ sender,System::EventArgs^ e){内にラジオボタンの1KHzが初期値として必ず設定される状態にしておくことも忘れないように一行追加しておきます。radioButton3->Checked=true;
コマンド表上の周波数制御は先のft-1000mpcomのファンクション化したサブルーチンを使いコマンドとパラメータを送るだけですみます。送った後は周波数を表示させるために周波数読み取りボタンをコールします。Button21_Click(sender,e);同様にファンクションを使ってFT-1000MPのVFO-AとVFO-Bの切り替えコマンドもつけました。ここいら変は単純に一方的な設定コマンド送出だけなので、ファンクションに設定して送るだけで簡単にできます。無線機のフィルター設定関係も同様にできることになります。
VisualC++2008Expressで行った読み取った周波数をハムログに送る部分も今回追加しました。コードは2008のものがそのまま問題なく使えます。そのほかに試してみたこととして周波数の読み取りコマンドをVFO-A とVFO-Bの2つを同時に読み取るコマンドを使い確認だけしてみました。先の表示周波数周波数読み取りはVFO-Aのみでしたが、次のコマンド
10,03,00,00,00,00 を送ると32バイトのデータでVFO-A、VFO-Bの周波数データの順番で戻ってきました。このコマンドでのパラメータ1が00では全データ読み出し、01ではメモリチャンネル番号読み出し、04では指定メモリチャンネル読み出し設定可能です。今までは02の表示データ読み出しで使用しています。03での2VFOデータの読み出しが可能なことが確認できました。プログラム上では32バイト読み取り最初の16バイトでのVFO-Aの周波数データのみを表示するようにしておきます。VFO-Bの周波数表示は今はできません。プログラムの周波数計算部をファンクション化して投げてやる必要があります。今回はデータの確認のみで対応は行いません。また今回周波数の変更の確認を行うことが多く短波ラジオの周波数帯で確認したりするので、ラジオを聴くためにAMのモードも追加しました。Hi。なんだかフォームが大きくなってきたので、一旦今までのフォームを終了して新たにFT-1000MPのコントロール用として作り直したい気がそろそろしてきた。そうなるとフィルタ選択とか送受信ボタンとかいろいろとレイアウトの検討がいる。もう少し考えてみるか? まず本日は終了。寝ます。
今回は、今までより簡単な内容である。マウスホイールの周波数制御の部分を展開させてみた。先に書いたようにホイールの回転方向の値をラジオボタンで選択したステップに変えて周波数制御ステップを変えると言うことです。なぜこのようなことを行ったかというと実は理由があるのです。周波数を制御している無線機FT-1000MPのCATコントロールコマンド表上のコマンド群中の周波数制御コマンドでは10Hz単位のアップダウン、100KHzのアップダウン、1MHzのアップダウンしかないのです。ということでマウスホイールでの周波数ステップをうまく使い、ないところの1KHz、5KHz、10KHzのアップダウンを行ってみたわけです。特にSSBの復調には1KHzのアップダウンが意外と重宝します。(もう少し細かいほうが良いが。。。)内容的にはラジオボタンの使い方みたいなものです。あとは初期化ルーチンForm_Load(System::Object^ sender,System::EventArgs^ e){内にラジオボタンの1KHzが初期値として必ず設定される状態にしておくことも忘れないように一行追加しておきます。radioButton3->Checked=true;
コマンド表上の周波数制御は先のft-1000mpcomのファンクション化したサブルーチンを使いコマンドとパラメータを送るだけですみます。送った後は周波数を表示させるために周波数読み取りボタンをコールします。Button21_Click(sender,e);同様にファンクションを使ってFT-1000MPのVFO-AとVFO-Bの切り替えコマンドもつけました。ここいら変は単純に一方的な設定コマンド送出だけなので、ファンクションに設定して送るだけで簡単にできます。無線機のフィルター設定関係も同様にできることになります。
VisualC++2008Expressで行った読み取った周波数をハムログに送る部分も今回追加しました。コードは2008のものがそのまま問題なく使えます。そのほかに試してみたこととして周波数の読み取りコマンドをVFO-A とVFO-Bの2つを同時に読み取るコマンドを使い確認だけしてみました。先の表示周波数周波数読み取りはVFO-Aのみでしたが、次のコマンド
10,03,00,00,00,00 を送ると32バイトのデータでVFO-A、VFO-Bの周波数データの順番で戻ってきました。このコマンドでのパラメータ1が00では全データ読み出し、01ではメモリチャンネル番号読み出し、04では指定メモリチャンネル読み出し設定可能です。今までは02の表示データ読み出しで使用しています。03での2VFOデータの読み出しが可能なことが確認できました。プログラム上では32バイト読み取り最初の16バイトでのVFO-Aの周波数データのみを表示するようにしておきます。VFO-Bの周波数表示は今はできません。プログラムの周波数計算部をファンクション化して投げてやる必要があります。今回はデータの確認のみで対応は行いません。また今回周波数の変更の確認を行うことが多く短波ラジオの周波数帯で確認したりするので、ラジオを聴くためにAMのモードも追加しました。Hi。なんだかフォームが大きくなってきたので、一旦今までのフォームを終了して新たにFT-1000MPのコントロール用として作り直したい気がそろそろしてきた。そうなるとフィルタ選択とか送受信ボタンとかいろいろとレイアウトの検討がいる。もう少し考えてみるか? まず本日は終了。寝ます。
vbausbio.dllをVisual C++2010 その14のつづきです。
-------------------------------------------------------------------------------
上記の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のときと違い、桁処理なしで行う、もっともシンプルな新しい方法で周波数を変えるやり方になったと思います。最後のコマンドとして送るところは同じ方法ですが... とにかくマウスホイールでの周波数可変は完成ということにしました。つづく
-------------------------------------------------------------------------------
上記の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のときと違い、桁処理なしで行う、もっともシンプルな新しい方法で周波数を変えるやり方になったと思います。最後のコマンドとして送るところは同じ方法ですが... とにかくマウスホイールでの周波数可変は完成ということにしました。つづく
FT-1000MPトランシーバーのマウスホイールの制御での周波数コントロールを検討してみた。以前のVisualBasicでもマウスホイールでの周波数コントロールを行ったが今回は同じ方法で制御できないことが判った。VisualBasicでの次のイベント制御での取得値が異なるのだ。
以下はVBコード
--------------------------------------------------------------------------------
Private Sub Form1_MouseWheel(ByVal sender As Object,ByVal e As System.Windows.Forms.MouseEventArgs)Handles Me.MouseWheel
wa = e.Delta.ToString()
End sub
--------------------------------------------------------------------------------
この中で次の様にマウスホイールのDelta値を取得していたが、VisualBasicの場合は取得値がマウスホイールを回転する割合で値が120の倍数で取得できていた。ホイールを奥方向に強く回すとwaが600とかの値が取れていた。逆方向ではwa=-600とかの値
wa=e.Delta.ToString()
VisualC++2010ExpressでのForm1イベントでのMouseWheelはVisualBasicの様にイベントが表示されていない。VBでのイベント選択画像添付
なのでVisualC++2010Expressでは以下のようにイベントを手動で書きます。
-------------------------------------------------------------------------------
private: System::Void Form1_MouseWheel(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e){
int wv = (e->Delta)/120;
if(wv < 0 ) {
cv = -1;
}else{
cv = 1;
}
.
.
以下処理コード省略(後で記載しています。)
.
.
}
-------------------------------------------------------------------------------
上記のwvの値がVBだと ±10ぐらいまでの値が取れているのだが、VisualC++2010Expressだといくらホイール回転を強く回してもいいところ±2であった。VisualBasicのようにホイールの回転クリック度にあわせたリニアなデータは取れない。VBでの動作がうそだったのか?MSDNヘルプではやはりマウスホイールの回転方向を取得が目的であり値は環境で変わるとの事である。つまり回転方向を取得するのが主なのである。だから値は符号がついた数字でプラスかマイナスかがわかればよいということなのだ。ということでVBの書き換えと言うわけにはいかなくなりました。いろいろと考えているうちに上記の方向の値が変わるのが(±1と±2)気に入らないので、最初に上記コード中のように正負を判定し値をプラス1とマイナス1の2つに限定するようにしました。周波数はマウスホイールの1クリックで回転方向により±1khzとなる事をもとに上記の限定を行っています。ですからこの値を10とかにすると1クリックあたり10khzにすることも可能ということです。
あとは先の周波数読み取りのところにて周波数を計算で求めた次のコードの後に無線機の周波数範囲に合わせた1khz台の場合の計算用の周波数データを文字化してSwitchで周波数桁に合わせて計算用周波数データを設定します。
------------------------------------------------------------------------------
//従来の周波数計算コードの部分
int Frequency=0;
Frequency=(GOUKEI * 0.625); //周波数を求めます。小数点等はなしの数値のみ
String^ mojiFreq; //周波数を文字化して入れる変数
mojiFreq=Frequency.ToString(); //文字化します。
int lenFrequency=0; //文字化の長さ用
lenFrequency=mojiFreq->Length; //長さを求めます。
-------以下追加コード---------------------------------------------------------
lenF = lenFrequency; //グローバルエリアでlenFはint宣言してあります。
// 周波数のkhz情報のみ取り出しておきます。後でのマウスwheelでの周波数制御用 khz代のup down
String^ mousewheel1khz;
switch(lenFrequency)
{
case 8://14252 周波数14.252MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
case 7://1503 周波数1.503MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
case 6://646 周波数.646MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
}
char* p1=(char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(mousewheel1khz).ToPointer();
mojiwheel[0]=*p1;
mojiwheel[1]=*(p1+1);
mojiwheel[2]=*(p1+2);
mojiwheel[3]=*(p1+3);
mojiwheel[4]=*(p1+4);
System::Runtime::InteropServices::Marshal::FreeHGlobal((IntPtr)p1);
//以下従来コード
--------------------------------------------------------------------------------
以上5000文字制限がかかったので続きは次に記載します。
以下はVBコード
--------------------------------------------------------------------------------
Private Sub Form1_MouseWheel(ByVal sender As Object,ByVal e As System.Windows.Forms.MouseEventArgs)Handles Me.MouseWheel
wa = e.Delta.ToString()
End sub
--------------------------------------------------------------------------------
この中で次の様にマウスホイールのDelta値を取得していたが、VisualBasicの場合は取得値がマウスホイールを回転する割合で値が120の倍数で取得できていた。ホイールを奥方向に強く回すとwaが600とかの値が取れていた。逆方向ではwa=-600とかの値
wa=e.Delta.ToString()
VisualC++2010ExpressでのForm1イベントでのMouseWheelはVisualBasicの様にイベントが表示されていない。VBでのイベント選択画像添付
なのでVisualC++2010Expressでは以下のようにイベントを手動で書きます。
-------------------------------------------------------------------------------
private: System::Void Form1_MouseWheel(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e){
int wv = (e->Delta)/120;
if(wv < 0 ) {
cv = -1;
}else{
cv = 1;
}
.
.
以下処理コード省略(後で記載しています。)
.
.
}
-------------------------------------------------------------------------------
上記のwvの値がVBだと ±10ぐらいまでの値が取れているのだが、VisualC++2010Expressだといくらホイール回転を強く回してもいいところ±2であった。VisualBasicのようにホイールの回転クリック度にあわせたリニアなデータは取れない。VBでの動作がうそだったのか?MSDNヘルプではやはりマウスホイールの回転方向を取得が目的であり値は環境で変わるとの事である。つまり回転方向を取得するのが主なのである。だから値は符号がついた数字でプラスかマイナスかがわかればよいということなのだ。ということでVBの書き換えと言うわけにはいかなくなりました。いろいろと考えているうちに上記の方向の値が変わるのが(±1と±2)気に入らないので、最初に上記コード中のように正負を判定し値をプラス1とマイナス1の2つに限定するようにしました。周波数はマウスホイールの1クリックで回転方向により±1khzとなる事をもとに上記の限定を行っています。ですからこの値を10とかにすると1クリックあたり10khzにすることも可能ということです。
あとは先の周波数読み取りのところにて周波数を計算で求めた次のコードの後に無線機の周波数範囲に合わせた1khz台の場合の計算用の周波数データを文字化してSwitchで周波数桁に合わせて計算用周波数データを設定します。
------------------------------------------------------------------------------
//従来の周波数計算コードの部分
int Frequency=0;
Frequency=(GOUKEI * 0.625); //周波数を求めます。小数点等はなしの数値のみ
String^ mojiFreq; //周波数を文字化して入れる変数
mojiFreq=Frequency.ToString(); //文字化します。
int lenFrequency=0; //文字化の長さ用
lenFrequency=mojiFreq->Length; //長さを求めます。
-------以下追加コード---------------------------------------------------------
lenF = lenFrequency; //グローバルエリアでlenFはint宣言してあります。
// 周波数のkhz情報のみ取り出しておきます。後でのマウスwheelでの周波数制御用 khz代のup down
String^ mousewheel1khz;
switch(lenFrequency)
{
case 8://14252 周波数14.252MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
case 7://1503 周波数1.503MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
case 6://646 周波数.646MHzの桁の場合
mousewheel1khz=mojiFreq->Substring(0,lenFrequency-3);
break;
}
char* p1=(char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(mousewheel1khz).ToPointer();
mojiwheel[0]=*p1;
mojiwheel[1]=*(p1+1);
mojiwheel[2]=*(p1+2);
mojiwheel[3]=*(p1+3);
mojiwheel[4]=*(p1+4);
System::Runtime::InteropServices::Marshal::FreeHGlobal((IntPtr)p1);
//以下従来コード
--------------------------------------------------------------------------------
以上5000文字制限がかかったので続きは次に記載します。
QRコード
カテゴリー
アーカイブ