-1

シリアル設定に入ると、シリアル接続が閉じられます。アプリに着信するシリアルに間違ったボーレートを選択すると、フリーズし、デバッグがまだ機能しているためデバッグもできませんが、何をしているのかわかりません。

最終的に、私の質問は、選択したボーレートが正しいかどうかを確認する方法と、シリアルがアプリケーションをフリーズしないことを確認する方法です。

4

2 に答える 2

1

私はついにエラーをスローするようになりました。sp.ReadLine();を呼び出そうとしているとき。ReadLine()がタイムアウトしたことを示しています。タイムアウトは500です。

私はちょうど使用しました:

try {
  data = sp.Readline();
}
catch (TimeoutException errorEvent)
{
  //Write to console the errorEvent (This operation has timed out)
  //Message to user to pick correct baud
  tbConsole.AppendText(Environment.NewLine);
  tbConsole.AppendText("Incorrect Baud Rate: Please select a new baud rate");
  tbConsole.AppendText(Environment.NewLine);
  tbConsole.AppendText(errorEvent.Message);
  tbConsole.ScrollToEnd();
  //Show baud rate settings dialog
}
于 2011-09-21T20:08:39.200 に答える
0

残念ながら、間違ったボーレートを選択することはPEBKACです。これは、ユーザーに選択を許可している場合、ユーザーが間違ったことをするのを防ぐことができないためです。

彼らが正しいボーレートを選択することを確認する唯一の本当の方法は、ハードウェアを制御できる場合は選択させないこと、使用しているハードウェアを選択できるようにすること、ボー、dts、xonなどを構成することだと思います。それからではなく、彼らに指定させてください。

正しく思い出せば、SerialPortは別のスレッドで実行され、イベントをUIにポストバックします。したがって、ボーレートが正しくない場合は、これが原因で誤ったデータを取得している可能性があります。

于 2011-09-20T23:38:44.220 に答える