- 博客(262)
- 资源 (4)
- 收藏
- 关注
原创 状态机和RTOS
写单片机程序,有时用到状态机,有时候用RTOS,那他们到底有什么区别,要怎么选?首先说明,实时操作系统本质也是一个软件系统,也在执行while(1)操作,但是和状态机有众多区别。
2025-01-09 17:56:33
496
原创 Qt 断开信号槽的方式
需要断开的地方diconnect,需要连接的地方connect,最简单直接的办法,但是会很繁琐,如果频繁操作,多出了非常多的重复代码,逻辑混乱。使用官方QSignalBlocker,这个是这种场景下最推荐的,用于阻塞对象的所有信号,而且是作用域生效,超出作用域后自动解除。使用标志位,通过条件判断的方式控制功能的开关。但是这么做有点底层状态机的模子,看起来也复杂。
2024-10-24 14:15:44
562
原创 R155法规
R155法规是应对联网和自动驾驶汽车网络安全挑战的重要法规,旨在确保车辆在整个生命周期中具备健全的网络安全防护措施。通过建立和实施网络安全管理系统,制造商能够更好地识别、应对和管理网络安全威胁,提升车辆的安全性和可靠性。
2024-09-29 17:38:49
347
原创 Docker技术
Docker技术通过其独特的容器化方式,带来了环境一致性、高效资源利用、便捷的部署和管理、支持微服务架构以及丰富的生态系统,极大地提升了开发、部署和运维的效率。无论是对于开发人员、运维团队还是企业级用户,Docker都提供了一种高效、灵活的解决方案,使得应用程序的开发和运维变得更加快速和可靠。
2024-09-29 17:00:09
413
原创 Qt Qvariant
QVariant是 Qt 框架中的一个非常强大的类,它用于存储各种不同类型的数据,并提供了一种统一的方式来处理这些数据。QVariant可以存储大多数基本数据类型,如整数、浮点数、字符串、日期时间等,以及更复杂的数据类型,如QColorQImageQByteArrayQListQMap等。
2024-06-27 14:39:09
400
原创 Qt 使用QJsonModel的问题
需要表格记录json数据,使用Qtreeview显示并修改,使用开源的第三方类QJsonModel,即可快速完成。
2024-06-27 13:52:20
581
原创 imx.7交叉编译libX11
该文章已经很详细的讲到了移植全过程,实践下来并没有太多问题,并且他文中提到的问题一定会出现,没有提到的也会出现,大致是因为自己虚拟机环境,以及版本问题,只需要根据第一条报错逐条进行修复即可。原因是libxcb的版本太新,我使用最新的版本,正确配置和安装后,在编译libX11还是会报错,解决办法:替换为较为早期的版本,比如libxcb-1.16,只要低于libproto版本即可。libX11报错中断编译后,解决完问题,make clean,重新配置编译。以下是我个人的环境变量设置,仅供参考。
2024-04-15 14:20:20
612
原创 Linux-Arm GDB调试(本地和远程)
Linux本机调试使用GDB非常方便,但嵌入式Linux设备资源有限,通常并没有交叉编译工具,那嵌入式设备上的应用发生问题如何查找问题?通常IDE有远程DEBUG功能,这种能快速定位固定且容易复现的错误。随机性问题,问题一旦发生,保存现场十分重要,不知道何时才会复现,要基于当前的设备状态,尽可能的去追溯本次的问题,这样才能有效的解决问题。个别情况下,并没有发生crash,但是程序卡死或者无响应,这个时候并不会生成coredump文件,那么就需要进行远程在线调试。最终定位到问题所在。
2024-04-03 14:54:58
968
原创 Qt QMetaObject::invokeMethod
QMetaObject::invokeMethod是一个静态函数,用于在Qt信号槽机制之外,异步调用QObject子类的公开槽函数或者调用任意可调用对象。主要处理不同线程异步调用或延时操作。
2024-03-13 11:32:37
3687
原创 2023回顾
踩了这些坑之后,再次做项目时,如果使用到触摸屏,我可能会在资源够用的情况下,单独给触摸屏一路i2c总线去使用,其余的i2c外设走另外的总线,这样能避免脏数据、或者某个从设备死锁不释放总线时造成的数据传输错乱,进而影响全局的触摸屏的使用。再次使用Qt时会特别注意焦点切换的问题,界面切换了焦点没有带过去的话,在多个模态窗口的焦点切换就会滞后,或者承载焦点的页面已销毁,那么就会导致焦点错乱,现象看起来也是界面卡死。一文中,正如文中提到的,上述的一些操作能极大可能得避免触摸屏卡死的发生,但也并非一劳永逸。
2024-01-09 12:04:39
512
原创 Qt QMetaObject::invokeMethod
invokeMethod 是Qt元对象系统中的一个函数,用于程序运行时动态的调用对象的槽函数或者静态函数。
2023-10-24 18:46:33
916
原创 Qt 消息小弹窗
Qt官方并没有提供这么一个类,一些开源组件中是有的,但是可能存在一些不兼容的情况,比如消息的设定方面,或者使用时会遇到一些莫名其妙的bug,那就自己写一个简单的,日后需要美化或复杂功能时再完善。使用的话,在需要的地方直接showMessage(“XXX”)就可以了。不使用designer,直接代码即可。
2023-09-18 10:26:28
1012
原创 Qt Q_INIT_RESOURCE
原因:.qrc文件是在编译时整合到可执行文件或者库里的,由于C++的静态初始化顺序的限制,资源初始化函数(即Q_INIT_RESOURCE)可能在应用程序的其他静态对象初始化之后运行。如果不手动调用Q_INIT_RESOURCE,这些静态对象可能会尝试访问资源,但由于资源尚未初始化,可能导致程序失败或崩溃。使用.qrc文件时,比如加载图标音频等,直接用好像也没问题,那标准的写法是在应用层初始化阶段进行资源文件的初始化,这是什么原因?
2023-08-25 18:59:26
645
原创 Qt 信号槽连接方式
Qt中信号槽是核心功能,但是一定要正确使用,并且要摒弃文章靠头示例中的老式写法,使用新式写法进行使用,这样在编译阶段就会进行检查,避免调试困难。
2023-08-23 18:03:25
1214
原创 Qt 串口使用
其中,/dev/ttyACM0"是虚拟串口设备,真实串口更改对应的端口号及设置。Qt串口所属文件“qextserilport.h”
2023-08-15 11:30:13
285
原创 Qt 耗时任务界面阻塞
背景:主界面免不了进行一些耗时操作,如果界面和是数据处理本身就处于同一个线程,那么使用QCoreApplication::processEvents()是无效的。如果不需要返回值,那么扔进线程池运行就好,使用QObject::moveToThread()。但是需要返回值的时候就会有问题。解决办法:使用QEventLoop和QtConcurrent:run()。
2022-10-19 18:08:31
1765
jsonTool.zip
2021-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人