- 博客(1562)
- 资源 (67)
- 收藏
- 关注

原创 com0com 虚拟串口工具入门
com0com 适合开发调试,但需注意 驱动签名问题(Win10/Win11)。推荐使用 已签名版本 或 VSPD 替代。测试时确保 两个虚拟串口的参数一致。
2025-07-15 07:00:00
1428
1

原创 NVIDIA显卡驱动、CUDA、cuDNN 和 TensorRT 版本匹配指南
1)NVIDIA 显卡驱动需满足 CUDA 工具包的最低要求,例如 CUDA 11.8 需驱动版本 ≥515.43.04,CUDA 12.x 需驱动 ≥535.54.03。CUDA 与 cuDNN:需严格匹配,例如 CUDA 11.8 对应 cuDNN 8.6.0,CUDA 12.2 对应 cuDNN 8.9.0。显卡算力与CUDA版本的关系主要体现在显卡的Compute Capability(算力)决定了支持的CUDA版本。,输入显卡型号和操作系统类型,选择≥目标CUDA版本要求的驱动版本。
2025-03-09 20:34:18
16022
1

原创 Modbus测试工具ModbusPoll与Modbus Slave使用方法
Modbus测试工具ModbusPoll与Modbus Slave使用方法
2020-05-16 14:48:31
212800
42
原创 OSG中的着色器(Shader)编程
OSG 内置 Uniforms: OSG 会自动为你的着色器传递许多常用的矩阵和状态,名称是固定的。osg_NormalMatrix: 用于变换法线向量osg_FrameTime: 一个不断增加的帧时间,非常适合直接用作 uTime。osg_DepthRange: 视口的深度范围。使用获取精确时间: 上面的例子用了简单的累加。更专业的做法是在回调中使用来获取精确的时间。文件路径: 在生产项目中,最好使用来查找着色器文件,这样可以正确处理 OSG 的数据文件路径。调试。
2025-09-08 09:00:05
93
原创 Xilinx ZYNQ 开发环境中搭建Qt环境
对于初学者:强烈推荐先从方法一开始。利用 PetaLinux 内置的包管理来添加 Qt,可以避免繁琐的交叉编译配置,让你快速验证 Qt 程序能否在板卡上运行。对于需要特定 Qt 版本或功能的开发者方法二是必须的。虽然过程复杂,但它给了你最大的控制权。配置 Qt 时,-sysroot和-xplatform是两个最重要的参数。调试:确保你的帧缓冲(/dev/fb0)或显示服务器(X11/Wayland)在板卡上工作正常,这是 Qt 应用程序能显示的前提。
2025-09-07 10:35:42
430
原创 为 Xilinx Petalinux 2020.1 工具链配置一个适用于 AArch64 (ARM64) 架构的交叉编译环境。
bash运行上面这个脚本后,它会设置好所有必要的环境变量,如ARCHPATH等。你可以通过以下命令验证工具链是否生效:bash。
2025-09-07 09:56:40
455
原创 OSG工具集
OSG 提供了一系列强大的命令行工具,这些工具通常位于 OSG 的安装目录的bin文件夹中。工具类别主要工具功能描述场景处理osgconvosgviewer格式转换、场景查看数据准备osgdem地形生成、数据处理性能分析osgarchiveosgstats性能统计、数据分析工具链osgversionosgplugins版本信息、插件管理工具命令示例功能查看场景查看3D场景格式转换格式转换地形生成创建分页地形资源打包创建资源包纹理处理纹理转换场景分析统计信息版本信息osgversion显示版本。
2025-09-06 16:10:32
148
原创 Zynq设备与电脑相连方式
方法复杂度距离稳定性适用场景方法一:连接路由器★★★☆☆中高实验室、家庭、办公室等有现成Wi-Fi的环境方法二:Zynq开热点★★★★☆近中无网络基础设施、需要设备直连的现场调试方法三:4G/5G网络★★★★★无限远中远程监控、物联网(IoT)、车联网等真。
2025-09-06 13:40:35
1287
原创 OSG中TerrainManipulator(地形适配操纵器)
是osgGA库中的一个类,它继承自。在操作相机时,会考虑地形的高程信息,使相机始终沿着地形表面移动,避免穿入地下或飞得过高。cpp// 创建地形操作器// 设置最小高度(避免相机离地面太近)// 最小离地5米// 设置移动速度// 移动速度// 设置旋转速度// 旋转速度// 设置地形节点(如果自动检测失败)cpppublic:protected:// 重写高程查询方法// 先调用父类方法尝试获取高程// 如果父类找不到高程,使用默认值或自定义逻辑。
2025-09-06 09:23:14
48
原创 OSG中FlightManipulator (飞行操纵器)
cpp// 设置初始位置和方向// 初始位置 (X, Y, Z)// 初始朝向向量// 或者使用setByMatrix设置完整的变换cpppublic:// 重写键盘处理方法std::cout << "加力燃烧: " << (_afterburnerEnabled?"启动" : "关闭") << std::endl;// 重写加速度计算// 加力燃烧时加速度翻3倍private:// 使用自定义飞行操作器六自由度控制:完全自由的移动和旋转物理模拟。
2025-09-05 08:56:41
165
原创 OSG 中osgGA 库
核心地位osgGA是OSG人机交互的基石,任何用户输入都需要通过它来处理。分工明确:使用处理常规的3D导航,使用自定义处理应用程序特定的业务逻辑(如UI交互、物体拾取、技能释放等)。事件传递:理解事件的传递链(自定义处理器 -> 操纵器)和返回值(truefalse) 的含义至关重要。:在开发阶段和最终应用程序中集成多个操纵器,可以极大地提升用户体验和调试便利性。FRAME 事件:善用FRAME事件来处理动画和状态更新,它是驱动动态场景的核心。
2025-09-04 06:31:10
366
原创 OSG中DriveManipulator (驾驶操纵器)
cpp// 设置初始位置和方向// 初始位置 (X, Y, 高度)// 初始方向 (弧度,0表示朝向X轴正方向)// 或者使用setByMatrix设置变换矩阵cpppublic:// 重写键盘处理方法_isBraking;std::cout << "刹车状态: " << (_isBraking?"开启" : "关闭") << std::endl;
2025-09-03 08:51:20
346
原创 OSG中TrackballManipulator (轨迹球操纵器)
cpp// 设置初始位置:眼睛位置、中心位置、上方向osg::Vec3d(0, -5, 2), // 相机位置 (eye)osg::Vec3d(0, 0, 0), // 看向的点 (center)osg::Vec3d(0, 0, 1), // 相机的上方向 (up)false // 是否自动执行home(设为false手动控制)// 手动调用home(重置到初始位置)// 参数是事件时间,通常给0即可cpppublic:// 重写旋转方法// 调用父类方法实现基本旋转。
2025-09-02 08:57:41
298
原创 osgUtil::Optimizer 入门
是 OpenSceneGraph (OSG) 中一个极其重要的工具类,它通过访问者模式(Visitor Pattern)对场景图进行各种优化操作,旨在提升渲染性能和内存使用效率。你可以把它想象成一个“场景图编译器”或“性能优化器”。它会对场景图进行一系列复杂的遍历和修改,应用多种优化技术,使其更适合图形硬件(GPU)的渲染流程。
2025-09-01 12:51:16
921
原创 OpenCL C 内存对象
函数用途说明创建缓冲区创建一维数据数组创建2D图像创建二维图像对象创建子缓冲区创建缓冲区的子区域数据传输主机设备间数据拷贝内存映射主机直接访问设备内存内存复制设备内数据拷贝OpenCL 内存对象是连接主机和设备数据的桥梁。创建:在主机上使用创建内存对象。传输:使用将输入数据从主机传输到设备。设置参数:使用将内存对象绑定到内核参数。执行:将内核入队执行,设备处理数据。回读:使用将结果数据从设备传输回主机。释放:使用释放不再需要的内存对象。
2025-08-31 13:34:05
932
原创 OpenCL C 内核(Kernel)
函数用途说明创建程序从源代码创建程序对象创建程序从二进制创建程序对象编译程序编译程序源代码创建内核创建特定的内核对象创建所有内核创建程序中的所有内核设置参数设置内核参数值执行内核在设备上执行内核。
2025-08-31 13:18:42
997
原创 OpenCL C 命令队列
函数用途说明创建命令队列基本的队列创建创建命令队列OpenCL 2.0+ 方式写入数据主机到设备传输读取数据设备到主机传输执行内核启动并行计算clFinish等待完成阻塞直到队列空clFlush刷新队列建议开始执行命令。
2025-08-31 13:10:19
393
原创 OpenCL C 平台与设备
函数用途说明获取平台查询可用的 OpenCL 平台获取平台信息名称、供应商、版本等获取设备查询指定类型的设备获取设备信息硬件规格和能力创建上下文管理设备和内存创建命令队列提交命令到设备。
2025-08-31 13:06:49
253
原创 OpenCL C++ 内存对象
内存对象类型用途特点cl::Buffer一维数据数组最常用,灵活高效cl::Image图像/纹理数据支持硬件加速采样内存映射零拷贝操作主机直接访问设备内存子缓冲区数据分块处理便于并行处理大数组。
2025-08-31 12:52:42
306
原创 OpenCL C++ 内核(Kernel)
关键概念描述管理内核源代码的容器,负责编译。cl::Kernel具体的可执行函数实例,用于设置参数和执行。编译流程源代码 → Program对象 → build() → Kernel对象参数设置使用setArg()按顺序设置缓冲区、标量值和本地内存参数。内核执行使用指定全局和局部工作大小。错误处理务必检查构建日志 (
2025-08-31 12:50:46
517
原创 OpenCL C++ 命令队列
关键点描述作用主机与设备间的通信管道,所有任务都必须通过它提交。C++ 类关键属性(性能分析),(乱序执行)核心操作同步机制命令是异步的。使用cl::Event对象来管理命令间的依赖关系和查询状态。使用finish()来强制同步。
2025-08-31 12:48:28
902
原创 OpenCL C++ 平台与设备
组件作用关键方法硬件供应商实现get()cl::Device具体计算硬件, 各种设备属性查询设备类型筛选设备信息查询获取硬件规格。
2025-08-31 12:44:22
204
原创 Qt中使用 GStreamer 播放视频文件
这里我们创建一个自定义的QWidget来负责 GStreamer 管道的创建、帧的抓取和渲染。cppQ_OBJECTpublic:// 初始化 GStreamer 并创建管道// 开始播放private:// GStreamer 相关变量// Qt 相关变量// 处理 GStreamer 总线消息// Appsink 的信号处理函数,用于抓取新样本// 将 GstSample 转换为 QImagecpp// 静态函数:总线监视器回调,用于将消息传递到 Qt 主线程。
2025-08-31 10:13:11
56
原创 OSG中多个group 渲染顺序
OSG 提供了一系列预定义的渲染元名称,这些名称实际上是字符串常量。binName 字符串常量对应的整数值用途描述(0)默认渲染元,用于不透明物体。按状态排序优化渲染。(10)深度排序渲染元,会对物体进行深度排序。(11)透明渲染元,自动按从后往前顺序渲染透明物体。(12)按遍历顺序渲染,基本保持场景图中的添加顺序。控制方法应用对象作用优先级状态排序(默认)所有Drawable按状态分组优化性能低NodeDrawable的StateSet用整数精确控制顺序高透明物体的StateSet。
2025-08-30 08:53:02
1107
原创 OSG 中NodeVisitor
实现了访问者模式,它提供了一种机制,可以遍历场景图中的所有节点,并对每个节点执行特定的操作,而无需修改节点类的代码。简单来说:它就像一个“巡检员”,按照你指定的路线(遍历方式)走访场景图中的每一个“部门”(节点),并执行检查或操作。继承自。重写所需的apply()方法。在apply()方法中实现你的自定义逻辑。决定是否继续遍历(调用traverse()创建访问者实例。调用根节点的accept()方法,并传入访问者。获取访问结果。cpp// 1. 创建场景根节点// 2. 创建访问者。
2025-08-29 06:00:00
799
原创 OSG中纹理
简单来说,纹理就是贴在 3D 物体表面的 2D 图片。它可以是木材、金属、布料、砖墙等任何表面的照片或图案,用于增加模型的细节和真实感,而无需增加几何复杂度。在 OSG 中,纹理通过类族来实现。a)osg::Image- 图像数据职责: 存储像素数据(RGB、RGBA 等)。用法: 使用从文件加载图像。b)- 2D 纹理(最常用)职责: 管理 OpenGL 2D 纹理对象,设置纹理参数。用法: 将osg::Image设置给Texture2D。c)- 状态集职责: 纹理作为渲染状态附着在。
2025-08-28 06:23:34
788
原创 OSG 中osg::StateSet
是一个封装了 OpenGL 状态(State)的类。你可以把它想象成一个渲染属性的集合或绘图指令的配置包。在 OpenGL 中,渲染一个物体需要设置大量状态:用什么颜色?有纹理吗?如何混合?启用深度测试吗?等等。StateSet就是用来管理和批量设置这些状态的。关键点:附着性StateSet不是节点,但它可以附着到任何osg::Node(包括Group和Geode) 和上。继承性: 子节点会继承父节点的StateSet属性。这允许你在根节点设置全局状态(如雾效),所有子节点都会生效。覆盖性。
2025-08-27 07:35:28
685
原创 OSG 中的Group、Geode、Drawable
节点类型 (Class) | 功能描述 | 关键特性 || 基础组节点 | 维护一个子节点列表 || 变换基类 | 对其子节点进行矩阵变换 || 矩阵变换节点 | 使用 4x4 矩阵进行任意变换 |(PAT) | 位姿变换节点 | 分别设置位置、旋转、缩放,更易用 || 开关节点 | 控制子节点的显示与隐藏 || osg::LOD| 细节层次节点 | 根据距离自动切换不同细节的子模型 || 序列节点 | 按顺序或时间播放子节点,制作动画 |(非组节点)
2025-08-26 09:34:49
625
原创 Qt中使用Microsoft SQL Server (MSSQL)数据库
类名作用描述连接管理代表一个数据库连接。用于创建、打开、关闭连接。QSqlQuerySQL 执行用于执行任意 SQL 语句(SELECT, INSERT, UPDATE, DELETE, 存储过程等)并浏览结果集。QSqlRecord记录封装封装了数据库记录(一行数据)的字段信息和值。QSqlError错误处理提供数据库操作过程中发生的错误信息。数据模型高级抽象,提供了一个可编辑的数据模型,用于自动读写单个表,常与QTableView配合使用。关系模型的扩展,支持外键和关联表。BLOB:使用。
2025-08-25 09:23:53
836
原创 OSG库子动态库和插件等文件介绍
OpenSceneGraph 是一个开源的、跨平台的、高性能的3D 图形工具包(或称为场景图API)。它使用 C++ 和 OpenGL 编写,为开发者提供了构建图形应用程序(尤其是实时可视化、仿真、游戏、虚拟现实和增强现实应用)所需的一系列强大功能。模型格式插件图像格式插件和特殊功能插件。OSG 的插件系统是其强大功能的基石。它使得 OSG 能够成为一个支持海量数据格式的通用 3D 引擎。开发者:只需关心和等通用接口,无需担心底层格式差异。格式支持:通过添加一个小的插件库即可获得对新格式的支持。性能。
2025-08-24 14:14:25
822
原创 MySQL官方C/C++ 接口入门
类型格式范围描述DATEYYYY-MM-DD1000-01-01 到 9999-12-31日期值TIMEHH:MM:SS-838:59:59 到 838:59:59时间值DATETIME1000-01-01 00:00:00 到 9999-12-31 23:59:59日期和时间TIMESTAMP1970-01-01 00:00:01 到 2038-01-19 03:14:07时间戳YEARYYYY1901 到 2155年份值类型最大长度存储需求描述。
2025-08-24 08:41:36
835
原创 Linux 信号 (Signals)
信号是操作系统内核向用户空间进程发送的一种异步通知机制。它用于通知进程某个特定事件发生了。一个信号的处理遵循以下流程:产生 (Generation): 由内核、其他进程或硬件事件(如 由 MMU 产生)创建。递送 (Delivery): 内核将信号传递给目标进程,并促使进程采取行动。处理 (Handling): 目标进程收到信号后执行预定的操作。硬件异常: 由 CPU 检测到,内核将其转换为信号发给相关进程。 (Segmentation Fault): 非法内存访问。 (Floating-Point Ex
2025-08-21 22:55:07
1042
原创 Linux mmap内存映射
mmap是 Linux 系统编程中一把强大的“瑞士军刀”。它通过巧妙地将文件、内存和进程地址空间结合起来,提供了远超传统 I/O 操作的灵活性和性能。理解并熟练运用mmap,尤其是区分MAP_SHARED和的用途,是成为一名高级 Linux/C 程序员的重要标志。
2025-08-21 22:46:22
874
原创 UPnP/SSDP入门
UPnP (Universal Plug and Play) 是一种网络协议,允许设备在局域网中自动发现和交互,而 SSDP (Simple Service Discovery Protocol) 是其核心发现机制。本指南将介绍 UPnP/SSDP 的基本概念和工作原理。
2025-08-21 09:11:14
1035
原创 libmicrohttpd 入门
libmicrohttpd 是一个小型的 C 库,用于在项目中嵌入 HTTP 服务器功能。它设计简单、轻量级,适合需要 HTTP 接口但不想要大型 Web 服务器开销的应用程序。
2025-08-20 12:23:07
247
基于改进的S I F T特征的图像双向匹配算法
2010-07-21
VC编写与调用COM连接点demo
2011-07-12
CppUnit测试框架在VC2008中应用
2010-07-19
调试Release程序--Dump文件方式
2014-05-15
C++ 检测内存泄漏
2011-04-27
CH340, CH340G & CH341 (USB-SERIAL chip) V3.5
2024-04-16
librtmp x64 vs2015版本库文件
2022-05-09
websocketpp实例代码
2018-11-29
LengthFieldBasedFrameDecoder 实例代码
2017-12-02
微软TTS语音引擎实现文本朗读代码
2017-11-07
ice同步调用和异步调用实例代码
2019-04-07
thrift web实例代码
2018-12-07
MessagePack序列化实例代码
2017-12-02
Qt中调用MFC对话框
2019-03-23
netty 分隔符解码器使用实例
2017-12-02
pcm与g726相互转换
2017-11-02
Modbus C++实例
2017-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人