QT--编写自己的TCP/IP上位机软件--demo
之前做项目一直是别人负责做上位机软件,我负责调试硬件程序,定好协议各干各的就行了,但是渐渐地我发现总是有很多内容在调试中会发生变动,而且协调起来周期很长,还是自己能写上位机软件比较方便。
下面整理了一个我最近做的Qt项目Demo,主要用于以后新项目编写上位机的框架用。
QT版本:5.14.2
语言:C++
通信方式:TCP/IP
1.打开工程
打开工程文件夹中的EQAT_Debug.pro
文件
勾选需要的编译方式后点击configure project
这样就成功打开工程了。
2.编辑工程内容
在Forms/myeqat.ui
中可以进行交互界面编辑
这个Demo版本界面包含目标IP、端口输入栏及连接按钮;报文显示/隐藏按钮及报文显示栏;一个按钮。
在sources/main.cpp
中可以编辑软件标题栏显示文字
在sources/myeqat.cpp
中可编辑槽函数、TCP收发逻辑等
超时时间设定及超时中断函数:相当于定时1s发送数组中的数据
#define TIMER_TIMEOUT 1000 //超时时间1000ms
void MYEQAT::handleTimeout()
{QByteArray block;block.resize(6);block[0]=0x01;block[1]=0x01;block[2]=0x01;block[3]=0x01;block[4]=0x01;block[5]=0x01;tcpClient->write(block,6);
}
接收处理函数:这里只添加显示接收的报文(受显示报文按钮控制)
void MYEQAT::clientReceiveData()
{QByteArray m_Message; //暂存接受到的数据m_Message += tcpClient->readAll();m_Message.resize(255);if(showtext_Flag)ui->textEdit->append(m_Message);//显示报文
}
报文显示按钮槽函数:
void MYEQAT::on_fankui_clicked() //报文显示按钮
{if(ui->fankui->text()=="显示报文"){showtext_Flag=1;ui->fankui->setText("隐藏报文");}else{showtext_Flag=0;ui->fankui->setText("显示报文");}
}
发送按键槽函数:点击发送666
void MYEQAT::on_pushButton_clicked()
{QByteArray block;block.resize(3);block[0]=0x06;block[1]=0x06;block[2]=0x06;tcpClient->write(block,3);
}
编辑软件图标
在文件中进行配置,更简单的方法是:将任意
.ico
文件放入icons
文件夹内,更名为tubiao.ico
后,重新编译工程即可。
3.功能测试
首先使用网络调试助手建立一个TCP server后开启服务,接收设置使用HEX接收
QT中编译方式选择release
后点击锤子进行编译
完成后点击Run
启动程序,启动后如图
输入刚才建立的TCP Server的IP地址和端口号并点击连接:连接成功后连接按钮会变为断开按钮
这时网络调试助手应已经开始收到间隔为1s的消息:
点击Demo软件的发送按钮:网络调试助手能收到发送的666消息:
点击Demo软件的显示报文按钮让报文栏能够显示接受的消息,然后用网络调试助手发送任意消息给Demo:显示效果如图
项目工程文件链接如下,如需自取
https://download.csdn.net/download/weixin_44087298/85460806
QT--编写自己的TCP/IP上位机软件--demo相关推荐
- 【USB网络摄像头】基于mjpeg-streamer的视频采集与播放【QT上位机软件】
前言 最近一直在尝试制作一个,网络摄像头,先后分别尝试了使用QT包装的UDP类TCP类,和LINUX中的socket编程等方式,但是非常遗憾,都没有取得非常好的播放效果.以为只要一帧一帧的传输视频数据 ...
- 写字机上位机c语言,易懂 | 手把手教你编写你的第一个上位机
一.前言 大家好,我是ZhengN,本次来教大家编写一个基于QT的简单的上位机. 学习一个新的东西我们都从最基础地实例开始,比如学习C语言我们会从编写一个hello程序开始.学习嵌入式我们从点灯开始. ...
- QT实现简单的上位机软件
最近项目要求写上位机软件,需要实现界面功能和串口读写.界面方面用过MFC(早忘记了),网上查阅资料后发现QT在5.1版本后有自带的串口模块,而且用QT实现简单界面功能很容易上手(也就期末设计随便玩过几 ...
- Qt 之进程间通信(TCP/IP)
Qt 之进程间通信(TCP/IP) 原创 一去丶二三里 发布于2016-02-04 10:19:46 阅读数 15428 收藏 更新于2018-05-30 10:35:06 分类专栏: Qt < ...
- C#编写Modbus协议加速度传感器上位机
C#编写Modbus协议加速度传感器上位机 项目概述 功能描述 上位机原理 初始化连接 读取寄存器原始数据 换算为实际物理量 自动模式 数据保存 数据可视化分析 尾言 项目概述 笔者利用下班时间,编写 ...
- Qt上位机软件串口通讯
录了一个串口讲解的视频,分别放在了抖音和B站,大家可以看看,主要讲了一下原理, B站我的主页:laorenshen的个人空间_哔哩哔哩_Bilibili 视频源码下载免费:Qt上位机软件串口通讯,视频 ...
- Qt开发上位机软件建立经典蓝牙通讯
Qt开发上位机软件建立经典蓝牙通讯 之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码 ...
- 工具 | 分享一个很酷的上位机软件
1024G 嵌入式资源大放送!包括但不限于C/C++.单片机.Linux等.关注微信公众号[嵌入式大杂烩],回复1024,即可免费获取! 本次分享一个很酷的上位机软件--伏特加. 伏特加简介 伏特加是 ...
- dtu无线 服务器端,4G DTU将数据无线方式上传上位机软件。服务器PC端扩展功能
原标题:4G DTU将数据无线方式上传上位机软件.服务器PC端扩展功能 方案需求 工业生产很多生产商喜欢利用颜色检测工具来完成颜色评定和分析,一定要对色灯箱和测色仪这些颜色检测分析仪器才能正确的得到颜 ...
- 我的第一个上位机软件
2019年即将过去,这一年最值得开心.高兴的事就是我参与研发的"全自动生化分析仪"终于上市了,并受到市场的欢迎:由于有非常给力的销售团队,机器的订单一直不断.当然机器研制成功是项目 ...
最新文章
- 一招教会你处理Flutter中的数据
- ERROR in app.js from UglifyJs RangeError: Maximum call stack size exceeded
- Mysql存储引擎详解
- 三点顺序(计算几何)
- android开发 文件分享到应用,Android 实现文件分享功能(共享多个文件)
- leetcode103. 二叉树的锯齿形层次遍历
- 解决Github图片加载失败
- windows2016+sqlserver2017集群搭建alwayson之域控篇
- ADO.NET_07_OracleDataAdapter
- myeclipse 中的'ISO-8859-1'编码问题
- zepto.js学习
- 数据可视化分析工具大集合
- 电感升压(boost电路)感性理解
- PL/0词法分析程序
- facebook轮播视频_如何设置Facebook Messenger Messenger视频通话
- mysql 1436_MySQL错误1436:线程堆栈溢出,用简单的查询
- 【微信小程序宝典】从零开始做微信小程序开发
- 静态网页的广告banner部分
- 健身环1536级小结:相当适合码农的锻炼方式
- Map中的keySet方法