jl7gmnのblog

yahooブログから移行してきました。アマチュア無線を中心としたブログです。

2024年09月

BAND-DATA用8Pプラグ注文

今現在、FT-2000Dの無線機の周波数切り替えに合わせてアイコムのオートチューナーを自動でバンド設定制御するコントロール回路を試作しており、必要となった8Pプラグについてです。

上記の周波数制御で、ヤエス無線のFT-1000MP、FT-2000Dの周波数制御出力のBAND-DATA出力用の8Pプラグが必要となりネットで探してみました。日本では扱っているのはメーカーのみのような感じで、通販で売られているのは、どれも通常の 8PのDINプラグです。やむなくVL-1000用のCT-58BAND-DATA CABLEを購入しましたが、今日ALIEXPRESSを物色していたところ、ぴったり合う馬蹄形の8Pプラグがありました。やはり、探せばあるもんです。受けのジャック1セット5個売りとあわせて早速2組プラグを2組分(1組2個X2の合計4個)注文しました。
通常売られているのはピン配列が270度物のオーディオ用のプラグです。ヤエス無線では262度の8Pフィメイルソケットを使っていますから270度物は差し込めません。また、262度は高周波加工がされているようです。ページに情報がありました。最初安かった270度物は私も何個か購入していますが、非常にやってはいけない加工をしてかろうじてヤエスのBAND-DATAジャックにて挿せています。今は、確認のためだけの使用です。Hi ! ヤエスのジャック側には使用できませんが、繋ぐ回路側ではジャック、プラグとも8P(270度物)が使用可能です。

ALIEXPRESS のプラグの画像です。

★MD-8-270-SWが一般的に販売されている8PDINプラグです。
(ピンの配置が円形です。)

MD-8-270-SW

★ヤエス無線の BAND-DATAジャック用のプラグはこちらです。
(ピンの配置が円形でなく、いわゆる馬蹄形をしています。)

MD-8-262-SW


あきらめず探す必要性はあるもんですね。Hi!

つづく?

HAMLOG 方位情報からのローティターコントロールその2

VISUAL STUDIO 2022のC++マネージドプログラミングでのハムログフォームからの方位と距離情報を取り込みするプログラミングを行いました。結果について言いますと、久々のC++でのコーディングは、大変でしたが、入門書を引っ張りだしてきて、サンプルを確認しながら、まず第一段階の方位と距離の取得はうまくいきました。たくさんの局のハムログの方位距離情報を確認しました。Hi!、方位と距離情報は文字長が変わったりするので、ある文字3点を選択し、それらの位置を起点とした取り込み方法で、方位取得、距離取得に関して思うよううまくいきました。ただここまで行きつくまで、いろいろありました、最初は、通常のテキストボックスに取り込んだ方位と距離情報を使う方法でコーディングをしていたのですが、テキストボックスに取り込んだ文字情報の位置を出すためのコーディングでは、アンマネージドプログラミングとなるfind コマンドがあるのですが、String -cha変換のエラーだらけだったりと、少し悩んだりしていました。入門書を確認し、基本に戻りアンマネージドプログラミングとなるテキストボックスを使った手法ではなく、マネージドプログラミングの対応するリッチテキストボックスを使う事でストレスなく文字列の中のある文字を指定し、その文字の位置の取得をすることができるようになりました。方位と距離を抜き出しすることが容易にできるようになったわけです。これも試してみてからうまくいったので採用しました。アンマネージドプログラミングとなるテキストボックスを止め、マネージドプログラミング対応のリッチテキストボックスへ切り替えたことで、取り込んだ文字情報("方位:***度 ****km")から方位角度の***と距離の****の部分を抜き出しできました。

以下プログラミングした方位、距離取得の起動時のフォームです。
最初は、右のHAMLOG-CONTROLのHAMLOG-OPENコマンドでハムログプログラムを立ち上げます。
前回のブログに示したコードそのまま使っています。
hamlogUDP-kido


