1


1

C#プログラムでASCII文字を送信する方法

C#プログラムがシリアルポートインターフェイスとして機能するには、「ENQ」を送信し、「ACK」を返送する必要があります。

このフォーラムの以前の質問への返信で理解したことから、システムは「5」を送信し、「6」(ENQおよびACKに相当するASCII)を返すことを期待していると思います。 +したがって、「ENQ」である文字列を送信する代わりに、「5」である文字を送信できますか?

「5」はC#のASCII 5ではないことを指摘したすべての回答に感謝します。 +さて、コメントを読みました。試してみます:

serialPort.Write(new byte[]{5},0,1);

3 Answer


3


シリアルポートを介して、値5の符号なしバイトを送信します。

確認するには確認する必要がありますが、おそらくすべてが署名されていないため、値として0〜255を取得できます。


1


SerialPortオブジェクトとWriteLineメソッドを使用している場合、これを試してください:

SerialPort serialPort = ...;
...
string message = ((char) 5).ToString();
serialPort.WriteLine(message);

コメントに対処するために、 `SerialPort.NewLine`プロパティを「送信終了」文字(この場合はchar 5)に変更できます。 ETXを「メッセージの終わり」文字として使用したいくつかのマシンに対して開発しました。 引き続き「Write」を使用していて、メッセージを終了するためにchar 5を書き込む必要がある場合は、このルートを検討してください。


0


C#文字がUnicode 16ビット文字を保持しているため、5文字の文字を送信することはできません。

ただし、値5のn符号なしバイトを送信できます。