<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[简介]]></title><description><![CDATA[描述]]></description><link>https://blog.csdn.net/Simpson_</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Simpson_]]></copyright><item><title><![CDATA[【C++动态版本号生成方案：实现类似C# 1.0.* 的自动构建号】]]></title><link>https://blog.csdn.net/Simpson_/article/details/150066529</link><guid>https://blog.csdn.net/Simpson_/article/details/150066529</guid><author>Simpson_</author><pubDate>Fri, 08 Aug 2025 15:18:32 +0800</pubDate><description><![CDATA[在C#中，1.0.*版本号格式会在编译时自动生成构建号和修订号。本文将介绍如何在C++项目中实现类似功能，通过MSBuild自动化生成基于编译时间的版本号。]]></description><category></category></item><item><title><![CDATA[【海康视觉】九点旋转标定的使用]]></title><link>https://blog.csdn.net/Simpson_/article/details/145615915</link><guid>https://blog.csdn.net/Simpson_/article/details/145615915</guid><author>Simpson_</author><pubDate>Fri, 14 Feb 2025 09:34:48 +0800</pubDate><description><![CDATA[运动机构带着标定板在相机视野范围内执行九点坐标运动，创建图像中的特征点为模板，匹配查找并记录唯一特征点，每个点都有与其对应的物理点坐标。触发重新标定 - 使用Modbus与PLC通讯触发(D2000 == 1)标定失败 - 使用Modbus与PLC通讯发送(D2000 == 99)触发标定 - 使用Modbus与PLC通讯触发(D2000 == 2)(注意，如果标定一半中途取消，下次标定前需要先清空标定点再开始标定)旋转标定后，不能直接使用，需要使用运算模块中的功能执行对应的转换。平移旋转标定配置参数。]]></description><category></category></item><item><title><![CDATA[【VS2022】创建本地仓库，开启Git管理控制]]></title><link>https://blog.csdn.net/Simpson_/article/details/132301850</link><guid>https://blog.csdn.net/Simpson_/article/details/132301850</guid><author>Simpson_</author><pubDate>Thu, 13 Feb 2025 10:10:25 +0800</pubDate><description><![CDATA[网上查询说可以手动添加文件，但是没有说明如何添加整个项目到Git，所以没有尝试这种处理方式。而是调整的项目文件结构目录树，在所有项目的顶层（父目录）新建解决方案再把现有项目添加到新建的解决方案中，再重新创建Git仓库。在解决方案管理器选中当前解决方案，右键选择“创建Git仓库”，选择“仅限本地”，点击“创建”此类项目结构，在新建Git仓库的时候，会提示Git不会包含解决方案文件夹之外对的文件。新建空白解决方案 或者 直接新建项目（不要勾选“将解决方案和项目放在同一目录中”）]]></description><category></category></item><item><title><![CDATA[【VS2022】新版VS2022安装旧版本的.Net目标框架]]></title><link>https://blog.csdn.net/Simpson_/article/details/145546264</link><guid>https://blog.csdn.net/Simpson_/article/details/145546264</guid><author>Simpson_</author><pubDate>Mon, 10 Feb 2025 16:22:12 +0800</pubDate><description><![CDATA[已测试可用于 v4.0、v4.5、v4.5.1、v4.5.2、v4.6、v4.6.1、v4.7.2、v4.8。解决方法： 发现该文件夹是空的，只有20KB，从压缩包中重新提取v4.0文件，替换现有v4.0文件夹即可。将目标框架文件放入以下目录，然后重启VS，即可在目标框架列表中找到对应的框架版本。如果是v3.0，需要安装vs2010比较合适，进入NuGet管理下载相关目标框架。]]></description><category></category></item><item><title><![CDATA[【C# & 委托】C#中的内置泛型委托Action、Func＜TResult＞]]></title><link>https://blog.csdn.net/Simpson_/article/details/136395111</link><guid>https://blog.csdn.net/Simpson_/article/details/136395111</guid><author>Simpson_</author><pubDate>Fri, 01 Mar 2024 16:25:23 +0800</pubDate><description><![CDATA[内置泛型委托是编程语言提供的预定义委托类型。内置的泛型委托有 Func < TResult >、Action、Predicate< T >、Comparison< T > 和 Converter<TInput, TOutput>。无需显式声明自定义的委托。灵活性且简洁。委托实例本身是有成本的，并且委托调用通常比直接方法调用慢。因此，在高性能场景中，需要谨慎使用委托。一般的委托定义方式：需要先定义一个委托，再声明创建一个委托实例。// 定义一个委托// 创建委托实例并绑定到方法。]]></description><category></category></item><item><title><![CDATA[【C# & 多线程】多线程中的同步机制。如何安全的读写共享变量。]]></title><link>https://blog.csdn.net/Simpson_/article/details/136338093</link><guid>https://blog.csdn.net/Simpson_/article/details/136338093</guid><author>Simpson_</author><pubDate>Thu, 29 Feb 2024 10:03:40 +0800</pubDate><description><![CDATA[对于整数类型，还可以使用 Interlocked 类中的Exchange方法，来确保对整数类型的属性的线程安全访问，而无需显式地使用 lock 语句。在多线程环境中，如果没有适当的同步机制，线程之间的交互可能会变得混乱，导致数据不一致、竞态条件等问题。同步的主要目的是控制对共享资源的访问，确保线程之间的正确协作和顺序执行。如果MyProperty属性的get和set访问器都加了lock语句，并且您尝试使 sharedCounter.MyProperty++来增加计数器的值，那么最终的结果可能不是正确。]]></description><category></category></item><item><title><![CDATA[【C# & 多线程】如何停止正在运行中的子线程]]></title><link>https://blog.csdn.net/Simpson_/article/details/136321972</link><guid>https://blog.csdn.net/Simpson_/article/details/136321972</guid><author>Simpson_</author><pubDate>Tue, 27 Feb 2024 17:23:24 +0800</pubDate><description><![CDATA[CancellationTokenSource 和 CancellationToken 被用来发送取消请求，而任务或线程通过检查 CancellationToken.IsCancellationRequested 属性或调用 ThrowIfCancellationRequested 方法来响应这个请求。如果在线程中使用了一个内层的无限循环（while (true)），这将导致线程永远不会退出这个内层循环，此时要退出线程，除非执行强制停止。该标记位可以是共享变量，也可以是CancellationToken。]]></description><category></category></item><item><title><![CDATA[【Raspberry】自定义多网络的路由表规则。使树莓派可同时访问内外网。]]></title><link>https://blog.csdn.net/Simpson_/article/details/136229027</link><guid>https://blog.csdn.net/Simpson_/article/details/136229027</guid><author>Simpson_</author><pubDate>Fri, 23 Feb 2024 11:30:32 +0800</pubDate><description><![CDATA[在树莓派同时连接到多个网络时，比如有线网络（eth0）和无线网络（wlan0），eth0 和 wlan0 接口连接到不同的网络，eth0为内部局域网，wlan0为外部网络。一般使用DHCP默认配置网络设置，此时每个接口都有一个生成默认路由；这通常意味着树莓派可能会使用其中一个接口作为主要的网络连接，而另一个接口可能处于备用状态。哪个接口作为主要连接取决于路由的优先级（或度量值，metric），以及可能的接口状态（如是否启用、是否连接等）。]]></description><category></category></item><item><title><![CDATA[【QtCreator】Qt5.9 格式化日期字符串]]></title><link>https://blog.csdn.net/Simpson_/article/details/136166418</link><guid>https://blog.csdn.net/Simpson_/article/details/136166418</guid><author>Simpson_</author><pubDate>Mon, 19 Feb 2024 17:47:05 +0800</pubDate><description><![CDATA[在Qt5.9中，不能完美的支持时区的格式化。例如无法输出“2024.02.19T17:34:43.500+0800”这样的时区格式。可以采用手动计算时区，再用拼接字符串的形式输出。// 获取当前时间的偏移量（以秒为单位）// 将偏移量转换为小时和分钟// 格式化偏移量字符串"+" : "-";.arg(sign).arg(qAbs(hours), 2, 10, QChar('0')) //占用两个字符的宽度，十进制表示，使用0填充，]]></description><category></category></item><item><title><![CDATA[【C# & WebService】【3】使用HttpListener搭建简易版的Http服务器]]></title><link>https://blog.csdn.net/Simpson_/article/details/136138220</link><guid>https://blog.csdn.net/Simpson_/article/details/136138220</guid><author>Simpson_</author><pubDate>Sat, 17 Feb 2024 17:11:34 +0800</pubDate><description><![CDATA[HttpListener提供了一个简单的、可通过编程方式控制的 HTTP 协议侦听器，可以监听通过Prefixes属性指定的端口。通过方法GetContext()获取传入的HTTP请求。使用HttpListener搭建一个简单的Http服务器。用来方便设置调试第三方API时，没有服务器可以通讯的状况。新建一个控制台应用程序，演示Http服务器的使用。]]></description><category></category></item><item><title><![CDATA[【C# & WebService】【2】URL Http的基本使用]]></title><link>https://blog.csdn.net/Simpson_/article/details/126381316</link><guid>https://blog.csdn.net/Simpson_/article/details/126381316</guid><author>Simpson_</author><pubDate>Mon, 22 Aug 2022 09:49:49 +0800</pubDate><description><![CDATA[学习Http的基本请求方法，在本地模拟一个web服务器]]></description><category></category></item><item><title><![CDATA[【C# 基础知识篇】C# .Net设计准则之命名要求]]></title><link>https://blog.csdn.net/Simpson_/article/details/126391052</link><guid>https://blog.csdn.net/Simpson_/article/details/126391052</guid><author>Simpson_</author><pubDate>Thu, 18 Aug 2022 18:03:03 +0800</pubDate><description><![CDATA[命名规则，其实是一种约定俗成的定义方式。旨在使多数开发人员在编程时统一编程模型，易于代码理解。接触过的多种编程语言，都有不一样的命名规则，难免经常会混淆。单独记录一篇日志，方便自己加深印象。遇到混淆或有遗忘时，亦可翻出来重新看看。全文参考来自微软官方文档，具体参考“”.........]]></description><category></category></item><item><title><![CDATA[【C# & WebService】【1】认识WebService的交互方式]]></title><link>https://blog.csdn.net/Simpson_/article/details/126371471</link><guid>https://blog.csdn.net/Simpson_/article/details/126371471</guid><author>Simpson_</author><pubDate>Tue, 16 Aug 2022 18:05:04 +0800</pubDate><description><![CDATA[C# 和WebService的认识]]></description><category></category></item><item><title><![CDATA[【QtCreator】win 平台上QT如何打包发布成可运行的exe文件]]></title><link>https://blog.csdn.net/Simpson_/article/details/122981236</link><guid>https://blog.csdn.net/Simpson_/article/details/122981236</guid><author>Simpson_</author><pubDate>Thu, 17 Feb 2022 14:31:38 +0800</pubDate><description><![CDATA[文章目录前言一、新建bat脚本？二、收集依赖包三、打包成安装包Troubleshoot

