0

マイクロコントローラの期間プロジェクトの一環として、セキュリティ システムを実装しようとしています。私はソフトウェアの終わりをほぼ終えました。セキュリティ システムのインジケータまたはアラーム デバイスとして機能する GUI を設計する必要があるだけです。マイクロコントローラはセンシング回路を利用して、システムが侵害されたかどうかを確認し、アラーム信号を PC にシリアルで送信します。C++ を使用して PC のシリアル ポートからデータを読み取っていますが、すべてがうまく機能します。ただし、コンソールベースの環境で実行しています。私が知っているのはそれだけです。私は電子技術者になるために勉強しています。:P

しかし、それは受け入れられません。プロジェクト用の GUI を設計する必要があります。

質問 1: 既存のコードを GUI と統合できる方法はありますか? 私はこれをすでにあまり運がなくてもグーグルで検索しました。すべての答えは、Qt などの外部ライブラリの方向性を示しているようです。時間があまりないので、これはちょっと怖いです。

質問 2: 前述したように、外部ライブラリなどを使用する必要があるという考えに少しおびえているので、Visual C++ ベースの Windows フォーム アプリケーションを使用して、Visual Studio で GUI を作成しようとしました。ツールボックスの serialport ユーティリティを使用しました。その方法でCOMポートからデータを読み取ることはできませんでしたが、データを書き込むことはできます。

フォームは次のようになります。

ここに画像の説明を入力

ボタンを押すと、シリアルポートから読み取ったデータをテキストボックスに表示しようとしています。ボタンに使用しているコードは次のとおりです。

private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) 
{}

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
this->serialPort1->PortName = "COM1";  
this->serialPort1->Open();
this->serialPort1->BaudRate = 9600;
try
{
this->textBox1->Text=this->serialPort1->ReadLine();
}
catch(TimeoutException^)
{
this->textBox1->Text="Timeout Exception";
}
this->serialPort1->Close(); 

私が間違っていることを教えてもらえますか?私はこれが初めてです。これは私の好みの方法です。

4

3 に答える 3

0

質問 1 については、MFC ライブラリを使用することをお勧めします。これは非常に簡単です。これは、開始するのに適した例です。 http://depts.washington.edu/cmmr/biga/chapter_tutorials/1.C++_MFC_D3DOGL/1.StepByStepGuide/index.html

そして、私が理解していることに基づいて、コンソールベースの環境でデータを読み書きすることができます。GUI は、データの入力または表示にのみ使用されます。この場合、目的に合った MFC プロジェクトを簡単にプログラミングできます。

2 番目の質問については、シリアル ポートから読み取ったデータを、ボタンを押してエディット ボックスに表示しようとした場合です。まず、変数を編集ボックスに追加する必要があります (例: ) edit_box_value。そして、そのボタンをクリックした関数で、次のようなコードを実装します。

edit_box_value.Format(_T("%s"), data_to_be_displayed);
UpdateData(FALSE); 
于 2013-10-22T02:33:44.743 に答える