加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何设置序列特殊字符?

发布时间:2020-12-15 17:16:06 所属栏目:百科 来源:网络整理
导读:在我的 ongoing quest与一些传统设备接口时,我发现供应商提供的软件将特殊字符设置为: 00 00 00 00 11 13 但.NET的SerialPort类将它们设置为: 1A 00 00 1A 11 13 我想我有两个问题: 这些字节是什么意思? 我如何告诉SerialPort使用一组特定的特殊字符?
在我的 ongoing quest与一些传统设备接口时,我发现供应商提供的软件将特殊字符设置为:

00 00 00 00 11 13

但.NET的SerialPort类将它们设置为:

1A 00 00 1A 11 13

我想我有两个问题:

>这些字节是什么意思?
>我如何告诉SerialPort使用一组特定的特殊字符?

后者是我真正关心的,但我怀疑前者是有用的知道.

更新:以下不起作用:

byte[] specialchars = {
    0x00,0x00,0x11,0x13
};

this.port.NewLine = System.Text.Encoding.ASCII.GetString(specialchars);

更新2:根据要求,这里是the vendor supplied app的Portmon日志(已过滤以删除数千个IOCTL_SERIAL_GET_COMMSTATUS条目)和my attempt to match even the first exchange.

解决方法

NewLine不是您想要的.这是普通的旧“新线”序列,例如仅CR CR或LF.

特殊字符的处理方式如下:

> EOF – 设置为0x1a,您无法在.NET中更改它
> ERR – 由SerialPort.ParityReplace设定
> BRK – 不知道
> EVT – 设置为0x1a,您无法在.NET中更改它
> XON – 设置为0x11,你无法在.NET中更改它,它甚至通常不会生成sesn
> XOFF – 设置为0x13,你不能在.NET中更改它,它甚至通常不会生成sesn

您也可以学习Win32 DCB structure.它在内部用于设置串口的状态.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读