<返回更多

基于WPF的串口调试工具

2020-08-20    
加入收藏

最近同事在调试硬件的串口通讯功能,由于PLC暂时还没到,所以准备用USB转串口线连接在终端上,通过电脑USB口模拟串口收发功能。一开始同事下载了一款串口调试工具,发现没有自定义功能,比如通讯串口收到终端发送的数据,需要自动应答对应指令数据(ModBus 主从问答方式)。为了配置同事硬件调试,准备下载一个开源的串口调试工具,增加自定义应答功能。

开源软件分享-基于WPF的串口调试工具

Serial port

串口调试开源软件搜索

打开github网站搜索串口调试,我们搜索到一款名为WPFSerialAssitan的串口调试软件感觉比较符合我们的要求。其README.md文件的介绍如下:

WPFSerialAssitan 串口助手是一款基于C#及WPF的串口助手软件。本串口助手操作方便,UI简洁。软件实现了基本的串口通讯需要的功能,开发者可以基于此添加自定义的功能。此外,可以基于此开发出一些简单的串口控制类软件。

我们将代码克隆到本地,当然也可以先fork一份到自己的仓库再克隆到本地,这样修改后我们可以将更改推送到github上。我们使用vs2019打开工程,查看下其基本的代码结构。

开源软件分享-基于WPF的串口调试工具

WPFSerialAssitan code

串口调试开源软件修改

我们可以看到核心的代码,基本在EventHandler.cs、core.cs 等2个类文件中,我们定义一个Dictionary,将收到的指令和需要应答的指令一一定义起来。

开源软件分享-基于WPF的串口调试工具

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对应的Value
                if (autoReply.ContainsKey(recvString)) {
                    SerialPortWrite(autoReply[recvString]);
                    recvDataRichTextBox.AppendText("发送: " + autoReply[recvString] + System.Environment.NewLine);
                }
            }));

编译运行

由于时间的关系,我们将需要自动应答的指令和回复内容硬编码到代码里面了,以后有时间可以增加一个配置界面,设置需要自动应答的指令并且可以保存。

开源软件分享-基于WPF的串口调试工具

串口调试助手

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>