Llinuxu 发表于 2019-5-29 15:05:23

QT5实现多功能(集串口、网口、数据转换、校验deng)调试....

本帖最后由 Llinuxu 于 2019-5-30 13:54 编辑

利用工作业余时间,自制了一个多功能调试工具,集串口调试、网口调试、数据转换、数据校验等多个功能于一体,方便嵌入式开发的调试使用,请大大们帮忙测试,待没有什么bug后贡献源码!
已增加串口热插拔和TCP CLIENT断开检测机制

qiqirachel 发表于 2019-5-29 15:27:34

感激,最近在折腾这些个东西

Excellence 发表于 2019-5-29 16:26:38

串口的热插拔和自动识别串口号有吗?

Excellence 发表于 2019-5-29 16:30:10

接上USB转串口,需要自己刷新,能否自动刷新。
拔下,下面状态栏还显示连接。

brightchl 发表于 2019-5-29 16:47:54

不错,最近也在研究多串口接收显示的问题,能增加这个就好了!

Llinuxu 发表于 2019-5-29 17:02:31

Excellence 发表于 2019-5-29 16:26
串口的热插拔和自动识别串口号有吗?

嗯,热插拔没做处理,可以加上,感谢

Llinuxu 发表于 2019-5-29 17:04:16

brightchl 发表于 2019-5-29 16:47
不错,最近也在研究多串口接收显示的问题,能增加这个就好了!

老哥,看你这个界面是一个工具里面同时连接多个串口吗?

Llinuxu 发表于 2019-5-29 17:05:49

本帖最后由 Llinuxu 于 2019-5-30 16:03 编辑

温馨提示:双击接收和发送计数器可清零,双击显示区可暂停显示
软件已跟新,加入了utf8 和 gbk的互相转换

brightchl 发表于 2019-5-29 17:28:50

Llinuxu 发表于 2019-5-29 17:04
老哥,看你这个界面是一个工具里面同时连接多个串口吗?

是啊,我发给你看看

kebaojun305 发表于 2019-5-29 17:46:24

楼主应该把热插拔 和自动刷新做上去,不过我想等楼主的源码,学习下。{:titter:}

Llinuxu 发表于 2019-5-29 17:47:54

brightchl 发表于 2019-5-29 17:28
是啊,我发给你看看

嗯,这个仅仅只是增加一个实例而已,不难

Llinuxu 发表于 2019-5-29 17:48:47

kebaojun305 发表于 2019-5-29 17:46
楼主应该把热插拔 和自动刷新做上去,不过我想等楼主的源码,学习下。 ...

可以的,弄个定时器一直检测

whxiaowang 发表于 2019-5-29 17:58:05

提两个建议:
1、支持多串口
2、接收数据保存能否为CSV文件,前面增加时间

Earthman 发表于 2019-5-29 19:25:31

github啊,楼主
这样有问题可以共同改进嘛
你要换工作什么的这也是一张名片

Llinuxu 发表于 2019-5-29 19:49:12

Earthman 发表于 2019-5-29 19:25
github啊,楼主
这样有问题可以共同改进嘛
你要换工作什么的这也是一张名片 ...

好主意!

arm7tdmi 发表于 2019-5-29 20:26:42

楼主好人,
最近下载压缩文档,下载下来都是损坏的,不知道是哪的毛病。{:sad:}

snowy 发表于 2019-5-29 21:04:07

什么开发环境可以介绍一下么?

ericdai 发表于 2019-5-29 21:40:04

pyqt会不会很好一些

了无 发表于 2019-5-30 00:04:50

期待开源,正好我也学习学习qt

cu_ice 发表于 2019-5-30 06:55:23

arm7tdmi 发表于 2019-5-29 20:26
楼主好人,
最近下载压缩文档,下载下来都是损坏的,不知道是哪的毛病。 ...

更新winrar版本

Llinuxu 发表于 2019-5-30 08:43:51

snowy 发表于 2019-5-29 21:04
什么开发环境可以介绍一下么?

Qt Creator      MinGW

Jmhh247 发表于 2019-5-30 08:54:27

不错,串口用的是Qt5自带的串口类吗

Llinuxu 发表于 2019-5-30 09:01:09

