私は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();
}
}
のTeraTermから、私はボーレートが9600であることを知って、パリティ=なし、データビット= 8 、およびストップビット= 1。私はCOMを選択するためにコンボボックスを使用します、そして、私がそれを設定するために使用するコードはここにあります。元の投稿を更新して、ポートを設定して開いた場所を含めました。そのリンクから私が知ることから、port.DataReceived + =新しいSerialDataReceivedEventHandler(port_dataReceived);バッファにデータがあれば、私のコードを自分のport_dataReceivedメソッドに送るべきです。しかし何らかの理由で、それはしません。 – Kevin
私は自分のプログラムを行うためにCSラボを使っていて、UBWファームウェアがコンピュータにインストールされていないことを完全に忘れてしまったばかげたことです。それは私のラップトップで動作します。 – Kevin