1

私のプロジェクトでは、ターミナルのようなカスタム ウィンドウを作成し、コンソール ポート経由で Cisco ルーターに接続する必要がありました。そこで、TextBox を継承し、WPF でカスタム コントロールを作成しました。それで十分だと思いました。必要な追加機能を実装するためのコードを追加するだけです。一度に 1 文字ずつ送信し、応答を待ちます。しかし、カスタム端末が特殊文字を処理しないことがわかりました。 \n のような基本的な文字は認識されますが、他のすべての文字は認識されません。テキスト ファイルに応答を書きましたが、それらの特別な応答がかなり多くありましたが、どのように応答すればよいかわかりません。誰かが特定の制御文字に反応する方法についての情報を知っているか、リンクを見つけたのではないでしょうか? ここに送信された文字のみを見つけました、しかしそれについては他に何もありません。「BS」の場合、改行の前の 1 文字を削除することは理解していますが、「ACK」または「DC1」を受け取った場合はどうすればよいですか? 多分私はそれらをスキップする必要がありますか?何か案は?


編集:一度に 1 文字を送信する以外に、Enter または ? のような文字を送信した場合にのみ応答が返されます。またはTAB。次に、応答を受信すると、80x25 ターミナル ウィンドウのようにテキストをフォーマットするために、特別な文字が混合されます。そして、私はそれを好きなように表示したいのですが、それは、特別な文字を取得したときにどのように反応するかを知る必要があることを意味します。特別な文字に基づいて通常のテキストをフォーマットするだけで、表示する必要はありません。受け取ります。BS を取得したときはキャリッジの前に文字をクリアする必要があり、DEL を取得したときはキャリッジの後に文字をクリアする必要があります。そして、他の特殊文字を取得するときに何をする必要があるか知りたいです。私はそれを難し​​い方法で行うことができ、それらを動作中の端末に送信して、それが何をするかを確認することができることを知っていますが、しばらく時間がかかるので、誰かが答えを知っているのではないかと思います.

4

1 に答える 1

0

わかりました、ターミナルで苦労しましたが、処理する必要がある唯一の特殊文字は BS であることがわかりました (もちろん、これは Cisco ルーターでのみ試しましたが、作業する必要があるだけです)。唯一の問題は、あなたが独自のコードを作成して機能させ、BS カウントに基づいて適切な場所にキャレットを移動する必要があります。TextBox CaretIndex は期待どおりに動作したくなかったため、キャレット インデックスを格納する独自の変数を作成することをお勧めします。私の知る限り、残りの特殊文字は省略できます。そして、それは私が望んでいたようにうまく機能します。

于 2011-10-04T20:12:06.133 に答える