次に青色のプログラムのフォームのData Receiveコマンドボタンを押します。これだけです。
最初はワンクッションのメッセージボックスで ”方位角度と距離を取り込みます” が表示されます。

hamlogUDP-kidoMESSAGE


6エリアの距離がある程度ある、実際にQSOした局長さんをハムログに打ち込み方位と距離をだして
の確認です。黄色のテキストボックスに ”225”度 ”1116”km と取得できています。

hamlog-other-1

DX局も確認しました。QSOした遠いイギリスの局長さんです。
方位 ”337”度、距離 ”9132”km と問題なく取り込みできています。

dx-other-1

自分のコールサインだと、方向と距離からみてもGPS基点の場所(市役所)が表示されているようです。方位角度 ”115”度 距離は一番短い ”1.2”km です。うまく取り込みできています。

hamlogUDP-get-direction-kyori


他、方位と距離が表示される場合はすでにメッセージボックスの画像をだしました。

MessageBox::Show("方位角度と距離を取り込みます。");

画像は載せませんが、ハムログフォーム上に方位と距離がない場合は次のメッセージが表示されます。

MessageBox::Show("方位角度と距離の表示なしです。\n 戻ります。");

緑色が今回の解決策のキーとなったリッチテキストボックスです。それ以外は表示するだけの機能のテキストボックスです。確認用にたくさんのテキストボックスがありますが、実際は表示しないで計算で使用するのみのものと、本当のデバッグ用で表示した物なので、実際はこのフォームの1/4位のサイズに収まるとみています。

メインとなる抜き出しのC++コーディング心臓部?です。抜き出しはSubstringを使用しています。
//***********************************************************************************************
//テキストボックス12の文字長 13 "方位:17度 59.7km";   //ある局長さんの情報
textBox12->Text = kazoe.ToString();

String^ cm1= ":";
String^ cm2 = "度";
        //角度を取り込む
int n1; // ":"の位置 0,1,2 の3番目の数字の2 
n1 = richTextBox1->Find(cm1, richTextBox1->SelectionStart + 1, RichTextBoxFinds::None);

textBox8->Text = n1.ToString();

int n2; // "度"の位置 0,1,2,3,4,5,6 の7番目の数字の6
n2 = richTextBox1->Find(cm2, richTextBox1->SelectionStart + 1, RichTextBoxFinds::None);

textBox9->Text = n2.ToString();

textBox10->Text = richTextBox1->Text->Substring(n1 + 1, n2 - n1 - 1);
textBox4->Text = textBox10->Text;

   //距離を取り込む
String^ cm3 = "m";
int n3;   //距離の"m"の位置0,1,2,3,4,5,6,7,8,9,10,11,12 の13番目の数字の12
n3 = richTextBox1->Find(cm3, richTextBox1->SelectionStart + 1, RichTextBoxFinds::None);
textBox13->Text = n3.ToString();
textBox11->Text = richTextBox1->Text->Substring(n2+2 , n3-n2-3);
//***********************************************************************************************

位置基準となる各文字の位置の情報、n1, n2, n3を使いSubstringにて方位角度と距離を抜き出しています。

次は、Windows10 でのUDP クライアントコーディングです。少し情報収集開始します。

つづく?

HAMLOG 方位情報からのローティターコントロールその1

