我一直在尝试通过虚拟com端口上的USB连接扫描仪,以便通过串行命令触发它。由于环境的性质,我被限制使用Powershell(工作计算机,无法访问其他应用程序,甚至不允许运行.ps1脚本(。我可以创建/打开端口,设置一些参数,并从扫描仪接收数据,但无论我通过$port.Write(命令(发送什么命令,都不会发生任何事情。我确实有正确的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.WriteLine("\x16\T"(
- .WriteLine("\x16T"(
- WriteLine("x16T"(
- .写入("\x16\x54\x0d"(
- .写入('\x16\x54\x0d'(
- 写入("x16x54x0d"(
- 写入("x16,x54,x0d"(
- .写入("\x16M\x0d\x16T\x0d"(
- .写入('\x16M\x0d\x16T\x0d'(
- .写入("\x16T\x0d"(
- .写入("\x16T\r\n"(
- .写入("\x16T\r"(
- .写入("\x16t\r"(
- 写入("53,59,4e,54,43,52"(
- 写入("0x53 0x59 0x4e 0x54 0x43 0x52"(
- 写入("53 59 4e 54 43 52"(
这是一张图片,显示了有关Powershell的$端口的更多信息:https://i.stack.imgur.com/3Aje4.png
要发送三个字节0x16 0x54 0x0d,请尝试发送:
[char]22+[char]84+[char]13