Jmhh247 发表于 2019-5-30 08:54
不错,串口用的是Qt5自带的串口类吗

是的,既然有自带的就不用再用第三方的了

miaoguoqiang 发表于 2019-5-31 09:15:33

热插拔可以用系统API检测是否有设备插入,检测到就自动刷新一次

wyn20007 发表于 2019-5-31 09:24:30

也学习学习qt

Llinuxu 发表于 2019-5-31 09:36:01

miaoguoqiang 发表于 2019-5-31 09:15
热插拔可以用系统API检测是否有设备插入,检测到就自动刷新一次

QT自带串口类里面可以错误信号检测串口拔掉,但是没有看到检测设备插入的

kebaojun305 发表于 2019-5-31 09:40:40

Llinuxu 发表于 2019-5-31 09:36
QT自带串口类里面可以错误信号检测串口拔掉,但是没有看到检测设备插入的 ...

我自己得项目是通过串口通信协议 来检测插拔得。 也是QT5自带串口类。

Llinuxu 发表于 2019-5-31 09:44:50

kebaojun305 发表于 2019-5-31 09:40
我自己得项目是通过串口通信协议 来检测插拔得。 也是QT5自带串口类。

如何得知串口插入的

kebaojun305 发表于 2019-5-31 11:09:54

Llinuxu 发表于 2019-5-31 09:44
如何得知串口插入的

我是扫描所有得com发数据检测返回得数据是我自己定义得数据就知道我得设备插入了。

altim_li 发表于 2019-5-31 12:48:40

不错,好东西正需要

关于以后 发表于 2019-5-31 13:15:25

强!
下载试用一下。

miaoxun206 发表于 2019-6-11 09:28:05

厉害,下载了

haso2007 发表于 2019-6-11 09:37:50

正想用pythone写点上位机,感激开源。

Llinuxu 发表于 2019-6-11 12:19:43

haso2007 发表于 2019-6-11 09:37
正想用pythone写点上位机,感激开源。

另一个帖子已经开源

kxb 发表于 2019-6-12 09:03:04

谢谢分享!!!

liwey 发表于 2019-6-12 18:59:46

Llinuxu 发表于 2019-5-29 17:48
可以的,弄个定时器一直检测

系统有消息通知的,不愿写,可以把 qextserialport 中的部分代码扒出来用。应该比定时器要好一些。

话说这几个库还有关系呢,印象中是俄罗斯一个哥们觉得qextserialport 不够好,就重构,结果出了新东西 QSerialDevice。 我用着用着,发现这个也不更新了,上面备注着,已经被qt 收编了。改名 QSerialPort了

Llinuxu 发表于 2019-6-12 19:38:31

liwey 发表于 2019-6-12 18:59
系统有消息通知的,不愿写,可以把 qextserialport 中的部分代码扒出来用。应该比定时器要好一些。

话说 ...

嗯,确实有,connect一个错误号的信号就行

Llinuxu 发表于 2019-6-12 19:39:03

Llinuxu 发表于 2019-6-12 19:38
嗯,确实有,connect一个错误号的信号就行

只是拔掉的时候可以,插上的时候还得自己处理

liwey 发表于 2019-6-12 21:12:10

Llinuxu 发表于 2019-6-12 19:39
只是拔掉的时候可以,插上的时候还得自己处理

晕,感觉你不知道我在说什么,这个是操作系统通知的,和qt的connect有什么关系啊。只是好几年不做相关的了,懒得翻代码了。

你不妨看看 qextserialport 库中 QextSerialEnumerator 的实现吧。就是可能要做一些qt4->5的修改

Llinuxu 发表于 2019-6-13 08:52:59

liwey 发表于 2019-6-12 21:12
晕,感觉你不知道我在说什么,这个是操作系统通知的,和qt的connect有什么关系啊。只是好几年不做相关的 ...

你说的这个还是要自己轮询检测吧,QT5的一个信号可主动告知的。你的意思应该是循环去查看可用端口吧

Llinuxu 发表于 2019-9-11 09:17:52

最新版本,增加了json文件保存配置和发送内容,开机自动恢复,欢迎大家下载试用

mangolu 发表于 2019-9-11 09:21:11

提供源码了吗?下来学习学习

wt19891114 发表于 2019-9-11 09:45:23

