将QBasic CHR $(13)+ CHR $(10)转换为C#

时间:2014-03-19 15:51:30

标签: c# string serial-port ascii qbasic

我正在尝试通过我的串口传递一个直接的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#代码中字符串行末尾的字符,以便通过串口发送?

2 个答案:

答案 0 :(得分:8)

在字面上,CHR$(13)+CHR$(10)((char)13) + ((char)10),但为了易读,最好使用字符串"\r\n"

答案 1 :(得分:0)

System.Environment.NewLine附加到您的字符串中。这相当于Windows系统上的“\ r \ n”(但它不适用于Unix系统)。