前言
QT编译完成的文件，需要打包到没有安装QT的及机器上运行，可以借助自带的windeployqt.exe工具，收集软件运行必要的依赖包。然后再使用innosetup打包成完整的安装包。 

注意：收集依赖包的方法只在mingw编译器下测试可用，其他编译器需要自测。
一、新建bat脚本？
找到QT安装目录下的windeployqt.exe工具的路径名称。在一个空白目录中新建一个脚本，键入如下命令，路径后边的参数为即将]]></description><category></category></item><item><title><![CDATA[【Raspberry】树莓派下的QT使用，如何将Relase的程序打包给其他树莓派使用（非安装包方式）]]></title><link>https://blog.csdn.net/Simpson_/article/details/109519199</link><guid>https://blog.csdn.net/Simpson_/article/details/109519199</guid><author>Simpson_</author><pubDate>Wed, 14 Jul 2021 11:42:23 +0800</pubDate><description><![CDATA[Raspberry QT 一键收集依赖包打包程序

打开Qt Creater，选择release进行编译。

编译完成后，定位到release文件所在位置，

找到并复制编译完成后的文件，（一般体积比较大，名称和工程名一样的那个，没有文件后缀）

在任意位置新建一个文件夹（建议用全英文路径），将文复制到此文件夹中