支持老哥~~

麦田有怪圈 发表于 2019-9-11 10:21:12

厉害了,收藏了

8s209 发表于 2019-9-11 11:11:59

感谢分享

122402902 发表于 2019-9-11 11:26:23

学习了 后面有用

kinsno 发表于 2019-9-11 14:33:43

Llinuxu 发表于 2019-9-11 09:17
最新版本,增加了json文件保存配置和发送内容,开机自动恢复,欢迎大家下载试用 ...

楼主啥时候开放一版源码啊,等着学习入门啊,哈哈。。我准备从这个串口助手入门QT,从而进军LINUX上面的人机界面。。

Llinuxu 发表于 2019-9-11 15:19:02

kinsno 发表于 2019-9-11 14:33
楼主啥时候开放一版源码啊,等着学习入门啊,哈哈。。我准备从这个串口助手入门QT,从而进军LINUX上面的 ...

已经开源了好几个月了哦,在另外一个贴里面,你可以去看看

8s209 发表于 2019-9-11 15:25:54

期待源码,学习!

kinsno 发表于 2019-9-11 19:50:00

Llinuxu 发表于 2019-9-11 15:19
已经开源了好几个月了哦,在另外一个贴里面,你可以去看看

感谢楼主。。

Llinuxu 发表于 2019-9-12 08:46:40

8s209 发表于 2019-9-11 15:25
期待源码,学习!

源码在另一个帖子哦

xf331785508 发表于 2019-9-12 18:05:24

本帖最后由 xf331785508 于 2019-9-12 18:07 编辑

Llinuxu 发表于 2019-6-13 08:52
你说的这个还是要自己轮询检测吧,QT5的一个信号可主动告知的。你的意思应该是循环去查看可用端口吧 ...

网上调查了下,应该是可以通过如下方式实现自动检测插入的串口设备,主要的思路是对QWidget的虚函数nativeEvent复写重新实现,然后捕获系统消息来实现的。不过,对Qt不是太熟悉,看看这个样子的添加法可行不.
微软说明链接
bool MainInterface::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
    Q_UNUSED(eventType);
    MSG* msg = reinterpret_cast<MSG*>(message);
    int msgType = msg->message;
    if(msgType == WM_DEVICECHANGE)
    {
      qDebug() << "Recv Event " ;
      PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam;
      switch(msg->wParam)
      {
            case DBT_DEVICETYPESPECIFIC:
            {
                qDebug() << "DBT_DEVICETYPESPECIFIC " ;
                break;
            }
            case DBT_DEVICEARRIVAL:
                if (lpdb -> dbch_devicetype == DBT_DEVTYP_PORT)
                {
                  SerialListGet();
                  PDEV_BROADCAST_PORT_A lpdbv = (PDEV_BROADCAST_PORT_A)lpdb;

                  qDebug() << "Port_Arrived and The port naem is: "<<QString( lpdbv->dbcp_name);
                }
                qDebug() << "DBT_DEVICEARRIVAL" ;
            break;
            case DBT_DEVICEREMOVECOMPLETE:
                if (lpdb -> dbch_devicetype == DBT_DEVTYP_PORT)
                {
                  SerialListGet();
                }
                qDebug() << "DBT_DEVICEREMOVECOMPLETE" ;
            break;
      }
    }
    return false;
}

Llinuxu 发表于 2019-9-16 08:46:31

mangolu 发表于 2019-9-11 09:21
提供源码了吗?下来学习学习

源码在另外一帖里面

qaya 发表于 2019-9-16 09:17:36

感谢楼主

mangolu 发表于 2019-9-16 10:14:57

Llinuxu 发表于 2019-9-16 08:46
源码在另外一帖里面

谢谢,我看看

Llinuxu 发表于 2019-9-17 11:32:57

xf331785508 发表于 2019-9-12 18:05
网上调查了下,应该是可以通过如下方式实现自动检测插入的串口设备,主要的思路是对QWidget的虚函数nativ ...

多谢大佬,这样确实可以检测,代码已跟新上传

xf331785508 发表于 2019-9-17 16:56:08

Llinuxu 发表于 2019-9-17 11:32
多谢大佬,这样确实可以检测,代码已跟新上传

