Engineer-Bruce_Yang
本科毕业于华南理工大学,美国Carroll University工商管理硕士,曾就职于世界名企伟易达,安防军工砺剑防卫公司,多年嵌入式产品开发经验,在智能玩具、安防产品、平板电脑、手机开发有丰富的实战开发经验。
展开
-
Qt上位机开发之如何让自己的APP启动与硬件信息绑定(Win端)
在工作中,为了方便项目调试,一般情况下我们都会选择开发一个上位机来实现简单的控制和数据读取的功能;但是,这个工具仅限于研发人员使用。为了防止别有用心的测试或者其它人员将这个APP通过U盘的形式拷贝走然后到另外一台电脑上运行,我们可以有以下两种简单的设计方案():(1)设计一个简单的输入密码逻辑,当输入密码与自己设定的密码匹配时,即进入软件界面。这种方法比较简单,也很容易被破解。原创 2022-10-23 20:54:50 · 1331 阅读 · 0 评论 -
Qt5.14.2开发Mqtt应用程序
然后,你就做不下去了…很明显,大部分博主写的东西不是缺头就是缺尾,带偏了许多读者。,因此我们需要clone的是这个分支版本,而不是这个默认的。然后将编译产物中include里的所有.h文件复制到。下载完后直接默认安装即可,这一步没什么好说的。看到了没,这个才是正确的操作方式,而主线的。信号来判断,自行实现自己的槽函数。然后选择构建方式,这里我选择的是。信号来判断自行实现自己的槽函数。信号来判断自行实现自己的槽函数。源代码,如下图所示,双击打开。收到下行消息时,可以通过连接。原创 2022-10-07 00:06:27 · 1879 阅读 · 1 评论 -
QT移植腾讯云C-SDK结合实现OTA更新
点击上方“嵌入式应用研究院”,选择“置顶/星标公众号”干货福利,第一时间送达!来源 | 嵌入式应用研究院整理&排版| 嵌入式应用研究院腾讯云C-SDK是一套能够帮助开发者快速对接腾讯云Iot Explorer平台的一套跨平台通讯架构,整体框架如下所示:SDK 编译方式说明 C-SDK 支持三种编译方式:cmake方式Makefile方式代码抽取方式编译方式以及编译配置选项...原创 2022-08-20 00:00:14 · 734 阅读 · 0 评论 -
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
在Window系统上,打开我的电脑,我们就能够看见系统的每个磁盘的可用空间以及总空间,如下所示:在嵌入式Linux与QT界面结合的产品开发中,我们在做产品的文件管理模块通常来说也需要做这样一个功能。那么如何来实现呢?方法一:(参考QT大神-飞扬青云的磁盘容量空间控件实现)利用Linux系统天生就已经提供的df命令来获取,例如我们可以带上-h参数,这样就可以获得以人类可读的格式显示输出,如下所示:基于韦东山imx6ull开发板文件系统执行以后,我们能发现一定的规律,即是输出是以行为单位输出的,并且,每一行通过原创 2022-06-05 22:26:55 · 370 阅读 · 0 评论 -
手把手之如何在嵌入式Linux上运行QT应用程序(以百问网imx6ull开发板为例)
昨天写了一篇Buildroot构建的文章,等待了几个小时,终于编译完了:Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)我们将emmc下载到开发板上即可:这个QT程序...原创 2021-06-27 11:52:37 · 1210 阅读 · 4 评论 -
QT跨平台开发技术总结
点击上方“嵌入式应用研究院”,选择“置顶/星标公众号”干货福利,第一时间送达!1、摘要在做跨平台(这里指的是嵌入式Linux图形界面应用程序开发)图形界面应用开发中,当资源充足的情...原创 2022-02-28 21:00:02 · 5532 阅读 · 0 评论 -
嵌入式QT应用程序与WEB端通信遇到的HTTPS校验证书的问题记录
点击上方「嵌入式应用研究院」,选择「置顶公众号」第一时间查看嵌入式笔记!1、问题背景描述近期在做嵌入式QT应用程序与物联网平台交互。其实这个需求我在以往的工作中也做过,只不过这次的情况有些...原创 2021-10-28 19:00:00 · 406 阅读 · 0 评论 -
Window平台QT应用程序打包发布注意事项
1、在window下编译生成的可执行文件这是我们通过编译生成的软件:如果直接执行的话会提示:这是因为这个应用程序找不到这些dll的位置,如果你是在自己的电脑运行,其实只要把QT这些库对应的路径设置到Window系统的环境变量里去就可以解决这个问题了,但是一般我们要把软件发布给其他人的时候,通过会使用QT的打包工具:windeployqt来进行打包。2、使用QT的windeployqt工具进行打包接下来,我们打开window自带的命令行终端,然乎对我们的应用程序进行打包:打包完后执行app.原创 2021-12-07 09:31:16 · 795 阅读 · 0 评论 -
QT QHttpMultiPart上传总结
最近在搞QT网络通讯这块,涉及到HTTP协议,我们需要上传检测数据到政府单位的后台系统,他们使用的是HTTP的表单格式上传,为了保证我的数据一定能上传到后台,我先用POSTMAN去模拟这个过程,确保我通过POSTMAN是可以上传的,接下来再开始编写QT程序。写这个程序可谓是遇到不少麻烦,首先我参考官网的demo:QHttpMultiPart *multiPart = new QHttpMul...原创 2020-01-04 23:18:56 · 3317 阅读 · 0 评论 -
Linux QT 4G发送HTTP POST请求发送JSON格式的数据
接上一篇文章:Linux下4G模块高新兴物联中兴ME3630拨号上网4G网络打通以后,接下来就可以上传和接收数据啦!有点小兴奋!我们来看看QT上如何来发送一个HTTP的POST请求。HTTP协议在这里就不多说了,百度自己看。一、在PC Window(QT5版本)1.1、构建URL1.2、构建HTTP请求头1.3、连接信号与操作,接收服务器回复的消息槽函数这里我们要在头文件定义...原创 2019-10-09 11:29:29 · 2431 阅读 · 3 评论 -
QT Linux实现AT指令处理框架
本框架在QT4.8.6版本环境下编写。一、业务逻辑的诞生1.1 了解一下什么是AT指令1.2 思考在QT上如何处理AT指令看了下网上大多数人实现的在Linux下的4G模块AT指令收发控制,以及在QT上实现的,还有某些厂商实现的解析框架,其实就是在处理串口的收发,但未免做得有点糙,问题点也很多,比如很多人压根就没做指令回复的超时处理,万一要是发生了,那将给整个程序带来致命性的伤害。最近的...原创 2019-07-07 23:24:57 · 4121 阅读 · 1 评论 -
QT在嵌入式平台上运行休眠唤醒出现ASSERT failure in QList相关的错误
最近开发了一个QT APP程序,在实现电源按键休眠唤醒的唤醒过程中出现了如下BUG导致APP挂掉:Restarting tasks ... done.ASSERT failure in QList<T>::operator[]: "index out of range", file /opt/qt-m6g2c/include/QtCore/qlist.h, line 477很...原创 2019-01-14 09:38:08 · 5317 阅读 · 2 评论 -
QT控件的简单使用(持续更新)
记录一下学习QT中,用一些小例子来简单描述一下控件的使用方法:1、QPixmap的使用MainWindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPixmap>#include <QLabel>namespace Ui {c...原创 2019-01-12 23:57:51 · 2207 阅读 · 0 评论 -
加快QT工程的编译速度的方法
当代码写上了几K行的时候,编译速度真的是好慢好慢,所以我就想到肯定会有人想到如何去优化编译的流程:参考别人的博客,找到了解决方法:https://blog.csdn.net/qq_33706673/article/details/78636256将需要的头文件包含进来:如下图所示,编译时间只需10s。...原创 2018-12-11 08:49:31 · 1412 阅读 · 0 评论 -
嵌入式Linux Qt多个按键先后检测的实现方法
QT的按键是基于事件进行触发的。 在产品开发中,假设我们要在APP的某个页面中,同时按下多个按键进入工厂测试模式。又假设我们要写一个魂斗罗或者超级玛丽的游戏,我们需要按方向键让小人走,按某个键跳或者射击,这都需要先后检测按键是否按下。 我的实现方法如下: QT按键事件包含按下和弹起两个事件,按下,相当于按键置位,弹起相当于按键清位,基于这样的思想很快就可以用置位和清位...原创 2018-11-12 17:21:26 · 1362 阅读 · 0 评论 -
QT5交叉编译出现"undefined reference to `qt_version_tag'"的解决方法
如下图所示:根据交叉编译的配置,我觉得我的qmake版本是没有配置错误的。输出的Complie Output的log如下:22:33:46: Running steps for project untitled...22:33:46: Starting: "/usr/bin/make" cleanrm -f moc_mainwindow.cpprm -f ui_mainwindow.hrm -f ...原创 2018-03-11 22:53:21 · 10925 阅读 · 2 评论 -
QT中信号与槽学习总结
最近准备写一个QT的项目,功能比较复杂,考虑到这一点,我必须把信号与槽好好温习一遍,因为,QT中,最重要也就是信号与槽,其余的东西也就只是软件逻辑而已。先看一个案例:现在要这样来实现:当我按下Exit这个按键的时候,窗口关闭。当我按下PushButton这个按键的时候,PushButton这个名字变成hello当我往右滑动滑动条的时候,数码管数字加,往左则减。看主要的代码,MainWindow.c...原创 2018-04-09 16:35:04 · 1380 阅读 · 0 评论 -
QT读写INI文件的实现方法
1、包含头文件#include <QSettings>2、如何写INI文件(1)定义一个QSettings指针对象例如:QSettings *Config_ini_Write ;(2)实例化对象例如:Config_ini_Write = new QSettings("INI",QSettings::IniFormat);(3)写INI文件Config_ini_Write->set...原创 2018-05-05 20:54:12 · 1460 阅读 · 0 评论 -
QT对应开发板上的LCD的画面旋转的方法
参考:http://blog.chinaunix.net/uid-20909886-id-4342635.html1、与qt程序显示文字大小有关的两项export QWS_DISPLAY=LinuxFB:mmWidth200:mmHeight100:0 //输出设备为Linux framebuffer,尺寸定义(尺寸定义与文字大小有直接关系)export QWS_SIZE=800x600 ...转载 2018-05-06 21:05:29 · 1570 阅读 · 0 评论 -
QT重启动应用程序的方法
头文件:#include <QProcess>#include <QDir>实现:void Language_Setting::reboot(){ QString program = QApplication::applicationFilePath(); QStringList arguments = QApplication::arguments();...原创 2018-05-08 14:29:36 · 998 阅读 · 0 评论 -
QT语言版本支持---国际化语言家功能的使用
1、首先在代码里,比如对label中要显示的字符串加上tr(),表示这是一个待翻译的字符串2、在QT工程的xxx.pro文件中添加以下字段表示程序最终会采用这个xxx.ts的文件来进行对比翻译。3、选择更新翻译4、使用QT语言家Linguist打开,编辑生成的myI18N_zh_CN.ts这个文件,我们需要对里面的字符串进行手动翻译,翻译完成后保存退出Linguist即可。5、在qtcreator...原创 2018-05-22 00:09:37 · 2192 阅读 · 0 评论 -
QT--QSocketNotifier类介绍
转载出处:https://www.cnblogs.com/lvdongjie/p/6564694.html转载 2018-07-25 10:28:20 · 791 阅读 · 0 评论 -
QT:可视化编码转换器实现
可视化界面如下图所示:在文本框中输入相应的文字,英文、数字、中文都可以,按下确认,即在textBrowser显示转换结果。代码如下:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QDebug>#include <QS...原创 2018-08-09 09:58:25 · 691 阅读 · 0 评论 -
undefined reference to `vtable for’”问题的原因及解决方法
QT中,类要支持信号与槽机制,需要继承自QObject并在头文件开头添加Q_OBJECT宏. 如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有可能会出现”undefined reference to `vtable for’…….”错误.解决方法: 把新创建的类从项目中移除(主要不要从...转载 2018-08-01 11:04:18 · 8095 阅读 · 4 评论 -
QT解决嵌入式平台label控件使用setText方法中文乱码问题
一般情况下我们对一个label设置文本属性的sh时候会ui->setText("你好");然而下载到ARM开发平台上显示的时候却是乱码,原因是没有使用中文字符集,只要改成:ui->setText(QString::fromUtf8("0秒"));即可正常显示...原创 2018-08-02 10:21:18 · 6475 阅读 · 3 评论 -
在Linux环境下QT中使用mplayer注意事项:屏蔽在后台运行的mplayer的log输出信息
Volume_Interface_handle是一个类,类中有Play_Alarm_music这个方法,这个方法的作用是,传入音乐的路径,就会自动播放音乐,其中Volume_level表示音量级别。void Volume_Interface_handle::Play_Alarm_music(char *music_path){ int Volume_level = 20 ; ...原创 2018-08-15 11:54:32 · 1357 阅读 · 0 评论 -
QT编程中几类常见类型互转的方法
在QT编程中,可能存在着char * 转 QString , QString 转 char *,或者QByteArray转char *或者char *转QByteArray等等。如何来实现,请看源码: QByteArray array = "hello world" ; QString qstr = "hello world"; const char *sst...原创 2018-08-12 23:36:19 · 449 阅读 · 0 评论 -
嵌入式Linux重启QT应用程序的简单办法(基于QT4.8 qws)
应用软件一般都有这样的业务需求: 当有新版本的APP,则程序就需要执行更新,更新完毕后(所谓的更新大多就是以覆盖的方式),不需要关机,而是应用程序自己重新启动即可。 查了网上一些资料,描写得非常复杂,还不如创建一个脚本,批处理完成我的工作这样简单、快捷和粗暴。 在程序中,可以通过QT的线程库函数来重启,也可以简单的调用外部脚本,完成重启的工作。 q...原创 2018-10-12 16:29:20 · 1348 阅读 · 0 评论 -
嵌入式QT APP实现按下电源按键休眠,再按一下电源按键即唤醒的功能---实现产品低功耗
1、修改设备树button1 { label ="return"; linux,code=<KEY_1>; gpios=<&gpio2 1 GPIO_ACTIVE_LOW>; gpio-key,...原创 2018-11-08 17:12:53 · 1216 阅读 · 6 评论 -
QT5使用问题:Cannot read /xxxxx/oe-device-extra.pri: No such file or directory
编译APP的时候出现:oe-device-extra.pri: No such file or directory但又可以编译出app且可以在平台上运行,没什么影响,但我还是看不惯,一定要把它解决掉:参考解决方案:https://github.com/meta-qt5/meta-qt5/commit/9aa870eecf6dc7a87678393bd55b97e21033ab48直接到出错的目录下...原创 2018-02-26 09:58:45 · 4637 阅读 · 0 评论