- 博客(636)
- 资源 (2)
- 收藏
- 关注
原创 DBus总线详解
(Desktop Bus)是一种用于进程间通信(IPC)的系统总线,广泛应用于Linux环境中的桌面应用程序和系统进程之间的消息传递。它允许不同的应用程序和服务相互通信,无论是运行在同一台机器上的本地进程,还是通过网络连接的远程进程。
2025-05-28 16:52:15
716
原创 JT/T808协议解析
数据类型描述及要求BYTE无符号单字节整型(字节,8位)WORD无符号双字节整型(字节,16位)DWORD无符号四字节整型(双字,32位)BYTE[n]n字节BCD[n]8421码,n字节STRINGGBK编码,若无数据,置空协议采用大端模式传输字和双字,字节(BYTE)的传输,按照字节流的方式传输。
2025-05-28 10:57:38
635
原创 linux 交叉编译GStreamer
GStreamer 是一个开源的跨平台多媒体框架,旨在简化音视频应用的开发。其核心设计理念基于和,允许开发者通过组合模块化组件构建复杂的多媒体处理流程。它支持从简单播放到实时流媒体传输、视频编辑等多样化场景,并已集成超过 250 个插件,提供 1000 余种功能元素。
2025-05-23 09:35:22
526
原创 olama部署deepseek模型
0llama 是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。sudo tar -xzf ollama-linux-amd64.tgz -C / #解压部署工具到根目录。ollama serve #运行ollama 服务器。3.下载deepseek 模型。觉得有帮助的话,打赏一下呗。2.安装ollama部署工具。ollama API接口使用。测试远程远程服务器是否开启。1.下载ollama。(需要翻墙才能下载)4.开启远程通信功能。
2025-04-26 14:25:07
374
原创 inih介绍
INIH是一个轻量级的开源C语言库,专门用于解析。它通过逐行读取文本,识别键值对(),帮助开发者轻松管理配置文件。觉得有帮助的话,打赏一下呗。
2025-04-24 10:04:08
322
原创 lvgl 定时器
创建一个新的定时器。该定时器会按照指定的周期调用回调函数。删除指定的定时器,释放其占用的资源。暂停指定的定时器,暂停后定时器不会再调用回调函数。恢复已暂停的定时器,使其继续按照周期调用回调函数。设置定时器的回调函数,定时器会周期性调用该函数。设置定时器的调用周期。使定时器立即准备好执行回调函数,无需等待下一个周期。设置定时器的重复次数。重置定时器,定时器会在之前设置的周期毫秒后再次调用回调函数。启用或禁用整个定时器处理机制。获取定时器的空闲百分比,反映定时器处理的负载情况。用于遍历所有的定时器。
2025-04-23 11:29:20
222
原创 lvgl 网格布局
void lv_obj_set_grid_dsc_array(lv_obj_t * obj, const lv_coord_t col_dsc[], const lv_coord_t row_dsc[]):定义网格的列宽和行高。void lv_obj_set_grid_align(lv_obj_t * obj, lv_grid_align_t column_align, lv_grid_align_t row_align):定义子对象在单元格内的对齐方式(如左对齐、居中)。
2025-04-22 09:22:50
624
原创 lvgl 配置DRM
lvgl的drm驱动程序位于lvgl使用中主要用到以下几个函数:drm_init() drm初始化。drm_get_sizes() 获取显示器分辨率信息。drm_flush() 显示绘制回调接口。drm初始化过程中会自动获取DRM的资源,包括获知connect id, plane id, crtc id等,会根据配置文件中选定的颜色格式自动匹配对应支持的plane。#if 0if (!else#endif。
2025-04-17 09:29:24
559
原创 lvgl避坑记录
以上不会有log输出,分析如下:一旦 LV_LOG_LEVEL >= LV_LOG_LEVEL_INFO ——1,必定不会 <= LV_LOG_LEVEL_TRACE ——0。只能将 && 后面的删掉,修改如下:代码如下: 首先要打开以下宏:然后设置日志等级为 LV_LOG_LEVEL_INFO :发现日志输出有个警告:看到源码,一分析就找到原因了:修改后:三、PNG图片显示不了 出现如下报错:解决办法:直接增大内存便可。查看 lv_conf.h 文件:由于我跑在linux系统上,所以
2025-04-03 17:54:57
402
原创 跨平台串行通讯库libcserialport的使用
CSerialPort 项目是一个开源库,它提供了一个简单易用的接口来访问串口。它支持多种操作系统,包括 Windows、Linux 和 macOS。CSerialPort 可以用于各种应用,如串口通信、数据采集和设备控制。
2025-04-02 13:44:48
413
原创 linux驱动学习(十五)之ioctl
一般而言字符设备驱动不可能只会调用读写操作(read/write),因为字符设备还需要进行其他参数的配置(如摄像头驱动 设置摄像头的画面参数、获取摄像头的能力......),像这样的操作都不会使用读写函数来实现,一般内核都会交给ioctl函数来实现,像ioctl函数的特点就是通过发送不同命令码,然后驱动返回不同的数据。
2025-04-02 09:45:36
1077
原创 qt QQuaternion详解
是 Qt 中用于表示三维空间中旋转的四元数类。它包含一个标量部分和一个三维向量部分,可以用来表示旋转操作。四元数在计算机图形学中广泛用于平滑的旋转和插值。
2025-03-26 17:27:38
735
原创 qt QOffscreenSurface详解
QOffscreenSurface 是 Qt 中用于离屏渲染的一个类。它允许在不直接与屏幕交互的情况下进行 OpenGL 渲染操作,常用于生成纹理、预渲染场景等。通过 QOffscreenSurface,可以在后台创建一个渲染表面,进行绘制操作,并将结果捕获为 QImage 或其他格式。
2025-03-25 10:54:57
841
原创 lvgl学习(四)之移植FreeType字库
FreeType是一款开源的字体渲染引擎,它支持多种字体格式(后缀名.tty .ttc),在windows系统下的font目录下存储了很多字体文件,大家可以选择自己喜欢的字体风格,如下所示:LVGL中提供了关于FreeType字库在linux系统下的Vscode模拟器的移植流程,如下图所示:可以看到,FreeType字库是需要依赖zlib库的(FreeType-->Libpng-->zlib),并且移植完成后需要配置工程的Makefile文件的头文件路径和库文件路径,
2025-03-24 10:31:24
987
原创 lvgl学习(三)之常用控件
平铺视图部件可以实现不同方向的页面切换,用户可以页面中添加内容。选项卡部件可以实现多页面切换,用户可以在不同的页面中添加内容。微调器部件本质上就是一个数字文本,常用于精确调节某个参数的值。键盘部件可用于输入文本内容,其本质上就是一个特殊的按钮矩阵。消息框部件可以实现弹窗提示,常用于消息通知、确定操作等。窗口部件可以作为一个容器,展现不同功能的页面。觉得有帮助的话,打赏一下呗。
2025-03-21 17:09:08
362
原创 lvgl学习(一)
在LVGL中,对象(Object)是用户界面(UI)的最小组成单元,是一切可视化控件(如按钮、标签、滑块等)的抽象基类。它定义了控件的基础行为和通用属性(位置、尺寸、样式、事件等),并通过继承机制派生出各类具体控件,形成层次化的UI结构。LVGL采用的是的编程思想,以抽象的类来实例化不同的对象(部件)。由于C语言中没有“类”的概念,LVGL以的形式来实现“类”的思想。
2025-03-20 15:42:12
1317
原创 对接豆包大模型
可以知道豆包大模型可以采用HTTP的POST请求来进行对话,由于使用的是主流的HTTP/1.1的协议版本,支持长连接,但是如果打算在请求中包含请求body的话,一般是需要在构造HTTP请求的时候使用头部字段。role指的是角色,分为system和user,system指的是豆包大模型,user指的是用户,大模型和用户需要分别输入对应的对话内容。对于system的content指的是提供给大模型的提示词,对于user的content指的是提供给大模型的对话内容。觉得有帮助的话,打赏一下呗。
2025-03-19 14:15:47
732
4
原创 OpenGL 将屏幕上的二维坐标转换为三维空间中的一个点
屏幕坐标到标准化设备坐标 (NDC): 将屏幕坐标 (x, y) 转换为 NDC 坐标系。NDC 到相机空间: 使用逆投影矩阵将 NDC 坐标转换到相机空间。相机空间到世界空间: 使用逆视图矩阵将相机空间坐标转换到世界空间。
2025-03-18 09:24:31
377
原创 继电器模块使用
控制信号输入,用于连接到微控制器(如Arduino、Raspberry Pi)的数字输出引脚。:当COM与HIGH短接时,模块使用高电平触发。:当COM与LOW短接时,模块使用低电平触发。:绿色LED指示灯,显示继电器工作状态。:用于连接电源的正负极(供模块工作):常闭端(继电器未触发时闭合)觉得有帮助的话,打赏一下呗。:内置光耦隔离,保护控制电路。:常开端(继电器触发时闭合)
2025-03-09 18:20:29
819
原创 贝塞尔曲线学习
一阶贝塞尔曲线其实是一条直线——给定点 P0、P1,线性贝塞尔曲线就是一条两点之间的直线,公式如下:一阶曲线很好理解, 就是根据t来线性插值。
2025-03-05 16:27:10
211
原创 Docker 安装与使用
1、更新apt:2、安装依赖包3、添加Docker的官方GPG密钥:4、添加Docker APT存储库:5、再次更新apt软件包索引:6、确保从Docker存储库而不是默认存储库中安装:7、安装Docker:8、验证Docker是否正确安装:要构建Docker镜像,需要编辑一个Dockerfile文件,来描述镜像的构建过程。新建一个空目录,然后创建一个名为Dockerfile的文本文件,将如下内容拷贝进去:2、编译镜像使用命令在Dockerfile所在的目录中构建镜像:这将创建一个名为的新镜像。标
2025-03-04 11:30:09
847
原创 qt QOpenGLTexture详解
是 Qt5 提供的一个类,用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作,简化了 OpenGL 纹理的使用。
2025-02-17 18:27:56
1000
原创 Qt QOpenGLShaderProgram详解
是 Qt 框架中用于管理 OpenGL 着色器程序的类。它提供了一种方便的方式来创建、编译和链接着色器,以及管理着色器程序中的属性和统一变量。通过,开发者可以轻松地将顶点着色器和片段着色器组合成一个完整的着色器程序,并在 OpenGL 渲染中使用。
2025-02-13 09:32:03
726
原创 qt QOpenGLContext详解
是 Qt 提供的一个类,用于管理 OpenGL 上下文。它封装了 OpenGL 上下文的创建、配置和管理功能,使得开发者可以在 Qt 应用程序中以平台无关的方式使用 OpenGL。通过,可以轻松地创建和管理 OpenGL 上下文,并与 Qt 的窗口系统集成。
2025-02-12 09:21:10
1070
原创 Qt QOpenGLFunctions详解
是 Qt 提供的一个工具类,用于封装 OpenGL 的函数调用。它使得在 Qt 应用程序中使用 OpenGL 更加方便和安全,同时提供了跨平台的兼容性。通过继承,开发者可以轻松地访问 OpenGL 的核心功能,而无需直接调用原生的 OpenGL API。提供了大量封装的 OpenGL 函数,这些函数与 OpenGL 的原生函数一一对应,但通过 Qt 的方式进行了封装,使得代码更加简洁和易于管理。此外,还提供了一些辅助功能,例如检查 OpenGL 功能是否可用。
2025-02-11 18:05:55
597
原创 Qt QOpenGLWidget详解
是 Qt 框架中用于集成 OpenGL 渲染功能的类,它继承自QWidget,允许开发者在 Qt 应用程序中轻松嵌入 OpenGL 图形。通过继承并重写其虚函数(如resizeGL()和paintGL()),可以实现自定义的 OpenGL 渲染逻辑。
2025-02-11 17:54:36
892
原创 Qt QElapsedTimer 详解
QElapsedTimer是Qt框架中提供的一个高精度计时器类,主要用于测量代码执行时间和事件间隔。它能够在不同操作系统上提供准确的计时功能,并返回毫秒或纳秒级别的时间。QElapsedTimer没有父类,不支持Qt的元对象系统,因此只有接口函数。其计算精度比较高,非常适用于需要高精度计时的应用程序,如图形应用程序、动画游戏以及性能测试等。
2025-02-11 15:00:19
615
原创 qml slider详解
Slider是 QML 中用于通过滑动手柄选择值的控件。它允许用户在指定范围内选择一个值,常用于音量控制、亮度调节等场景。Slider支持水平和垂直方向,可通过多种属性和信号进行自定义和交互。
2025-02-11 09:38:32
402
qt QOffscreenSurface详解
2025-03-25
qt+opengl 播放yuv视频
2025-03-12
qt 基于百度API的车牌识别
2024-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人