#linux #dart #connection #simulator #virtual-serial-port
#linux #дротик #подключение #тренажёр #виртуальный последовательный порт #dart
Вопрос:
Недавно я скачал файл gpsfeed , установил атрибут executable и запустил его с помощью (OS: Manjaro):
$ ./gpsfeed _amd64
Я пытаюсь перечислить все порты, подключенные через программу Dart (код здесь с помощью пакета dart_serial_port), но в нем ничего не указано. Я предполагаю, что это связано с тем, что виртуальные последовательные порты не подключены, но я не знаю, как это получить. Существует такая программа, как com0com, но она работает только в Windows.
Есть какие-нибудь рекомендации? Есть ли другие подобные тренажеры gpsfeed
?
PS: gpsfeed
настроен для работы с использованием COM3 (протокол RS-232).
Ответ №1:
Шаги
- Скачать
gpsfeed
с https://gpsfeed.sourceforge.io / - Сделайте исполняемый файл загруженным:
$ chomod x gpsfeed _amd64
- Установить
socat
пакет:
$ sudo pacman -S socat
- Создайте пару виртуальных последовательных портов (VSP) с
socat
:
$ socat -d -d pty,raw,echo=0 pty,raw,echo=0
- Он отображает созданные виртуальные порты, в данном случае:
/dev/pts/4
и/dev/pts/5
. Один порт будет передатчиком, а другой — приемником. - Открыть
gpsfeed
приложение:
$ ./gpsfeed _amd64
- В конфигурации
gpsfeed
для выполнения:
- Подключение>> проверьте: последовательный и снимите флажок: TCP, UDP, Http
- Последовательный / IP >> Порт: / dev/ pts /4 (передатчик), скорость: 9600
- Запустить симулятор (кнопка с концентрическим кругом в качестве значка)
- Чтение данных из /dev/pts/5 (приемник)
Код Python (установочный pyserial
пакет):
import serial
ser = serial.Serial('/dev/pts/5', 9600)
iter = 5
while iter > 0:
print(ser.readline().decode("utf-8"))
iter -= 1
Очень немногие существующие пакеты для Dart (например dart_serial_port
) не работают с виртуальными портами.