0

現在、Windows の下の C++ アプリケーションにシリアル接続ターミナルを実装しています。シリアル接続で Windows ハイパーターミナルを使用して機器と通信していました。

たとえば、ハイパーターミナルの場合:

> C (then hit Enter)
> Bla bla bla... Answer from the equipment

C++ でのシリアル接続の場合:

send("C\n\r");

何も起こらなかった。「コマンドの終了」文字を待つだけです。

Jeff Atwood ブログで LF/CR について少し読んだ後、CR + LF の可能な組み合わせを試してみました。それらのどれも仕事をしません。

だから私の質問は、ハイパーターミナルが「入力が入力されました、処理しましょう」と解釈する文字のシーケンスは何ですか。

Ps: 私のシリアル接続は問題なく動作しています。現在、両方の方法で使用しています。こちら側には問題はありません。

4

1 に答える 1

3

デフォルトでテレタイプをエミュレートするため、Enter キーを押すとキャリッジ リターン (ASCII コード 0x0d または '\r') が送信されます。キーボードには、以前のテレタイプのような改行キーがなくなったため、Ctrl+J を押して改行 (ASCII コード 0x0a または '\n') を生成する必要があります。

通常のシーケンスを念頭に置いてください。キャリッジ リターンが最初の "\r\n" です。send("C\n\r") を使用している場合は、コードを調整する必要があるかもしれません。

いじってから時間がかかりすぎましたが、Enterを押したときに改行またはcr + lfを送信するように指示する構成がiircにありました。

于 2014-02-14T13:20:08.560 に答える