Я использую socat для создания пары виртуальных последовательных портов. К одному я подключаюсь с помощью простой программы на C (используя termios), а к другому я хотел бы подключиться с помощью программы под названием Ardupilot Mega Planner (для RC-вещей). Однако Планировщик не распознает виртуальный порт (перечисленный в /dev/pts), а только устройства tty и устройства /dev/serial. Нужно ли делать какое-то специальное крепление, чтобы это работало? Или есть обходной путь, который я мог бы попробовать? Я попытался «связать» существующий последовательный порт (например, ttyS0), но я получаю сообщение об ошибке «неуместный ioctl», если я пытаюсь сделать что-то подобное (виртуальный порт к реальному порту, реальный порт к реальному порту). Есть идеи?
редактировать: после просмотра исходного кода программы (Планировщик миссий) кажется, что она только «распознает» (или добавляет порты) все устройства /dev/ttyS*, /dev/serial/by-id/* устройства, /dev/USB0 и /dev/ACM0. Поэтому либо мне нужно отредактировать исходный код, либо найти способ «проверить» порт ttyS*. По-прежнему кажется, что планировщик миссий просто не будет подключаться ни к каким устройствам ttyS *, кроме S1 или S0. Есть идеи? У меня такое ощущение, что это потому, что они как-то неправильно настроены.
редактировать 2: я, наконец, получил исходный код ArdupilotMega Planner и изменил его, чтобы он включал устройства из /dev/pts/. Тем не менее, я все еще получаю ту же проблему. Планировщик получает какую-то проблему, когда открывает порт. Есть ли какой-то параметр, который нужно сразу проверить/изменить, чтобы программа могла подключиться к нему? Собираюсь исследовать и попытаться более тщательно понять связь через последовательный порт...