Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换QBasic CHR$(13)和#x2B;CHR$(10)至C#_C#_String_Serial Port_Ascii_Qbasic - Fatal编程技术网

转换QBasic CHR$(13)和#x2B;CHR$(10)至C#

转换QBasic CHR$(13)和#x2B;CHR$(10)至C#,c#,string,serial-port,ascii,qbasic,C#,String,Serial Port,Ascii,Qbasic,我试图通过串行端口传递一个直接的ASCII文本命令,如下所示: string cmd = "<ID00><PA>Hello World. "; template.Serial.WriteLine(cmd); 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 PAG

我试图通过串行端口传递一个直接的ASCII文本命令,如下所示:

string cmd = "<ID00><PA>Hello World. ";
template.Serial.WriteLine(cmd);
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
string cmd=“你好,世界。”;
template.Serial.WriteLine(cmd);
Serial是SerialPort属性引用。我也尝试过“Write(cmd)”,但即使串口是打开的,命令似乎也不会通过。我发现我应该在消息的末尾添加回车符(cr)和换行符(lf),但我不知道如何在C#中实现这一点,即将所有内容转换为字节,但根据我对协议的理解,它需要作为ASCII文本传递

我发现某人的QBasic来源如下:

string cmd = "<ID00><PA>Hello World. ";
template.Serial.WriteLine(cmd);
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
100打开“COM1:9600,N,8,1,CS,DS,CD”作为1
200字#1,“;:REM标志地址,00表示所有
210打印#1,“;:REM页面“A”(消息编号,A-Z)
220打印#1,“;:REM可选显示模式(FA-FZ),“显示”
230打印#1,“;:REM可选颜色变化(CA-CZ),“红色”
240号印刷品#1,“你好,世界”:REM文本
250印本#1,CHR$(13)+CHR$(10);:REM必须以回车/换行结束

那么,如何将CHR$(13)+CHR$(10)转换为附加到c#code中字符串行末尾的字符,以便通过串行端口发送?

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

从字面上看,
CHR$(13)+CHR$(10)
((char)13)+((char)10)
,尽管为了清晰起见,最好使用字符串
“\r\n”
,实际上这不是一个好主意,他需要\r\n,不是系统的默认设置。这是事实,但在大多数情况下,这将等同于旧的vbCrLf。“\r\n”非常有效,我已经为此工作了将近一周,感谢您的帮助…)看见