Я пытался взаимодействовать со сканером, подключенным через USB к виртуальному COM-порту, чтобы запустить его последовательной командой. Я ограничен в использовании Powershell из-за характера среды (рабочий компьютер, нет доступа к другим приложениям или даже разрешено запускать скрипты .ps1). Я могу создать / открыть порт, установить некоторые параметры и получить данные со сканера, однако, похоже, что независимо от того, какую команду я отправляю через $ 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()
Я безуспешно пробовал все следующие комбинации команд для отправки на порт:
- порт. WriteLine ("\ 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")
Вот изображение, на котором показана дополнительная информация о $ port от Powershell: https://i.stack.imgur.com/3Aje4.png