2011-01-27 12 views
1

シリアルポート経由でデバイスを読み取るC#アプリケーションを開発しました。私はそれに書き込みを達成するが、正しくはできない。今では私のsceneraioはデバイスをシリアルポートで自動的にフォーマットしています。まず、デバイスがそれを待っているときにkeypressを送信しなければなりません(私がrichtextboxで見ると、 "autobootを止めるためにどんなキーにも当てはまる")。どうやってやるの?私はシリアルポート(serialport1.write( "xxxx \ r \ n"))に書き込むことでこれを達成します。私はrichtextboxでヒットメッセージを取得しますが、richtextboxを休止するのは良い考えではないと思います。あなたは他の方法を提案できますか?シリアルポート経由でC#アプリとデバイスを同期する

私の重要な質問は、ヒットメッセージを処理して自動起動を停止することです。これで、整形するためにデバイスにコマンドを送信する必要があります。たとえば、最初はfdiskコマンド、もう1つはext3format、3つ目はfatformatです。これらのコマンドは、これらのコマンドをデバイスに送信すると時間がかかります。どのように私は私のコマンドとデバイスを同期することができます、私はそれをしようとすると私はいくつかの問題があるので。問題は、最初のコマンドを送信してデバイスがそのジョブを終了した後に、別のコマンドを送信しなければならないことです。私はリッチテキストボックスを休止することができ、出力に応じて休止命令を送ることができます。あなたは他の方法を提案できますか?私はrichtextbox出力を休止しなければなりません、コマンドを送信した後、デバイスがその仕事を完了したことを理解する他の方法はありますか?

を使用すると、シリアルポート接続(telnetの?)を介してデバイスにリモートコンソールを使用している、

答えて

2

どうやらありがとう、そしてデバイスは、Linuxを使用しています。基本的には、プログラムのユーザー入力と出力をシミュレートしています。

まず、デバイスがバイト単位で送信している出力を認識する必要があります。 "richtextbox"に焦点を当ててはいけません。あなたはデバイスから取得したものを表示するためにのみ使用しています。

シリアルデータを入力して処理し、認識できるデータパターン(formatコマンドの結果コード、コマンドプロンプトが再び表示されたときに送信されるテキストなど)を探す必要があります。 。

「ヒットキー」と表示されたら、デバイスが認識するシリアルポートを介して文字を送信する必要があります。

デバイスに送信されるコードの書式設定の方法と受信した文字の解釈方法に影響するため、デバイスが使用することを期待している端末モードエミュレーション(google this)も知っておく必要があります。

あなたのやりたいことは簡単ですが、基本的にはデバイスの自動化されたリモート端末を作成していますが、読んでいく必要があります。テキストボックスの表示に焦点を当てずに、あなたのデバイスの中と外に。

+0

お返事ありがとうございます。私はいくつか試してみます。 –

+0

"とテキストボックスの表示に焦点を当てずに、デバイスに出入りするデータバイトに焦点を当て始めます。怠惰な/弱い開発者がUIウィジェットを適切なデータ構造のためのすばやく厄介な代替品として使用するこれらすべてのRADツールの副作用です!うそつき :) –

関連する問題