不客气,我也是搬运工。
另外,向你请教个Qt构建成单个可执行文件的方法流程,不然要带一堆DLL才能运行。 网上查了下,说是静态编译,但试了都不管用啊。

canspider 发表于 2019-9-17 17:07:08

xf331785508 发表于 2019-9-17 16:56
不客气,我也是搬运工。
另外,向你请教个Qt构建成单个可执行文件的方法流程,不然要带一堆DLL才能运行 ...

Qt官网上有一个PowerShell的脚本,执行了之后会自动编译出静态版本的Qt
建议修改一下脚本,把下载和解压源代码的步骤跳过再使用

静态编译脚本下载地址及使用说明
https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW

Llinuxu 发表于 2019-9-17 17:40:45

xf331785508 发表于 2019-9-17 16:56
不客气,我也是搬运工。
另外,向你请教个Qt构建成单个可执行文件的方法流程,不然要带一堆DLL才能运行 ...

确实是静态编译,我自己写了个简单的搭建静态编译环境的文档,网上也有,但是都不太全,按照我的文档基本能够成功,我按照文档又在windows10上搭建了一遍,已成功!你可以参考一下

Llinuxu 发表于 2019-9-17 17:54:40

xf331785508 发表于 2019-9-17 16:56
不客气,我也是搬运工。
另外,向你请教个Qt构建成单个可执行文件的方法流程,不然要带一堆DLL才能运行 ...

一般静态编译出来的exe文件都比较大,最好是找exe压缩工具压缩一下

batou 发表于 2020-2-10 12:21:12

刚刚下载源码运行了下,界面简洁,看着很舒服,功能也挺多,再次感谢楼主分享!

genhao2 发表于 2020-2-10 12:58:21

学习一下

cjxu 发表于 2020-2-10 13:08:43

谢谢分享

lcl19722 发表于 2020-2-10 16:02:54

谢谢分享

fuxinaries 发表于 2020-2-11 10:08:06

谢谢分享,我去找找那个开源帖子

soosqt 发表于 2020-2-11 11:24:31

Llinuxu 发表于 2019-9-17 17:54
一般静态编译出来的exe文件都比较大,最好是找exe压缩工具压缩一下

推荐一下,用什么压缩EXE文件比较好!

michael3000 发表于 2020-2-28 04:45:22

git上的源码怎么不在了? 请问大师能再发一次源码吗?非常感谢!

zhcj66 发表于 2020-2-28 06:16:42

lz用的什么开发语言

kevinchen026 发表于 2020-2-28 07:51:19

Qt5.12 静态编译环境

Llinuxu 发表于 2020-3-3 08:53:29

zhcj66 发表于 2020-2-28 06:16
lz用的什么开发语言

QT当然用C++了

Llinuxu 发表于 2020-3-3 08:54:00

michael3000 发表于 2020-2-28 04:45
git上的源码怎么不在了? 请问大师能再发一次源码吗?非常感谢!

注意分支,master分支里没有

Llinuxu 发表于 2020-3-3 08:54:55

soosqt 发表于 2020-2-11 11:24
推荐一下,用什么压缩EXE文件比较好!

UPX 可执行文件压缩器(FUPX)

brightchl 发表于 2020-12-6 15:58:07

michael3000 发表于 2020-2-28 04:45
git上的源码怎么不在了? 请问大师能再发一次源码吗?非常感谢!

https://github.com/uBayMaxH/PortAssistant/tree/develop

fengyunyu 发表于 2020-12-6 21:44:25

收藏,学习

Joshua_Astray 发表于 2020-12-7 10:20:15

xf331785508 发表于 2019-9-12 18:05
网上调查了下,应该是可以通过如下方式实现自动检测插入的串口设备,主要的思路是对QWidget的虚函数nativ ...

你这做的太复杂了,每次点端口选择的时候,启动一次检测所有串口设备即可。

malphite 发表于 2020-12-23 16:23:24

mark一下,感谢楼主

sblpp 发表于 2021-2-26 16:07:55

BusProtocolAnalysis.ui 缺这个文件。。。

zhq_chd 发表于 2022-5-11 15:57:01

mark一下,感谢楼主
页: [1]
查看完整版本: QT5实现多功能(集串口、网口、数据转换、校验deng)调试....