之前做项目一直是别人负责做上位机软件,我负责调试硬件程序,定好协议各干各的就行了,但是渐渐地我发现总是有很多内容在调试中会发生变动,而且协调起来周期很长,还是自己能写上位机软件比较方便。
下面整理了一个我最近做的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相关推荐

  1. 【USB网络摄像头】基于mjpeg-streamer的视频采集与播放【QT上位机软件】

    前言 最近一直在尝试制作一个,网络摄像头,先后分别尝试了使用QT包装的UDP类TCP类,和LINUX中的socket编程等方式,但是非常遗憾,都没有取得非常好的播放效果.以为只要一帧一帧的传输视频数据 ...

  2. 写字机上位机c语言,易懂 | 手把手教你编写你的第一个上位机

    一.前言 大家好,我是ZhengN,本次来教大家编写一个基于QT的简单的上位机. 学习一个新的东西我们都从最基础地实例开始,比如学习C语言我们会从编写一个hello程序开始.学习嵌入式我们从点灯开始. ...

  3. QT实现简单的上位机软件

    最近项目要求写上位机软件,需要实现界面功能和串口读写.界面方面用过MFC(早忘记了),网上查阅资料后发现QT在5.1版本后有自带的串口模块,而且用QT实现简单界面功能很容易上手(也就期末设计随便玩过几 ...

  4. Qt 之进程间通信(TCP/IP)

    Qt 之进程间通信(TCP/IP) 原创 一去丶二三里 发布于2016-02-04 10:19:46 阅读数 15428 收藏 更新于2018-05-30 10:35:06 分类专栏: Qt < ...

  5. C#编写Modbus协议加速度传感器上位机

    C#编写Modbus协议加速度传感器上位机 项目概述 功能描述 上位机原理 初始化连接 读取寄存器原始数据 换算为实际物理量 自动模式 数据保存 数据可视化分析 尾言 项目概述 笔者利用下班时间,编写 ...

  6. Qt上位机软件串口通讯

    录了一个串口讲解的视频,分别放在了抖音和B站,大家可以看看,主要讲了一下原理, B站我的主页:laorenshen的个人空间_哔哩哔哩_Bilibili 视频源码下载免费:Qt上位机软件串口通讯,视频 ...

  7. Qt开发上位机软件建立经典蓝牙通讯

    Qt开发上位机软件建立经典蓝牙通讯 之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码 ...

  8. 工具 | 分享一个很酷的上位机软件

    1024G 嵌入式资源大放送!包括但不限于C/C++.单片机.Linux等.关注微信公众号[嵌入式大杂烩],回复1024,即可免费获取! 本次分享一个很酷的上位机软件--伏特加. 伏特加简介 伏特加是 ...

  9. dtu无线 服务器端,4G DTU将数据无线方式上传上位机软件。服务器PC端扩展功能

    原标题:4G DTU将数据无线方式上传上位机软件.服务器PC端扩展功能 方案需求 工业生产很多生产商喜欢利用颜色检测工具来完成颜色评定和分析,一定要对色灯箱和测色仪这些颜色检测分析仪器才能正确的得到颜 ...

  10. 我的第一个上位机软件

    2019年即将过去,这一年最值得开心.高兴的事就是我参与研发的"全自动生化分析仪"终于上市了,并受到市场的欢迎:由于有非常给力的销售团队,机器的订单一直不断.当然机器研制成功是项目 ...

最新文章

  1. 一招教会你处理Flutter中的数据
  2. ERROR in app.js from UglifyJs RangeError: Maximum call stack size exceeded
  3. Mysql存储引擎详解
  4. 三点顺序(计算几何)
  5. android开发 文件分享到应用,Android 实现文件分享功能(共享多个文件)
  6. leetcode103. 二叉树的锯齿形层次遍历
  7. 解决Github图片加载失败
  8. windows2016+sqlserver2017集群搭建alwayson之域控篇
  9. ADO.NET_07_OracleDataAdapter
  10. myeclipse 中的'ISO-8859-1'编码问题
  11. zepto.js学习
  12. 数据可视化分析工具大集合
  13. 电感升压(boost电路)感性理解
  14. PL/0词法分析程序
  15. facebook轮播视频_如何设置Facebook Messenger Messenger视频通话
  16. mysql 1436_MySQL错误1436:线程堆栈溢出,用简单的查询
  17. 【微信小程序宝典】从零开始做微信小程序开发
  18. 静态网页的广告banner部分
  19. 健身环1536级小结:相当适合码农的锻炼方式
  20. Map中的keySet方法

热门文章

  1. project安装包_Microsoft project 2019软件功能介绍(附安装包)
  2. java来电报名字的软件_读短信来电报姓名
  3. python报错记录No.1
  4. Goolg adb常用工具包下载地址
  5. SAP FICO 固定资产会计 功能详解
  6. 通过QQ音乐接口,做的一个简易微信小程序播放器
  7. Java学习教程,Java基础教程(从入门到精通)
  8. 《解读量化投资:西蒙斯用公式打败市的故事》内容简介及PDF下载
  9. C# Access数据库使用
  10. iis php 映射,iis添加php的模块映射