首页 > 解决方案 > 如何连接两个虚拟串口从 GPSFeed+ 读取数据?

问题描述

最近我下载了 gpsfeed+文件,我设置了可执行属性并使用(操作系统:Manjaro)运行它:

$ ./gpsfeed+_amd64\

我正在尝试列出通过 Dart 程序连接的所有端口(此处使用包dart_serial_port进行代码),但它什么也没列出。我假设这是因为没有连接虚拟串口,但我不知道如何得到这个。有一个像com0com这样的程序,但它只能在 Windows 上运行。

有什么推荐吗?有没有其他类似的模拟器gpsfeed

PS: gpsfeed+配置为使用 COM3(协议 RS-232)工作。

标签: linuxdartconnectionsimulatorvirtual-serial-port

解决方案


脚步

$ 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+
  1. 连接>> 检查:串行,并取消选中:TCP、UDP、Http
  2. 串行/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)不适用于虚拟端口。


推荐阅读