2012-05-03 17 views
1

私はUBWをC#でプログラミングしてコマンドを受け取り、入力を取り戻そうとしています。たとえば、私がTeraTermでUSB接続を確立すると、入力vは私が使用しているUBWの現在のファームウェアバージョンの出力を与えます。シリアルポート(UBW用)へのリード/ライト

私はC#で確立された接続を持っています。コマンドを正しく送信していると思いますが、データ受信ハンドラはデバッガでは呼び出されません。

private void button1_Click(object sender, EventArgs e) 
    { 
     if (port.IsOpen) 
     { 
      //write command to port 
      port.WriteLine(textBox1.Text); 

     } 

     else 
     { 
      MessageBox.Show("Serial port is closed! Try again!"); 
     } 

     textBox1.Clear(); 

    } 

ここで(デバッガから呼び出されることはありません)、それから読み取るしようとするコード

private void port_dataReceived(object sender, SerialDataReceivedEventArgs e) 
    { 
     try 
     { 
      port.ReadLine(); 

     } 

     catch { } 

    } 

がここにある:ここでは

は、ポートへの書き込みをしようとするコードがありますどのように動作するかを示すUBWホームページです。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string portName = comboBox1.SelectedItem.ToString(); 
     port = new SerialPort(portName, 9600, Parity.None, 8, StopBits.One); 
     port.DataReceived += new SerialDataReceivedEventHandler(port_dataReceived); 
     try 
     { 
      port.Open(); 
      //port.DataReceived += new SerialDataReceivedEventHandler(port_dataReceived); 
     } 
     catch 
     { 
      MessageBox.Show("The selected serial port cannot be opened!"); 
      Application.Exit(); 
     } 

    } 

答えて

0

のTeraTermのCOMポートのプロパティに移動して、あなたのコード内で同じプロパティを使用していることを確認してください:私のポートを設定するにはhttp://schmalzhaus.com/UBW/

マイコンボボックスコード。

が(それはそれを容易にするためのシリアル多くのものを包み込む)このクラスを使用してみてください:

http://code.google.com/p/flux3gui/source/browse/Flux3GUI/SerialCommunication.cs?r=b4a4f8546b936eeabe60b7de32e3027493498dc6

+0

のTeraTermから、私はボーレートが9600であることを知って、パリティ=なし、データビット= 8 、およびストップビット= 1。私はCOMを選択するためにコンボボックスを使用します、そして、私がそれを設定するために使用するコードはここにあります。元の投稿を更新して、ポートを設定して開いた場所を含めました。そのリンクから私が知ることから、port.DataReceived + =新しいSerialDataReceivedEventHandler(port_dataReceived);バッファにデータがあれば、私のコードを自分のport_dataReceivedメソッドに送るべきです。しかし何らかの理由で、それはしません。 – Kevin

+0

私は自分のプログラムを行うためにCSラボを使っていて、UBWファームウェアがコンピュータにインストールされていないことを完全に忘れてしまったばかげたことです。それは私のラップトップで動作します。 – Kevin

関連する問題