自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

joyopirate的博客

用Qt,就够了。

  • 博客(235)
  • 资源 (3)
  • 收藏
  • 关注

原创 Windows下发布Qt5.12.3的qml程序

Windows下发布Qt5.12.3的qml程序

2019-06-10 21:13:37 894 1

原创 使用纯代码加载glb/gltf文件,然后使用Qt3D来渲染

在,我们已经实现了使用Assimp来读取模型,然后放到Qt3D中渲染。但是有时候,Assimp库的编译太麻烦:我们有时会发布程序到手机、或者嵌入式板子上,编译一个可以在这些设备上使用的Assimp库工作量太大。有没有办法,直接把某个库的代码包含进我们的工程,不依赖任何其他第三方库(或者依赖的库也是纯代码的形式包含进来),直接编译就行了呢?这样,我们就不用为各个平台都编译第三方库了。

2024-09-20 16:07:58 1177

原创 使用Assimp加载glb/gltf文件,然后使用Qt3D来渲染

ModelLoader.hModelLoader.cpp参考【How can I load a QPaintedTextureImage into a QTextureMaterial?】

2024-09-18 10:13:46 601

原创 Qt中使用DAG(有向无环图)

后来要求工具之间能存在依赖关系,也就是A工具的输出可以作为B工具的输入,这样就很麻烦了,谁知道用户会怎么勾搭各个工具的输入和输出?之前做的一个视觉检测项目,本来各个视觉检测工具之间是独立的,单独执行图像输入、得出结果,然后综合汇总结果,简单明了。这个库是实现了有向无环图的表示,但是在添加子对象时,没有检查添加子对象后会不会造成环型;结果发现,这个工具与工具之间得依赖、拓扑关系,是一个著名的概念:有向无环图(DAG)。,但是这个库貌似是依赖boost,有点大。ok,既然找到资料的切入点,那就好办了。

2024-09-06 16:31:38 419

原创 CodeSys中动态切换3D模型

在前面的中,我们已经实现了一个可以显示3d模型的控件。但是这个控件是和使用的3d模型绑定死的,在安装这个控件时就已经将模型文件于控件一起安装到codesys中。假如我想在不同的工程中,对这个控件动态地指定不同的模型,该怎么实现?

2024-09-05 17:09:50 845

原创 CodeSys中将文件读取并进行base64编码后存放于string

功能块的实现代码如下。

2024-09-05 08:52:21 222

原创 QtWebEngineView加载本地网页

直接加载放在exe同级目录下的资源是不行的,需要把资源通过qrc放到exe里面,然后通过类似。运行网页中包含的脚本,还可以取得返回值。这样的路径加载才行。

2024-08-23 15:19:30 285

原创 OpenEuler+UKUI的触摸校准

只有xinput,没有xinput_calibrator只能自己编译了。

2024-08-23 10:27:54 311

原创 Qt下让程序只运行一个实例,避免重复打开

做了一点点更改,主要是在openEuler上用时遇到的一点问题。在主函数实例化Application后,调用即可。

2024-08-19 14:00:34 449

原创 CodeSys开发3d机械臂显示控件

有很多坑及限制,但是确实能用。

2024-08-16 11:02:56 1084

原创 如何对open62541.h/open62541.c的UA_Client进行状态(在线/掉线)监控

可以发现,我们可以对UA_ClientConfig中的stateCallback进行赋值,也就是注册一个状态回调函数,从而获取客户端的状态变化。上位机这边会定时对PLC的某个opcua变量进行写操作。目前在利用open62541.h/open62541.c编写了一个与PLC进行OPCUA通讯的上位机程序。这个opcua库对多线程的处理比较差,很容易造成冲突。有没有什么办法可以监控client的状态,了解其是什么时候掉线,掉线了我就不写就行了。幸亏,是有这么一个回调函数的,参考官方的例子。

2024-08-12 15:05:14 443 1

原创 Windows下,已知程序PID,取得其窗口句柄HWND

我需要实现这么一个功能:在知道某个程序的PID的情况下,最大化并且置顶显示这个程序的窗口。listProcessIdentifier函数的实现请看前一篇。

2024-08-05 15:38:02 347

