2007年8月30日木曜日

VC++2005 で シリアル通信を行う

前回 CreateFile() のエラーのため、別の方法でシリアル通信を行うことにしました。
ツールボックスにある”serialPort”を行うことにしました。

いろいろ試行錯誤してやっとテキストボックスに受信データを表示できるようになりました。

//-------------------------------------------------------------------
//■シリアルポート受信スレッド
private: System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e) {
unsigned char rcvData = serialPort1->ReadByte();
System::String^ string1;
String^ moji = string1->Format("{0:X}" , rcvData);
SetText( moji );
}
//■デリゲート
delegate void SetTextCallback(String^ text);
//■テキストボックスセット
private: void SetText(String^ text){
if( this->textBox1->InvokeRequired ){
SetTextCallback^ d = gcnew SetTextCallback(this, &t070824::Form1::SetText);
this->BeginInvoke( d, text );
}
else{
this->textBox1->Text += text;
}
}
//-------------------------------------------------------------------

0 件のコメント: