5

次のような、シリアル ポートを介してストレート ASCII テキスト コマンドを渡そうとしています。

string cmd = "<ID00><PA>Hello World. ";
template.Serial.WriteLine(cmd);

Serial は SerialPort プロパティ参照です。「Write(cmd)」も試しましたが、シリアルポートが開いていてもコマンドが通過しないようです。メッセージの末尾にキャリッジ リターン (cr) とライン フィード (lf) を追加する必要があることがわかりましたが、すべてをバイトに変換する以外に C# でこれを行う方法がわかりませんが、プロトコルの理解から、ASCII テキストとして渡す必要があります。

次のような誰かの QBasic ソースを見つけました。

100 OPEN "COM1:9600,N,8,1,CS,DS,CD" AS 1
200 PRINT #1,"<ID00>";:REM SIGN ADDRESS, 00 FOR ALL
210 PRINT #1,"<PA>";:REM PAGE "A" (MESSAGE NUMBER, A-Z)
220 PRINT #1,"<FQ>";:REM OPTIONAL DISPLAY MODE, (FA-FZ), "APPEAR"
230 PRINT #1,"<CB>";:REM OPTIONAL COLOR CHANGE, (CA-CZ), "RED"
240 PRINT #1,"Hello World";:REM TEXT
250 PRINT #1, CHR$(13)+CHR$(10);:REM MUST END IN CARRIAGE RETURN/LINE FEED

では、CHR$(13)+CHR$(10) を、シリアル ポート経由で送信される C# コードの文字列行の末尾に追加する文字に変換するにはどうすればよいでしょうか?

4

2 に答える 2