私は、いくつかの異なるコマンドを受け入れる実験室機器と通信しようとしています。この機器では、キャリッジリターンを使用して終了します(改行なし)。シリアルポートのキャリッジリターン問題
RealTermを使用し、必要に応じて接続を設定すると、ASCIIコマンドの1つとCR
文字を送信できます。装置は正しい応答を提供する。私はそれを送信するたびので
しかし、.NETのSerialPort
オブジェクトを使用する場合は、C#で\r
ように思えるが、必ずしも正しくない、私の楽器は、プリンタのタイムアウト/エラーに関連するエラーコードを示します(RS-232ポートがあります「プリンタ」と見なされていますが、マニュアルにはPCへの接続方法も記載されています)。
私のポートのNewLine
プロパティが\r
に設定されていることを確認しました。
_port.WriteLine(command); // error at the instrument once this executes.
_port.Write(command + _port.NewLine); // also error.
_port.Write(command); // executes without error, but next line errors:
_port.Write(_port.NewLine);
は、C#でRealTerm対\r
でCR
の間にいくつかの根本的な違いがあります:ここで私が試したカップルの事ですか?それとも、ここに何か他のものがありますか?
_port.NewLine、つまり_port.NewLine = "\ r"を設定しようとしましたか? – Graffito
[portmon](https://technet.microsoft.com/en-us/sysinternals/bb896644.aspx)のようなツールを実行して、適切な手動コマンドとコードの送信コマンドを比較すると、その違いが問題になります。 –
RealTermのようなプログラムはEnterキーを任意の文字に変換します。接続用に構成されている。 "\ n"と "\ r \ n"のような、まだ試していないものと同じです。 –