在同目录下编写自动收集依赖包和创建运行文件的脚本(autoPack.sh)
在终端中打开当前文件夹（F4快捷键），并运行autoPack.sh脚本
输入第一个参数一定是和刚刚复制过来的文件名一样]]></description><category></category></item><item><title><![CDATA[【电气设计】插头/插座组合设计标准]]></title><link>https://blog.csdn.net/Simpson_/article/details/118719699</link><guid>https://blog.csdn.net/Simpson_/article/details/118719699</guid><author>Simpson_</author><pubDate>Wed, 14 Jul 2021 11:34:32 +0800</pubDate><description><![CDATA[1. International Plugs, Outlets, Connectors, Inlets By Country




Country
spec
Image




European “Schuko”
16A 250V



France
16A 250V



United Kingdom
13A 250V



South Africa
15A 250V



India
16A 250V



Australia
10/15A 250V



Italy
10/16A 250V



C]]></description><category></category></item><item><title><![CDATA[【QtCreator】能否在PC上边交叉编译工程供给树莓派使用？]]></title><link>https://blog.csdn.net/Simpson_/article/details/114987320</link><guid>https://blog.csdn.net/Simpson_/article/details/114987320</guid><author>Simpson_</author><pubDate>Thu, 18 Mar 2021 18:34:27 +0800</pubDate><description><![CDATA[项目场景：
提示：这里简述项目相关背景：
树莓派是arm64/armhf 架构，PC机是x86架构，两个不同的架构如何执行交叉编译？
虽然树莓派也可以安装QT环境，可是不想每次都把QT工程复制到树莓派进行编译再打包。