最近以前にVisual Studio Express 2008,2010でハムログの起動、停止、そして入力フォームへのデータ転送、および、入力フォームに表示されたデータ類の情報取得を行っていたことを思い出しました。ローティターのスマフォからのUDP通信によるコントロールができている現在、方位角度があれば、その角度方向へは自動でローティターを向けることができます。このことより、ハムログに方位と距離情報がある事を利用して今回はスマフォからではなく、ハムログアプリの起動できるWindows10,または11上でのアプリケーション(ハムログからのデータ取得と取得方位を現状のUDPデータをうけてローティターコントロールしているESP32DevKitC:UDP通信アプリ)からUDP通信で方位角度を送出するアプリケーションを作成してみようという気が起きています。ハムログのダウンロードホームページにはプログラム開発室がありかなりのOM さんが高級言語DelphiやVSExpress2008,2010,2013 等のVB、VC、C++、C#、pascal,などを使い各種多様なハムログアプリユーティリティを作成しておられます。久々に過去のプログラム開発室の情報をあらためてのぞいてみました。私のハムログコントロールアプリを確認していたころは十数年も前のことなので、PCのWindowsはWindowsVistaでマイクロソフトのフリーのVisualStudioExpress2008と2010を2011年に使用してアプリケーションの確認等を行っていました。今は2024年もう十三年以上も経っています。私は、PCでもWindowsはXp,Vistaバージョンのものはいまだに持っています。Xpなどは、現在でも年賀上アプリをオフラインで印刷して使ったりしています。VistaのデスクトップPCはUbuntuとVistaを選択起動できるようにして、何かあればVistaで作成したアプリケーションも確認できるようにしています。あまりにも古いものですが、ソフトウェアはアイデアものという点で、今でも利用価値があると思っています。今回は、この物持ちのよいWindowsVistaの入ったデスクトップPCのVisualStudio2010Expressの当時確認していたC++を使ったハムログアプリの起動、停止、ハムログ入力フォームへのデータ送り、そして入力フォームに表示されたデータの取得の当時確認作成したソフトの動作を再確認してみました。
当時はI/Oをコントロールするdllライブラリ等に関しての使用方法や制御方法についてブログを書いていたころのものです。当時、2011年の頃の内容のブログです。

vbusbio.dllをVisual C++2008 その6
2008

2008-hamlog

vbausbio.dllをVisual C++2008Express その7

HAMLOGKIDOU


1つのフォームにいろいろと具たくさんに確認した内容を追加していったものです。最初はだれもやっていなかったVBUSBIOのVBのdllライブラリをC++で利用する方法から説明していったものでしたが、そのあとはハムログの起動、停止をする方法を動作確認したプログラムを追加し、そのあとはシリアル通信の制御をC++で行い、自分の当時のメイン無線機であるFT1000mpを制御コマンドによる操作制御および、自動での周波数読み取り等を追加したフォームです。元はVisualBasicでプログラム作成した物のC++への移植版ですが、やはり当時はVisualBasicにくらべ敷居が高く、一筋縄では作成できなかった思いがあります。かなりのネットでの調査やプログラム実験また、プログラム関連の専門書での勉強が必要だったと思います。ま、昔話なので割愛します。
本筋に戻し、確認はWindowsVistaでVisualStudioC++2010Expressの上記アプリはそのまま残っていましたのでコンパイルして当時と同じように動くのかを確認しました。問題なく確認したかったハムログの起動、停止、データの入力フォームへの転送、また、入力済みのフォームからのデータの部分読み取り、全体読み取り、方位距離の読み取りが問題なくコンパイル後動きました。
次に確認したこととして、今のPCはWindows10と11でVisualStudioCommunity2022(64ビット)Version17.11.2です。このVisualStudioCommunity2022で古いVista上でのC++でのアプリでを動かせるのかが、重要なポイントになります。今のWindows10や、11で動かせないと最初から移植になりますから、重要な確認になります。Hi!

当時のWindowsVistaではフレームに色がありましたが、下記の通りの入力フォームで開けています。

結論としては一発では動きませんでした。が、エラーの対策指示通りに処理をすることで、動作しました。
デバッグにあるあるファイルが対応していないというエラーでした。拡張子で(.pdb)は対応しないファイルエラーでしたので、削除はせずに、同等にファイルがなくなればよいだけなので、フォルダを作成し、その中に入れました。その後のコンパイルで問題なく通り、フォームが起動しました。

