最近同事在调试硬件的串口通讯功能 , 由于PLC暂时还没到 , 所以准备用USB转串口线连接在终端上 , 通过电脑USB口模拟串口收发功能 。一开始同事下载了一款串口调试工具 , 发现没有自定义功能 , 比如通讯串口收到终端发送的数据 , 需要自动应答对应指令数据(ModBus 主从问答方式) 。为了配置同事硬件调试 , 准备下载一个开源的串口调试工具 , 增加自定义应答功能 。
文章插图
Serial port
串口调试开源软件搜索【基于WPF的串口调试工具】打开github网站搜索串口调试 , 我们搜索到一款名为WPFSerialAssitan的串口调试软件感觉比较符合我们的要求 。其README.md文件的介绍如下:
WPFSerialAssitan 串口助手是一款基于C#及WPF的串口助手软件 。本串口助手操作方便 , UI简洁 。软件实现了基本的串口通讯需要的功能 , 开发者可以基于此添加自定义的功能 。此外 , 可以基于此开发出一些简单的串口控制类软件 。我们将代码克隆到本地 , 当然也可以先fork一份到自己的仓库再克隆到本地 , 这样修改后我们可以将更改推送到github上 。我们使用vs2019打开工程 , 查看下其基本的代码结构 。
文章插图
WPFSerialAssitan code
串口调试开源软件修改我们可以看到核心的代码 , 基本在EventHandler.cs、core.cs 等2个类文件中 , 我们定义一个Dictionary,将收到的指令和需要应答的指令一一定义起来 。
文章插图
WPFSerialAssitan even code
然后我们修改红色方框内的代码 , 对收到的数据进行判断 , 如果在属于字典autoReply则自动将对应的内容应答到串口 。
string recvString = Utilities.BytesToText(recvBuffer, receiveMode, serialPort.Encoding);this.Dispatcher.Invoke(new Action(() =>{if (showReceiveData){// 根据显示模式显示接收到的字节.recvDataRichTextBox.AppendText("接收: " +recvString + System.Environment.NewLine);recvDataRichTextBox.ScrollToEnd();}dataRecvStatusBarItem.Visibility = Visibility.Collapsed;//我们加入自动回复功能//如果收到的指令配置在自动应答字典内 , 则自动回复Key对应的Valueif (autoReply.ContainsKey(recvString)) {SerialPortWrite(autoReply[recvString]);recvDataRichTextBox.AppendText("发送: " + autoReply[recvString] + System.Environment.NewLine);}}));
编译运行由于时间的关系 , 我们将需要自动应答的指令和回复内容硬编码到代码里面了 , 以后有时间可以增加一个配置界面 , 设置需要自动应答的指令并且可以保存 。文章插图
串口调试助手
推荐阅读
- ROS 的常用命令行工具
- 好茶的存仓条件,普洱茶的储存条件
- 那些前端开发需要掌握的:Vuex基础使用方法
- 喝大麦茶的好处,喝大麦茶坏处
- 菊花茶清新淡雅,薄荷塘古树茶的特点
- 荷叶泡茶的作用有哪些,荷叶泡茶的功效与作用有哪些
- 壶承是做什么用的,茶仓是做什么用的
- 橘皮茶的制作方法,九味资生茶
- 菊花茶和玫瑰茶的区别,荷叶玫瑰菊花茶的做法
- 苹果炒蟹柳的做法