开发工具 vs2022
开发环境 .NET 8.0
支持跨平台

Gitee
Github

下载最新版本

系统结构图

运行效果图

下图中的两个串口调试工具,仅为演示效果使用,实际场景中一个是你的设备,另一个是你的应用程序。

开发初衷

有一台串口设备在客户那边,客户接在他本地的工控机上,我这边远程开发调试。开始是模拟数据包开发的,但感觉这样仍然不太方便。所以就想找一个工具能够将设备的数据转发到我这里,方便开发。
暂时没有找到合适的工具,所以就自己临时开发一个,方便自己使用,目前基本满足使用,后期再慢慢完善。

使用方法

  1. 将 com2com.exe 复制到设备连接的电脑主机上,和本地开发机,各一份。
  2. 设备连接的电脑(称为 A 主机),能够用串口工具正常通讯。
  3. 开发主机(称为 B 主机),需要使用虚拟串口工具,模拟出一对串口。比如 com1 和 com101。
  4. 在 A 主机上运行 com2com.exe portName=com101 baudRate=9600 sendKey=aaaaaaa rcvKey=bbbbbb mqttServer=broker.emqx.io,COM1 是和设备通讯的串口号,9200 是波特率。后面的 a,b 为密钥对。前面的 a 表示自己,后面 b 表示要发给谁。
  5. 在 B 主机上运行 com2com.exe portName=com1 baudRate=9600 sendKey=bbbbbb rcvKey=aaaaaaa mqttServer=broker.emqx.io,此时主机打开 com1 串口,就可以正常通讯了。主机可以认为 com1 接的就是远程的设备。

原理介绍

利用 mqtt 服务器做中转,设备侧 A 主机收到的数据发送到 mqtt 服务器上。B 主机通过订阅主题,可以收到相应的数据,再通过虚拟串口发给 B 主机的串口上。

公网免费开放的 mqtt 服务器

broker.mqttdashboard.com  
broker.emqx.io

使用示例

分别在开发机和设备主机执行下面的指令

开发机

com2com.exe portName=com101 baudRate=9600 sendKey=aaaaaaa rcvKey=bbbbbb mqttServer=broker.emqx.io

设备主机

com2com.exe portName=com1 baudRate=9600 sendKey=bbbbbb rcvKey=aaaaaaa mqttServer=broker.emqx.io

参数说明

com2com.exe 是主程序,以下参数大小写不能改变,各参数是间用空格分开。

参数 说明 示例
portName 串口号,以com开头,比如com1 portName=com101
baudRate 串口波特率 baudRate=9600
sendKey 发送密钥 sendKey=aaaaaaa
rcvKey 接收密钥 rcvKey=bbbbbb
mqttServer mqtt服务器地址 mqttServer=broker.emqx.io
mqttUserName mqtt登录用户名 mqttUserName=test
mqttPwd mqtt登录密码 mqttPwd=test@88888

发送密钥和接收密钥是两个密钥对,必须成对出现。在设备侧是 a和b,在开发机侧就是 b和a。字符串随意起。但是最好是唯一的,如果其他人也使用同样的密钥对,就也能接收到你的数据了。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