原创 CodeSys中处理(拼接)超长字符串

目前有个需求:在CodeSys中,需要将上万甚至十几万条数据(字符串)汇总到一个字符串上。

2024-08-05 09:44:39 686

原创 在Qt中获取Windows中进程的PID

利用 QProcess调用这个tasklist有一点坑,已经在代码中指出了。主要是用到了系统自带的工具【tasklist.exe】可以看到,得到的结果与在任务管理器中看到的是一致的。指定为csv格式输出的话,在后处理时比较方便。

2024-08-02 11:30:44 450

原创 使用Qt3D绘制机械手场景

之前是使用Coin3D来绘制机械手场景的【Qt利用Coin3D(OpenInventor)进行3d绘图】。后来需要在HarmonyOS显示这个机械手模型,但是想要编译Coin3D到HarmonyOS的话,显然太难了。然后尝试使用OpenGL原生的函数来绘制,但是HarmonyOS对很多函数都不支持,一查,发现HarmonyOS支持OpenglES。那就麻烦了。最后,一番兜兜转转,还是用回Qt3D吧。

2024-07-31 14:41:32 450

原创 DevEco Studio中使用Qt,编写HarmonyOS程序

最近需要尝试把之前在Windwos下用Qt实现的程序移植到鸿蒙(HarmonyOS)系统上。我使用的DevEco版本是5.03.501找了一下资料,官方(也可能是社区)人员已经做过了Qt的移植。下载了后,按照他们的操作手册来操作就可以了。

2024-07-28 15:12:29 936

原创 利用git将Qt代码托管到U盘或者网盘

我们在开发项目时,随着项目需求的增加以及bug的修复,肯定会涉及到版本管理的问题。由于git的使用具有一定的门槛,之前我都没怎么用。基本没有怎么进行版本管理,而是周期地(比如每天)把代码压缩打包备份一下,然后将他们放到网盘中,如下图所示:但是这样没办法迅速、明确地知道自己两个不同的备份之间有那些不同,尤其是想回退到某个特定的版本时,简直就是噩梦。而git就能很好地进行版本管理。说到git,肯定就有人想到github了。但是有一些代码是不方便外传的;又或者出于谨慎,只想把代码备份到U盘的;

2024-07-05 17:06:35 773

原创 Qt(MSVC)下报“语法错误缺少“}““语法错误缺少“常数“ 的解决办法

只要把这个头文件放在QtHttpServer的后面就可以了。经过一番排查,发现了问题。是open62541.h的问题。后面我知道了,再更新上来。我记得之前我用得好好的啊。

2024-07-03 14:03:13 399

原创 Qt利用Coin3D(OpenInventor)进行3d绘图

首先,到官网下载我是Qt5.15.2+vs2019的,因此我选择这个coin-4.0.2-msvc17-x64.zip到官网下载Coin3D在Qt中的封装库我是Qt5.15.2+vs2019的,因此我选择这个quarter-1.2.1-Qt5.15-msvc17-x64.zip将这两个压缩包放在在同一个文件夹中,先解压coin-4.0.2-msvc17-x64.zip,然后再解压。

2024-06-19 15:42:51 915

原创 在Qt编写的exe或者dll中设置版本号

在别人编写的exe或者动态库中,通过右键–》属性–》详细信息中,通常都有版本信息:那我们自己编译出来的Qt程序,如何设置这些版本号呢?

2024-06-17 14:17:28 956

原创 将机械手与CodeSys中的运动学模型绑定

最近搞到了一台工业机械手,虽然这个机械手有自己的控制程序,但是我们还是想用CodeSys来进行运动控制,测试一下它的运动控制功能是否可用。下面介绍一下如何将CodeSys中的运动学模型与现实的机械手进行绑定(映射、对应,使用你喜欢的术语)。可能运动学模型有些结构一眼看上去和实际的物理机械手结构不一样,但只是距离为0而已。一定要确保能够对应上才能进行后面的操作。

2024-05-11 10:32:54 1510

原创 Qt使用OPCUA

但是在Qt6之前,假如想使用这个库,还得自己编译,比较繁琐。假如想开箱即用,而且没有使用太复杂的功能的话,其实可以直接使用open62541.h、open62541.c这两个文件。假如想在Qt下使用OPCUA通讯,貌似大家都是倾向于使用。然后就可以参考官方的例程来进行开发了。

