Я пытаюсь создать скрипт powershell, который отправляет строку из 1 COM-порта в другой. Строка должна отображаться на экране teraterm принимающего порта. Но я не могу заставить его работать, хотя он должен быть прямым. Экран teraterm просто пуст.Последовательная связь Powershell to teraterm
Установки: У меня есть последовательный адаптер 2 usb (COM3, COM4), оба связаны с физическим последовательным кабелем.
код PowerShell:
[System.IO.Ports.SerialPort]::getportnames()
#prints COM1 COM3 COM4
$STX = [char] 2
$ETX = [char] 3
$port= new-Object System.IO.Ports.SerialPort COM4,9600,None,8,one
$port.open()
$port.Write("Hello world\r\n")
$port.close()
$port.open()
$port.Write("Hello world\n")
$port.close()
$port.open()
$port.Write("Hello world\r")
$port.close()
$port.open()
$port.WriteLine("Hello world")
$port.close()
$port.open()
$port.WriteLine($STX+"Hello world"+$ETX)
$port.close()
read-host
Все, что я пропустил или какие-либо указатели?
Дополнительно: попытался также посылать строки с CMD и C#
Нам удалось отправить строку из старого портативного устройства (так кабель хорошо)
Вы пробовали подключения КПК и передачи данных на COM4, а затем делать '$ Port.Open(); $ Port.ReadExisting(); $ Port.Close()', чтобы увидеть, если вы можете читать из порта? Поскольку это USB-адаптер, PowerShell может не видеть его так, как вы ожидали, поэтому вы можете отправлять данные в ничто. – TheMadTechnician
Строка '" Hello world \ r \ n "' ... вы получаете другой ответ, если вы попробуете '' "Hello world'r'n" ''. Backtick - это escape-символ PowerShell. – Matt
@Matt не меняет еще никакого ответа – dwana