2011-10-19 23 views
1

C#で作成されたWindowsフォームアプリケーションからシリアルポートを使用してマイクロコントローラにコマンドを送信しようとしています。C#Windowsフォームからシリアルポート経由でマイクロコントローラにコマンドを送信

メッセージ文字列は正しく渡されますが、問題はマイクロコントローラがEnterキーを押さないかぎり、コマンドを適用しないということです。私はそれをシミュレートすることはできません。

メッセージ文字列に"\r\n" , "\n" and Environment.NewLineを追加しようとしましたが、何もできませんでした。どうすればよいですか?

+2

「どうすればよいですか? - あなたのコードを投稿してください... –

+0

コマンドを送信するために使用しているコードは何ですか? –

+2

Enterキーを押しても、魔法のように何もシリアルポートに送信されません。あなたのアプリには、そのキーを押して何かをしているコード*があります。ステップ1)それが何であるかを調べる –

答えて

0

メッセージに新しい行を追加する代わりに、メッセージを送信した直後にコマンドを別々に送信してみてください。いくつかの洞察については、このSO question and answersを参照してください。特にKibbeeの答え:

serial.Write(new byte[]{13,10}, 0, 2); 

共通のプロセス文字列を処理する際にいくつかの点でそれらをトリミングすることである(末尾の空白をリード&を削除します。)別に新しい行を送信すると、この問題を回避するだろうが、それはまたになってしまう可能性がありハック最初に、メッセージ文字列がトリミングされているかどうかを確認します。トリミングコードがあれば削除する方が良い解決策になります。