问题描述：
提示：这里描述项目中遇到的问题：


原因分析：
提示：这里填写问题的分析：


解决方案：
提示：这里填写该问题的具体解决方案：
参考官方指导，先找资料学习一下：
https://wiki.qt.io/Raspberry_Pi_Beginners_Guide
https://]]></description><category></category></item><item><title><![CDATA[【Raspberry】给树莓派初上手安装（ubuntu mate）系统镜像]]></title><link>https://blog.csdn.net/Simpson_/article/details/114877105</link><guid>https://blog.csdn.net/Simpson_/article/details/114877105</guid><author>Simpson_</author><pubDate>Tue, 16 Mar 2021 13:53:47 +0800</pubDate><description><![CDATA[文章目录前言一、下载树莓派镜像工具二、运行树莓派镜像工具二、选择离线镜像包制作镜像总结

前言
新入手了一个树莓派。卖家赠送的内存卡不包含系统镜像，先要给内存卡配置一个系统镜像。因为之前使用的官方的系统镜像只有32bit（Raspberry Pi Desktop），但是新款的Pi 4 支持64bit，习惯使用64位系统，故而本次抛弃的官方的镜像，选择Ubuntu Mate

提示：以下是本篇文章正文内容，下面案例可供参考
一、下载树莓派镜像工具
首先，将microSD卡插入计算机。
如果你的PC机是Ubun]]></description><category></category></item><item><title><![CDATA[【stm32】STM32F407 如何使用代码进入USB-DFU模式？]]></title><link>https://blog.csdn.net/Simpson_/article/details/113538760</link><guid>https://blog.csdn.net/Simpson_/article/details/113538760</guid><author>Simpson_</author><pubDate>Fri, 05 Feb 2021 21:02:35 +0800</pubDate><description><![CDATA[文章目录前言一、ST芯片的启动模式二、操作步骤1.新建工程2.读入数据参考文献

前言
大家都知道，ST芯片预置了自己的bootloader，使用方法也很简单，通过配置Boot1 和Boot0 引脚，复位后即可进入bootloader。
可是在某些应用需求中，特别是成熟的产品中，往往不方便拆开外壳来修改Boot引脚。
如何在不修改boot引脚的情况下进入DFU模式来进行程序升级？成为了产品的新需求。


一、ST芯片的启动模式
ST芯片的启动模式有三种。
Main Flash Memory 称为主Flas.]]></description><category></category></item><item><title><![CDATA[【marlin学习】STM32 Flash 被锁，如何在PlatformIO中更改外部晶振频率值？]]></title><link>https://blog.csdn.net/Simpson_/article/details/113246222</link><guid>https://blog.csdn.net/Simpson_/article/details/113246222</guid><author>Simpson_</author><pubDate>Thu, 28 Jan 2021 09:40:45 +0800</pubDate><description><![CDATA[问题描述： 程序在开发板上可以正常运行，在新作的板子上无法正常运行。
新板子只要烧录该程序，就会频繁报错“”，之后再也无法擦除和修改程序。只能通过修改bootloader模式重新擦除和修改程序。
经查找发现，程序配置的外部晶振值与开发板一致，但是与新作的板子不一致，从而导致新作的板子Flash被锁。
解决方法：需要修改时钟配置信息。
问题描述：platformIO 不像 STM32Cube 可以图形化配置时钟，也没有明显的配置头文件可以直接修改HSE_VALUE 和LSE_VLAUE,如何修改stm32+A]]></description><category></category></item></channel></rss>