2024-04-28 14:40:09 1079

原创 关于通用相机库

之前以为既然工业相机(usb3_vison,gige)使用了同样的通讯标准,那应该可以使用同样的sdk。但是事实上,并不行,不同厂家的同样通讯标准的相机,并不通用,比如,我想用Basler的Pylon打开海康威视的相机,打不开。难道说,这个GenICam协议,是软件层的协议,而不是通讯链路层的协议?这两个库,弄懂了他们的区别,应该就知道GenICam真正是个什么东西。但是,为啥会涉及各个相机的SDK?然后再翻一下它的资料。根据它的资料介绍,貌似可以支持好多相机。

2024-04-25 11:05:27 590

原创 支持GIGE及USB3 Vision工业相机的开源库:Aravis

好像是支持所有的gige以及usb3的工业相机?测试一下先。

2024-04-23 15:27:33 1746

原创 树莓派使用总结

手上拿到了一块Raspberry Pi 4B板子。研究一下怎么用。

2024-04-17 13:34:17 518

原创 在win10上虚拟一个LoongOS系统(类似虚拟机)作为开发环境

loongnix社区预制系统(网站:http://pkg.loongnix.cn/loongnix/isos/Loongnix-20.3, 文件:Loongnix-20.3.mate.gui.loongarch64.cn.qcow2)。引导固件(网站:https://mirrors.wsyu.edu.cn/loongarch/archlinux/images,文件:QEMU_EFI_7.2.fd)、这样经过映射后,虚拟机里面的22端口就被映射到了本地的5678端口,因此,我们只需要通过。

2024-04-09 14:26:25 791

原创 Linux下Qt生成程序崩溃文件

Linux下程序的崩溃文件生成相对于Windows下还方便一点(Windows下还得自己保存dmp文件),可能各有千秋吧。暂时还没试过在A电脑编译程序,然后放到B电脑运行产生core文件,然后再拿回A电脑进行代码定位。有空的话得测试一下。【Linux生成core文件相关配置,core文件调试示例】【【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?

2024-04-03 15:26:25 1380

原创 CodeSys创建自定义的html5控件

可视化元素库只有在打开CodeSys软件且没有打开任何工程才看得到。

2024-03-20 18:01:28 757

原创 开发CodeSys可视化控件

这种方式好像是把系统自带的一些基础可视化控件进行排列组合、形成自己的自定义控件。然后我想利用CODESYS Installer安装这个插件,结果没有找到,目前接公司需求,需要开发一套视觉检测系统,并将其集成到codesys中。,理由是html5的控件更好、更容易使用。编程端基本是采用之前说得的C接口来实现。

2024-03-20 11:52:05 938

原创 CodeSys通过C函数接口调用Qt

假如想要在函数中使用Qt或者第三方库(比如opencv等),可以在其自动生成的makefile文件中设置好相应的参数。这样操作之后,在include对应的头文件后,就可以在函数中使用opencv、Qt了。,了解如何创建一个能够被codesys调用的动态库。1.将编译器由c改成c++2.使能opencv库。建议先查看之前的文章。

2024-03-08 14:28:57 1043

原创 Codesys自定义库的帮助文档的美化

当我们在codesys中写好自己的库,并且发布给别人使用时,别人可以在库管理器中查看到我们库的帮助文档。但是codesys默认帮我们生成的文档,看起来比较简陋:看一下系统的,他的帮助文档有图、有表格、有代码示例,看起来很好看:假如我们也想做到这样子,该如何操作呢?

2024-03-06 17:40:46 1141 3

原创 CodeSys中调用C语言写的动态库

假如我们需要在CodeSys的编程环境中使用我们自己的功能,比如:用第三方的IO板卡通讯、PDF文件生成、相机采集图像并处理等等一些复杂的功能,那就可以使用CodeSys提供的功能,通过C语言动态库接口来实现。这里简单记录一下如何创建能够被CodeSys识别的C语言动态库。有了这个接口,只要我们对OpenCV、相机驱动库等进行封装,然后提供对应的操作函数给接口,就可以实现PLC的视觉检测功能。完美。【CodeSys V3.5创建一个编译库】

2024-02-27 10:13:27 4552 16

原创 CODESYS的Robotics_PickAndPlace_without_Depictor例程解释

这里先介绍用到的一些关键的功能块。

2023-12-18 16:40:56 1281

原创 CODESYS学习笔记

记录一下学习CodeSys遇到的一些知识点。

2023-12-07 16:33:08 4821 8

原创 ros2_control的简单应用

在利用moveit_setup_assistant配置我们自己机械手后,当运行demo.launch.py时,会实例化一个moveit对象以及一个基于ros2_control的、虚拟的控制对象,从而可以实现一个完整的控制闭环。此基于ros2_control的虚拟对象,包含了action(server)相关的实例化、关节状态的发布、虚拟伺服电机的驱动及读取。我们也可以利用ros2_control,将我们自己的机械手与moveit连接起来,从而实现moveit对我们机械手的控制。

2023-11-13 14:56:35 955 3

原创 在Qt中解决opencv的putText函数无法绘制中文的一种解决方法

查了一些资料,说想要解决这个问题,需要用到freetype库或者用opencv5(详情请查看文末的参考资料)。那我Qt也是第三方库啊,还倒不如直接用Qt实现呢。于是,我实现了一个myPutText函数。

2023-11-02 11:24:25 1481 4

原创 RK3588使用npu运行onnx模型推理

先说总体流程,我的RK3588板子上安装了Ubuntu22.04,可以直接在上面编程1.在x86主机上安装2.使用【rknn-toolkit2】,把onnx模型转换成rknn格式的模型。3.在板子部署【rknpu2】,在程序中调用接口编程即可。

2023-10-26 15:00:19 4099 3

原创 Window10运行onnxruntime报错的处理

在Windows10使用安装好英伟达驱动、cuda、cudnn等文件,然后运行程序的时候。程序会在加载模型时崩溃。经过一番查找后,得到输出的信息是说是缺少zlibwapi.dll。这个问题是去年做的一个项目时发现的,忘记当时是怎么发现了,好像是命令行直接输出这个信息,但是现在复现不了。现在只能通过断点调试到问题出现在cudnn64_8里面。

2023-10-12 15:28:33 1416

原创 MoveIt的【Use Cartesian Path】选项及computeCartesianPath函数

在rviz中使用MoveIt时,在MotionPlanning选项卡有一个【Use Cartesian Path】的选项,勾选之后,规划出来的路径是两个移动点的直线路径。需要特别注意的是,此种方式规划出来的路径是不进行碰撞外部检测的,也就是不会避障。勾选此项以在笛卡尔(3D)空间中生成一条线性路径。此举将不考虑避开障碍物。在moveIt的c++接口中,也有对应的一条函数。

2023-10-12 09:54:45 778 8

原创 执行QCameraInfo::availableCameras()时,返回空list。

我在Ubuntu22.04(ARM架构)下面,通过下面的方式安装的qt然后再安装,qt的multimedia模块在做好前面的操作后,在代码中执行函数QCameraInfo::availableCameras()返回可用的摄像头时,返回的列表为空。但是我的确已经插了摄像头到板子,而且用第三方软件可以打开(cheese)。

2023-10-09 16:27:12 585 1

windows下使用的Tesseract库

提供了适用于vs2017,64bit的Tesseract开发库。包含头文件、lib文件、dll文件,直接在程序中链接调用就可以。其中还包括了英文、简体中文的模型文件。 详情请查看:https://blog.csdn.net/joyopirate/article/details/109107718

2020-10-16

sysrootChange.py

制作交叉编译的rootfs时,理论上可以直接把arm板的 /文件目录下直接拷贝过来使用。但是直接拷贝过来的话,一些软连接的路径其实是不正确的。需要进行修正一下。这个脚本就是对这些软链接进行修正的。请配合这个使用:https://blog.csdn.net/qq_43248127/article/details/104077645

2020-06-24

用来配置Qt交叉编译的文件.zip

用来在linux下配置交叉编译Qt源码的配置文件。使用的是aarch64的编译器,具体使用教程请查看对应的博客。

2020-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除