gpt4 book ai didi

c# - 如何设置串行特殊字符?

转载 作者:行者123 更新时间:2023-11-30 12:35:22 24 4
gpt4 key购买 nike

在我的ongoing quest为了与一些遗留设备交互,我发现供应商提供的软件将特殊字符设置为:

00 00 00 00 11 13 

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

1A 00 00 1A 11 13 

我想我有两个问题:

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

后者是我真正关心的,但我怀疑了解前者会有用。


更新:以下不起作用:

byte[] specialchars = {
0x00,
0x00,
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 LF 或单独的 LF。

特殊字符是这样处理的:

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

研究Win32 DCB structure可能对你有帮助以及。 .NET 在内部使用它来设置串行端口的状态。

关于c# - 如何设置串行特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com