[db:标题]

摘要:前言 据说不会上位机和游戏开发,都不好意思说自己会 C# 正好这俩我都不太会😂 这不来点一下上位机的技能树 这次的需求很简单,用 C# 模拟一个设备协议,实现不用去现场对接设备,也能先开发和调试上位机程序。
前言 据说不会上位机和游戏开发,都不好意思说自己会 C# 正好这俩我都不太会😂 这不来点一下上位机的技能树 这次的需求很简单,用 C# 模拟一个设备协议,实现不用去现场对接设备,也能先开发和调试上位机程序。 实际设备是用 RS-485 标准进行通信,模拟跑通之后,到现场只需要把RS-485 总线(A/B 差分线)插到 USB-RS485 转换器上就可以实现数据读取和指令下发了。 PS: 最近把我的博客小重构了一下,欢迎访问体验一下: http://blog.deali.cn/ 先放一些截图作为预告 本文要介绍只是最基础的前期工作 实际上这个项目要实现的是一个简单的物联网平台,不只是对接几台设备 系统的初版已经完成了,这里我先放几张截图 实时图表 设备控制 就这几个吧,其他的还不是很完善 前提 OK 说回正题,模拟串口设备需要的前提是这些 首先已经拿到了详细的设备协议文档 这个很关键,谁也没法摸黑去开发呀 操作系统: Windows/Linux 很神奇吧,Linux居然也能开发上位机?事实上 Linux 模拟设备更方便 不过为了方便开发调试,我这里还是以 Windows 系统为例 串口驱动 Windows 上模拟串口驱动: com0com 这个工具可以在系统里创建一对连通的 com 串口,比如 com3 <-> com4 在任何一端发信息,另一端都可以读取 我们就是用这个方式来模拟串口设备 PS: com0com 的图形界面需要安装 net framework 3.5 老古董才能用,我直接用命令行 Linux的话可以使用 tty0tty https://github.com/freemed/tty0tty 串口调试工具 串口调试工具开源的有很多 我这次试用了 llcom 和 Wu.CommTool 推荐 llcom,使用比较直观 项目地址: https://github.com/chenxuuu/llcom 可以直接在命令行安装 winget install llcom 界面长这样 com0com常用命令 前面说了 com0com 的图形界面需要安装 net framework 3.5 我肯定是不想安装这种老古董来污染我的电脑环境的 好在还有命令行可以用 这里列一些常用命令 查看当前有哪些虚拟串口 list 输出会显示每一对虚拟串口,例如: CNCA0 PortName=COM5 CNCB0 PortName=COM6 这说明有一对虚拟串口:COM5 <-> COM6。 创建一对新的虚拟串口 install PortName=COM5 PortName=COM6 这会创建一对虚拟串口,分别命名为 COM5 和 COM6,它们互相连通。 👉 以后就可以让: 模拟器程序 监听 COM5 上位机/主程序 打开 COM6 这样它们互相通信,等同于 RS-485 设备在现场。 删除一对虚拟串口 remove 0 删除标识符为 CNCA0 和 CNCB0 的那一对(0 是编号,可以从 list 查到)。 修改已有端口的参数 比如要修改 CNCA0 的端口号: change CNCA0 PortName=COM7 清理所有虚拟串口 uninstall ⚠️ 注意,这会把所有 com0com 的虚拟端口全删掉。 开发流程 创建一对虚拟串口: install PortName=COM3 PortName=COM4 编写 模拟器程序(C#),监听 COM3。
阅读全文