Поэтому я пытаюсь подключить встроенное устройство Linux к серверу через последовательный порт RS485.
Я использую адаптер USB / RS для подключения его к ноутбуку.
Сервер может получить запрос и отправить ответ, но клиент не получает ответ.
чтобы узнать больше, я попытался проверить соединение между устройством и ноутбуком с помощью Power Shell
PS C:\Users\oziat.VIX> $port= new-Object System.IO.Ports.SerialPort COM4,9600,None,8,one
PS C:\Users\oziat.VIX> $port.open()
PS C:\Users\oziat.VIX> $port.ReadLine()
hello
от клиента:
echo "hello" > /dev/ttymxc1
То есть, если я пытаюсь отправить данные с powershell, я ничего не получаю с другого конца
PS C:\Users\oziat.VIX> $port.WriteLine("Hello world")
# cat /dev/ttymxc1
_
Я пытался проверить, нет ли проблем с оборудованием. Я почти уверен, что это не так (учитывая тот факт, что я могу получать данные на сервер)
Выход из серийного номера
# setserial /dev/ttymxc1
/dev/ttymxc1, UART: undefined, Port: 0x0000, IRQ: 32, Flags: low_latency
#
Я не знаю, почему для uart установлено значение undefined, и я не смог его изменить
setserial: can't set serial info: Invalid argument
Заранее спасибо :)
Edit:
Мне удалось определить проблему, устройство поставляется предварительно настроенным в режиме RS422, мне пришлось настроить его для работы в режиме RS485, используя ioctl()