如何 send/write 串行命令到虚拟 com 端口上的霍尼韦尔 1300g 扫描仪?
How to send/write serial command to Honeywell 1300g scanner on virtual com port?
我一直在尝试与通过虚拟 com 端口上的 USB 连接的扫描仪连接,以便使用串行命令触发它。由于环境的性质(工作计算机,无法访问其他应用程序甚至不允许 运行.ps1 脚本),我只能使用 Powershell。我能够 create/open 一个端口,设置一些参数并从扫描仪接收数据,但是似乎无论我通过 $port.Write(command) 发送什么命令,都没有任何反应。我确实有正确的 COM 端口,正确匹配的波特率。根据用户指南,触发命令是 SYNTCR 或 0x16 0x54 0x0d,但我就是不知道如何正确格式化它。到目前为止,这是我在控制台中输入的内容:
$port = New-Object System.IO.Ports.SerialPort COM3, 38400, None, 8, one
$port.DTREnable = $True
$port.RTSEnable = $True
$port.Open()
$port.Write(command)
$port.ReadExisting()
$port.Close()
我已尝试将以下所有命令组合发送到端口,但均未成功:
- port.Write行("\x16\T")
- .WriteLine("\x16T")
- .WriteLine("x16T")
- .Write("\x16\x54\x0d")
- .Write('\x16\x54\x0d')
- .Write("x16 x54 x0d")
- .Write("x16,x54,x0d")
- .Write("\x16M\x0d\x16T\x0d")
- .Write('\x16M\x0d\x16T\x0d')
- .Write("\x16T\x0d")
- .Write("\x16T\r\n")
- .Write("\x16T\r")
- .Write("\x16t\r")
- .Write("53,59,4e,54,43,52")
- .Write("0x53 0x59 0x4e 0x54 0x43 0x52")
- .Write("53 59 4e 54 43 52")
这是一张图片,显示了有关 Powershell 的 $port 的更多信息:
https://i.stack.imgur.com/3Aje4.png
要发送三个字节 0x16 0x54 0x0d 尝试发送:
[char]22+[char]84+[char]13
我一直在尝试与通过虚拟 com 端口上的 USB 连接的扫描仪连接,以便使用串行命令触发它。由于环境的性质(工作计算机,无法访问其他应用程序甚至不允许 运行.ps1 脚本),我只能使用 Powershell。我能够 create/open 一个端口,设置一些参数并从扫描仪接收数据,但是似乎无论我通过 $port.Write(command) 发送什么命令,都没有任何反应。我确实有正确的 COM 端口,正确匹配的波特率。根据用户指南,触发命令是 SYNTCR 或 0x16 0x54 0x0d,但我就是不知道如何正确格式化它。到目前为止,这是我在控制台中输入的内容:
$port = New-Object System.IO.Ports.SerialPort COM3, 38400, None, 8, one
$port.DTREnable = $True
$port.RTSEnable = $True
$port.Open()
$port.Write(command)
$port.ReadExisting()
$port.Close()
我已尝试将以下所有命令组合发送到端口,但均未成功:
- port.Write行("\x16\T")
- .WriteLine("\x16T")
- .WriteLine("x16T")
- .Write("\x16\x54\x0d")
- .Write('\x16\x54\x0d')
- .Write("x16 x54 x0d")
- .Write("x16,x54,x0d")
- .Write("\x16M\x0d\x16T\x0d")
- .Write('\x16M\x0d\x16T\x0d')
- .Write("\x16T\x0d")
- .Write("\x16T\r\n")
- .Write("\x16T\r")
- .Write("\x16t\r")
- .Write("53,59,4e,54,43,52")
- .Write("0x53 0x59 0x4e 0x54 0x43 0x52")
- .Write("53 59 4e 54 43 52")
这是一张图片,显示了有关 Powershell 的 $port 的更多信息: https://i.stack.imgur.com/3Aje4.png
要发送三个字节 0x16 0x54 0x0d 尝试发送:
[char]22+[char]84+[char]13