VISUAL-STUDIO-2022-HAMLOG-CPP


実際の起動フォーム画面です。

起動画面2022


ボタンのHamlog OPENで開いた入力フォームです。
ちなみにC++でのハムログオープンのコマンドボタンに割付けたプログラムは下記になります。

private: System::Void button11_Click(System::Object^  sender, System::EventArgs^  e) {
 if (Process::GetProcessesByName("hamlogw")->Length >0)
 {
String^ message = "Hamlogwはすでに起動しています。";
String^ caption = "Hamlogw run check";
MessageBoxButtons buttons = MessageBoxButtons::OK; 
System::Windows::Forms::DialogResult result;
result= MessageBox::Show(this,message,caption,buttons);
if(result == ::DialogResult::OK)
{ //return to the parent form.
return;
}
 } else {
Process^ ps = gcnew Process();
ps->StartInfo->FileName="Hamlogw.exe";

ps->StartInfo->WorkingDirectory= "C:\\Hamlog";

ps->EnableRaisingEvents=true;
 
textBox7->Text="Hamlog Active";
bool bSuccess;
bSuccess=ps->Start();
while (!ps->HasExited)
{
Application::DoEvents();
}
textBox7->Text="Hamlog Finish!";
  }
}

ハムログクローズのコマンドボタンに割付けたプログラムは下記になります。
private: System::Void button12_Click(System::Object^  sender, System::EventArgs^  e){
 array<Process^>^ ps=Process::GetProcessesByName("Hamlogw");
 for each (Process^ item in ps)
 {
item->Kill();
}
 }


一部データはCQ誌に連載投稿記事を書いている有名なOMさんで、よくQSOしていただいている方を入力しましたが、目隠しで誰だかはわからなくなっています。個人情報保護です。Hi!
秋田からは南方向182度で距離437㎞です。関東のあたりです。
入力フォーム1

上記のフォームの赤枠の 方位:182度 437㎞ をVisualStudioCommunity2022 C++で起動したアプリで読み取りしたところです。
アプリデータ取得

このフォームで使用したのが赤枠部で、コマンド値の117設定値と読み取りボタンData Receiveで読み取りした箇所が右上の赤枠部 ”方位182度437㎞“ になります。ちなみに2秒毎にこのData Receiveボタンをタイマー呼び出ししています。ここが味噌です。117の設定値を変えるとタイマー処理されているので個別に読み取りも設定値に合わせ入力フォームから読み取りを行って表示します。

C++ でのハムログデータの取得はVisualStudioCommunity2022 C++で動作するようになりましたのでおおよそ目途がつきました。上記のフォーム内にあるボタンにあるHamlog OPENボタン、Hamlog CLOSEボタン、設定値117を使って読み取るData Receiveボタンのプログラムを使えば方位読み取りに関しては事は足ります。
今回は、アプリを作成する高級言語プログラム環境を整える事が目的でした。うまくプログラムを動かせる状態になりました。
次のステップで確認する必要のある事は、C++ でのUDP通信プログラムということになります。
上記環境で動いたプログラムにてハムログに表示された方位角度の182を読み取りします。読み取りデータの数値部のみ抜き取りし、これをローティター制御のESP32DevKitCへ現状のスマフォでUDP通信するのと同じようにWindowsアプリからUDPデータ送出するアプリケーションの作成をすればよいという事になります。もちろん家庭内でのWiFiでのUDP通信アプリケーションです。
ネットをサラッと見ましたが、結構サンプルはあるようです。ステップバイステップで確認してゆきます。
スマフォでのローティター制御はできています。追加としてハムログとESP32DevKitCアプリでのローティターコントロールに方位読み取りWIFIでUDP通信するWindowsアプリケーションが無線を快適にしてゆく内容のうちの1つになればと思いやっています。

つづく?

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
アーカイブ
  • ライブドアブログ