<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一名热爱编程的程序员]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/wwb123321</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wwb123321]]></copyright><item><title><![CDATA[使用Python和周立功CAN进行UDS诊断]]></title><link>https://blog.csdn.net/wwb123321/article/details/148086701</link><guid>https://blog.csdn.net/wwb123321/article/details/148086701</guid><author>wwb123321</author><pubDate>Wed, 21 May 2025 09:51:16 +0800</pubDate><description><![CDATA[本文详细介绍了如何使用Python配合周立功USB-CAN设备，通过python-can、can-isotp和udsoncan库实现对汽车ECU的UDS诊断。内容涵盖硬件准备、环境配置、CAN通信设置、UDS会话切换与故障码读取，并提供了完整示例与常见问题排查，适合快速上手与实践。]]></description><category></category></item><item><title><![CDATA[【设计模式】适配器模式：让不兼容的接口和谐共处]]></title><link>https://blog.csdn.net/wwb123321/article/details/147257558</link><guid>https://blog.csdn.net/wwb123321/article/details/147257558</guid><author>wwb123321</author><pubDate>Tue, 15 Apr 2025 20:32:48 +0800</pubDate><description><![CDATA[适配器模式是一种结构型设计模式，通过中间层转换接口，让不兼容的类协同工作。本文生动讲解其核心概念，结合C++代码示例展示如何将旧日志系统适配到新接口，易于理解。文章还介绍了遗留系统集成、第三方库适配等常见应用场景。无论你是初学者还是进阶开发者，本文都能帮你全面掌握适配器模式及其在实际开发中的价值。]]></description><category></category></item><item><title><![CDATA[【设计模式】原型模式：用“克隆”术让对象创建更灵活]]></title><link>https://blog.csdn.net/wwb123321/article/details/146883709</link><guid>https://blog.csdn.net/wwb123321/article/details/146883709</guid><author>wwb123321</author><pubDate>Tue, 01 Apr 2025 08:45:00 +0800</pubDate><description><![CDATA[本文讲解了C++中的原型模式，一种通过“克隆”已有对象创建新实例的设计模式。文章从核心概念入手，剖析其“复制即创建”的优势，并通过详细的代码示例展示如何实现简易原型及深拷贝，解决浅拷贝隐患。结合图形编辑、游戏开发等应用场景，阐明其在复杂对象创建中的价值。文中还对比了原型模式与工厂模式的区别，总结其优缺点，帮助读者全面掌握这一模式。无论是初学者还是进阶开发者，都能从中轻松理解原型模式的原理与实践应用。]]></description><category></category></item><item><title><![CDATA[【设计模式】生成器模式：轻松构建复杂对象]]></title><link>https://blog.csdn.net/wwb123321/article/details/146549681</link><guid>https://blog.csdn.net/wwb123321/article/details/146549681</guid><author>wwb123321</author><pubDate>Thu, 27 Mar 2025 10:18:15 +0800</pubDate><description><![CDATA[本文讲解了一种分步骤构建复杂对象的生成器模式。通过计算机组装的代码示例，展示了其核心角色（产品、生成器、具体生成器、指挥者）及实现方式。文章还探讨了生成器模式在游戏开发、GUI设计等场景的应用价值，并与抽象工厂模式对比，突出其注重构建过程而非产品族的特性。配以生动类比和实用建议，本文帮助读者从基础到进阶全面掌握生成器模式，适合希望提升代码灵活性与可维护性的开发者。]]></description><category></category></item><item><title><![CDATA[【设计模式】抽象工厂：打造你的全能装备生产线]]></title><link>https://blog.csdn.net/wwb123321/article/details/146244048</link><guid>https://blog.csdn.net/wwb123321/article/details/146244048</guid><author>wwb123321</author><pubDate>Fri, 14 Mar 2025 08:45:00 +0800</pubDate><description><![CDATA[本文以生动有趣的方式讲解抽象工厂模式，通过游戏角色装备工厂的比喻，深入浅出地阐释其核心概念。文章对比简单工厂与工厂方法模式，展示抽象工厂在创建相关对象时的优势，并提供详细的C++代码示例，帮助读者轻松掌握实现方法。此外，列举GUI开发、数据库访问等实际场景，凸显其价值。]]></description><category></category></item><item><title><![CDATA[libusb交叉编译]]></title><link>https://blog.csdn.net/wwb123321/article/details/146102649</link><guid>https://blog.csdn.net/wwb123321/article/details/146102649</guid><author>wwb123321</author><pubDate>Mon, 10 Mar 2025 11:02:54 +0800</pubDate><description><![CDATA[libusb是一个C语言库，旨在为开发者提供一种统一的方式来访问USB设备，而无需深入了解底层操作系统的USB栈。USB设备枚举：发现和列出系统中连接的USB设备。设备打开和关闭：管理USB设备的连接和断开。配置和接口管理：控制USB设备的配置和接口设置。USB传输：支持控制传输、中断传输、批量传输和等时传输等多种USB通信方式。libusb的设计目标是跨平台兼容性，这意味着您编写的代码可以在多种操作系统上运行，只需进行少量的修改。]]></description><category></category></item><item><title><![CDATA[LCM交叉编译]]></title><link>https://blog.csdn.net/wwb123321/article/details/146051074</link><guid>https://blog.csdn.net/wwb123321/article/details/146051074</guid><author>wwb123321</author><pubDate>Wed, 05 Mar 2025 23:58:12 +0800</pubDate><description><![CDATA[消息传递模型： 采用发布/订阅模式，允许多个进程通过通道（channel）高效通信。数据序列化： 提供语言无关的类型定义语言（LCM 类型规范），通过lcm-gen工具自动生成特定语言的绑定代码。跨平台支持： 支持多种语言（C、C++、Java、Python 等）和操作系统（Linux、Windows、macOS 等）。实时性： 提供低延迟通信和实时流量分析工具（如lcm-spy），无需中央通信枢纽。应用场景： 广泛用于机器人、无人机和自主系统的开发。]]></description><category></category></item><item><title><![CDATA[glib交叉编译]]></title><link>https://blog.csdn.net/wwb123321/article/details/146042899</link><guid>https://blog.csdn.net/wwb123321/article/details/146042899</guid><author>wwb123321</author><pubDate>Wed, 05 Mar 2025 17:11:55 +0800</pubDate><description><![CDATA[glib是一个功能强大的C语言库，广泛应用于软件开发中。它提供了许多核心功能，如数据结构、线程管理、事件循环和实用工具函数，是GNOME项目的基础组件，同时也被许多其他项目（如GTK+、GStreamer和D-Bus）所依赖。glib的设计目标是提供跨平台的抽象层，使开发者能够编写可在不同操作系统上运行的代码。交叉编译是一种特殊的编译技术，允许开发者在一个平台（宿主机）上编译出可在另一个平台（目标机）上运行的二进制文件。这对于嵌入式系统、移动设备或其他架构（如ARM、MIPS）的开发尤为重要。]]></description><category></category></item><item><title><![CDATA[【设计模式】工厂方法：从交通工具系统看设计的奥秘]]></title><link>https://blog.csdn.net/wwb123321/article/details/146001333</link><guid>https://blog.csdn.net/wwb123321/article/details/146001333</guid><author>wwb123321</author><pubDate>Tue, 04 Mar 2025 10:23:49 +0800</pubDate><description><![CDATA[工厂方法模式是设计模式中的一颗明星，本文以交通工具系统为背景，生动讲解其核心思想。通过C++代码实现汽车、飞机、轮船的创建，展示如何将对象实例化推迟到子类，兼具灵活性与扩展性。文章对比简单工厂与工厂方法，剖析两者的优劣，并结合GUI 框架、游戏生成和文档处理等场景，阐明其应用价值。无论是GUI控件还是游戏敌人，工厂方法都能解耦创建逻辑，提升代码优雅度。轻松有趣的比喻和详尽示例，带你从零掌握这一模式！]]></description><category></category></item><item><title><![CDATA[【设计模式】简单工厂：让你的代码像点餐一样简单！]]></title><link>https://blog.csdn.net/wwb123321/article/details/145987172</link><guid>https://blog.csdn.net/wwb123321/article/details/145987172</guid><author>wwb123321</author><pubDate>Mon, 03 Mar 2025 15:40:10 +0800</pubDate><description><![CDATA[本文生动讲解了C++简单工厂模式，以餐馆点餐类比其核心：客户端通过工厂创建对象，无需关心细节。以“食物工厂”为例，展示了Food基类、Pizza等产品类及FoodFactory的实现，并分析其优缺点。文中区分了其他工厂模式，并列举游戏开发、GUI库等场景，说明各角色的作用。简单工厂让代码更优雅，是设计模式的实用入门。]]></description><category></category></item><item><title><![CDATA[【设计模式】单例模式：程序里的“独一无二”是如何炼成的？]]></title><link>https://blog.csdn.net/wwb123321/article/details/145929132</link><guid>https://blog.csdn.net/wwb123321/article/details/145929132</guid><author>wwb123321</author><pubDate>Fri, 28 Feb 2025 15:53:30 +0800</pubDate><description><![CDATA[单例模式确保类只有一个实例，并提供全局访问。本文生动讲解C++实现单例：从基础“懒汉模式”到线程安全的加锁优化，再到优雅的Meyers' Singleton，利用C++11实现简洁与安全并存。提供详细代码与优缺点分析，易于掌握。列举日志管理、线程池等场景，展示实用性，同时提醒测试难题与全局状态风险。适合C++初学者与进阶开发者，快来打造你的“独一无二”！]]></description><category></category></item><item><title><![CDATA[RViz2中创建自定义Panel面板]]></title><link>https://blog.csdn.net/wwb123321/article/details/145326927</link><guid>https://blog.csdn.net/wwb123321/article/details/145326927</guid><author>wwb123321</author><pubDate>Fri, 24 Jan 2025 10:47:51 +0800</pubDate><description><![CDATA[RViz2 是 ROS2 中用于可视化数据的工具。通过创建自定义 Panel，你可以定制 RViz2 的用户界面，实现与外部数据源交互，或者显示额外的控制面板。本教程将引导你快速创建一个简单的 Panel，展示如何在 RViz2 中集成基本的 UI 元素。]]></description><category></category></item><item><title><![CDATA[QTableView/QTableWidget单元格自适应拉伸]]></title><link>https://blog.csdn.net/wwb123321/article/details/134531093</link><guid>https://blog.csdn.net/wwb123321/article/details/134531093</guid><author>wwb123321</author><pubDate>Tue, 21 Nov 2023 14:28:33 +0800</pubDate><description><![CDATA[QTableView及QTableWidget实现自适应调整表格单元格的的宽度以及高度，当表格进行拉伸改变了表格的大小时，单元格的大小将跟着表格大小的改变而自适应改变。]]></description><category></category></item><item><title><![CDATA[ROS系统运行第一个程序仿真小乌龟]]></title><link>https://blog.csdn.net/wwb123321/article/details/130569680</link><guid>https://blog.csdn.net/wwb123321/article/details/130569680</guid><author>wwb123321</author><pubDate>Mon, 08 May 2023 23:41:01 +0800</pubDate><description><![CDATA[在ROS系统中体验第一个程序仿真小乌龟]]></description><category></category></item><item><title><![CDATA[Ubuntu下ROS安装步骤]]></title><link>https://blog.csdn.net/wwb123321/article/details/130550381</link><guid>https://blog.csdn.net/wwb123321/article/details/130550381</guid><author>wwb123321</author><pubDate>Mon, 08 May 2023 00:46:19 +0800</pubDate><description><![CDATA[文章主要介绍了ROS再Ubuntu下的安装步骤]]></description><category></category></item><item><title><![CDATA[C++常见面试题]]></title><link>https://blog.csdn.net/wwb123321/article/details/129773028</link><guid>https://blog.csdn.net/wwb123321/article/details/129773028</guid><author>wwb123321</author><pubDate>Sun, 26 Mar 2023 10:51:20 +0800</pubDate><description><![CDATA[C++常见的一些面试题总结]]></description><category></category></item><item><title><![CDATA[Qt中常见的面试题总结]]></title><link>https://blog.csdn.net/wwb123321/article/details/129771751</link><guid>https://blog.csdn.net/wwb123321/article/details/129771751</guid><author>wwb123321</author><pubDate>Sat, 25 Mar 2023 20:21:07 +0800</pubDate><description><![CDATA[基于Qt开发的一些常用面试题]]></description><category></category></item><item><title><![CDATA[QTreeView实现层级选中联动效果]]></title><link>https://blog.csdn.net/wwb123321/article/details/129566646</link><guid>https://blog.csdn.net/wwb123321/article/details/129566646</guid><author>wwb123321</author><pubDate>Wed, 15 Mar 2023 20:10:03 +0800</pubDate><description><![CDATA[在MyModel中，我们为每个节点添加了一个布尔属性check_state，用于记录该节点的选中状态。在处理选中项更改的时候，我们使用update_children()和update_parent()方法更新选中状态，并使用setData()方法更新TreeView上的项。在TreeView中，我们为节点、消息和信号添加了自定义的setData()方法，用于更新其选中状态。在MyModel中，我们还重载了data()方法，以便我们可以为TreeView中的每个项提供不同的文本和显示样式。]]></description><category></category></item></channel></rss>