自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(228)
  • 资源 (1)
  • 收藏
  • 关注

原创 【C#】winform代码编程中,锁和标志位的细分区别

摘要:标志位(guard flag)与锁(lock)的核心区别在于,标志位仅作为业务门禁,不阻塞线程且无原子性保证,适合UI线程防连击;而锁会阻塞线程并确保临界区互斥访问。在UI事件中应避免使用锁,因其可能导致界面卡死。推荐采用原子操作(如Interlocked)实现非阻塞式门禁,既能严格防重入又不会阻塞UI线程。标志位适用于单线程防重入场景,锁则适用于多线程资源保护。

2026-01-21 15:45:43 390

原创 【Servo】工程版角度扫频的共振点

摘要: 共振点是扫频测试中系统响应异常增大的频率点,表现为输入激励不变时输出幅值显著增加或在Bode图上出现幅值尖峰与相位突变。其本质类似弹簧-质量系统的固有频率响应,在电机伺服系统中常源于机械结构、惯量耦合或控制参数问题。共振点会引发不稳定、振动和噪音,需通过避开、陷波滤波或重新设计来抑制。识别特征为幅频曲线的陡峭峰值及相位快速变化,工程上需重点处理这些"易被激发"的频率点。(149字)

2026-01-19 14:45:12 405

原创 【Servo】cnt在电机里的核心含义

在电机/伺服系统中,cnt通常指编码器计数值(Encoder Count),表示电机轴位置对应的累计脉冲数。例如,当编码器为17位时,1圈对应131072个计数,53596表示电机转到了约0.409圈。在扫频测试中,若所有采样点均为53596,说明电机在该频段未发生有效位移(变化量小于1个计数单位),导致DFT分析结果为0。这种量化误差是使用整数计数信号的固有缺陷,工程上建议改用模拟量反馈(如速度或浮点位置)或对计数进行物理量转换(如弧度)以提高分辨率。此外,可设置阈值直接剔除无响应频点,但需注意区分真实共

2026-01-19 14:37:13 391

原创 【C++】VS 里 “看不到 std::cout”,最常见几类原因

摘要:在VS中无法看到std::cout输出的常见原因及解决方案:1)查看控制台窗口而非VS输出窗口;2)项目为Windows子系统缺少控制台,需修改为Console子系统或手动创建;3)未换行或flush导致缓冲区未刷新;4)如需在VS输出窗口显示,应使用OutputDebugStringA;5)代码可能未执行到输出位置。最常见情况是GUI项目缺少控制台或未刷新缓冲区。

2026-01-13 13:43:33 173

原创 【C++】计组相关--32位浮点型和32位整型的计算

当解析字节序列 06 FF FF FF 时,不同数据类型会得到不同结果: int32:按补码解析为 -250(有效值) float32:因指数位全1且尾数非0,按IEEE754标准解析为 NaN 这表明: 该字段可能本应是int32而非float32 或下位机用特殊值表示无效数据 日志中出现的 isfinite(v0)==false 正是由于浮点解析触发了NaN,而非解析错误。类似 00 00 00 00 则正常解析为0/0.0。需检查数据协议定义或下位机编码逻辑。

2026-01-07 14:41:57 276

原创 【C#】为什么同样继承 XtraUserControl, 一个有 Designer 一个没有?

本文解释了两种创建用户控件的不同方式及其适用场景。方式A通过设计器创建,会生成Designer.cs文件,适合需要可视化布局的场景;方式B纯代码创建,不生成Designer文件,适合需要最小依赖和更高可控性的内置工具。文章指出两种方式可相互转换,若要让纯代码控件支持拖拽设计,需改为Designer模式并完成相应代码迁移。实际选择取决于项目需求:平台工具适合纯代码,而需要可视化布局的功能则应采用设计器模式。

2025-12-26 10:46:54 259

原创 【C#】MEF 插件

下面把、 “”在 工程里到底怎么做,讲清楚( 后续要让新人“照文档走就通”的标准来写)。

2025-12-26 09:30:20 485

原创 【C#】软件设计,华为的IPD学习之需求开发心得

华为IPD需求管理体系将需求分为RR、IR、SR、AR四个层级,从原始需求逐步细化到可落地的分配需求。AR(分配需求)是落实到具体开发组的最小单元,需进一步拆分为设计、开发、自测和开发主流程时间四个执行维度:设计阶段完成技术方案和接口设计;开发阶段实现编码和联调;自测确保核心功能可用;开发主流程时间则管控关键路径进度。这种分层拆解方法确保了需求从概念到实现的可控性。

2025-12-24 10:27:01 879

原创 【C#】ScottPlot的Refresh()

摘要: ScottPlot 4.x 的 WinForms FormsPlot.Refresh() 源码核心逻辑仅包含三步:调用 Application.DoEvents() 处理消息队列、标记手动渲染标志位,并触发 Backend.Render() 执行实际绘图。该方法耗时波动主要受后端渲染复杂度(如轴计算、GC抖动)和 DoEvents() 的可重入风险影响。参数 skipIfCurrentlyRendering 能缓解消息队列积压,而 lowQuality 可提升交互帧率。源码表明,高频调用时需注意 D

2025-12-18 16:01:00 761

原创 【C#】画图控件的FormsPlot中的Refresh功能调用消耗时间不一致缘由

mFormsPlotDynamic是一个基于ScottPlot的WinForms画图控件,用于显示动态曲线数据。调用Refresh()方法会强制控件立即重绘,包括重新计算坐标轴、绘制曲线和更新显示。重绘时间通常在8ms到40ms之间波动,主要受三个因素影响:绘制内容复杂度(如坐标轴调整、元素数量)、UI线程繁忙程度,以及偶发的GC内存回收。8ms表示流畅绘制,40ms则可能导致25帧/秒的卡顿。该机制类似于即时打印图表,其速度取决于当前绘图任务量和系统状态。

2025-12-16 14:01:10 381

原创 【Servo】伺服驱动器的黑匣子功能

工业设备黑匣子是一种环形缓冲记录系统,可实时采集关键运行参数(如位置、电流、电压等8-16个通道,采样率1-2kHz),通过预设触发条件(报警/阈值/I/O等)自动冻结并存储故障前后数据(通常记录2秒,含1.5秒预触发)。相比传统示波器,它能离线捕获偶发故障的完整波形和状态信息,有效解决"故障复现难"问题。典型应用场景包括过流、过压、跟随误差等故障诊断,使用时需注意采样率与记录时长的平衡,并建议触发后立即导出数据避免覆盖。该工具显著提升了现场故障分析的效率和准确性。

2025-11-24 14:05:52 84

原创 【Servo】y=Asin(ωx+φ)

摘要:正弦函数 ( y = A\sin(\omega x + \varphi) ) 的参数解析: 幅值 ( A ) 决定振幅,负值时图像上下翻转; 角频率 ( \omega ) 控制周期 ( T = 2\pi/|\omega| ) 和频率 ( f = |\omega|/2\pi ); 相位 ( \varphi ) 确定水平位移 ( -\varphi/\omega )。图像对称性、零点和极值点位置可精确计算,导数与积分结果直接关联参数。扩展形式包括直流偏置和复指数表示,工程中广泛应用。核心记忆点:幅值定纵向范

2025-11-11 10:26:45 945

原创 【C#】WinForms 控件句柄与 UI 刷新时机

摘要:WinForms 控件必须具有句柄(Handle)才能更新UI,否则操作会被跳过。典型现象是后台线程产生的日志/数据在控件句柄创建前丢失。解决方案包括:1)消息缓冲-创建句柄后补刷;2)预热句柄-提前创建并保持;3)数据视图解耦。关键检查点:IsHandleCreated状态、UI更新条件判断、启动顺序。适用于所有"后台持续产出+界面延迟创建"场景。核心原则:先确保句柄存在再更新UI,或通过缓存/预热保证数据不丢失。(149字)

2025-11-03 16:24:45 850

原创 【C#】XtraMessageBox(DevExpress)与MessageBox(WinForms 标准库)的区别

摘要:XtraMessageBox(DevExpress)与WinForms标准MessageBox功能对比: 类型:均为静态调用,但XtraMessageBox明确为静态类,而MessageBox限制实例化。 特性:XtraMessageBox支持DevExpress皮肤、HTML富文本、自定义按钮等高级功能;MessageBox仅提供基础文本与固定按钮。 适用场景:已有DevExpress项目推荐XtraMessageBox以保持UI一致;轻量级工具或无依赖需求时选择标准MessageBox更简便。两者

2025-10-30 11:30:56 466

原创 【C#】await Task.Delay(100)与Thread.Sleep(100)?

本文对比了await Task.Delay(100)和Thread.Sleep(100)的差异。前者是异步等待,不阻塞UI线程,适合UI程序和异步方法;后者会同步阻塞当前线程,导致UI卡顿,仅适用于后台线程或控制台程序。文章建议在UI逻辑中使用Task.Delay,后台线程可用Thread.Sleep,并强调主线程绝对不能使用Sleep,同时给出了正确和错误用法的代码示例。最后用口诀总结了使用场景:"UI用Task.Delay,后台用Thread.Sleep,主线程绝不Sleep"。

2025-10-13 13:52:33 530

原创 【C#/Cpp】CLR项目搭建的内联和托管两选项

C++/CLI项目中"内敛"和"托管"选项的选择指南:内敛选项适用于优化频繁调用的小函数性能,通过内联函数实现;托管选项决定代码是否与.NET框架交互,勾选后可与C#等语言互通。选择时需权衡性能需求与.NET集成需求:纯C++项目可不选托管,需要与.NET交互则必须勾选托管;针对性能关键的小函数可启用内敛优化。两者组合适用于需要同时满足.NET互操作和性能优化的场景。

2025-08-28 16:42:52 808

原创 【C++】懒加载、单例初始化、全局资源注册的运用

C++11中的std::once_flag和std::call_once提供了一种线程安全的一次性初始化机制。它们确保在多线程环境中,初始化代码只会执行一次,且具有内存可见性保证。这些原语属于并发编程中的同步工具,常用于懒加载、单例模式和全局资源初始化等场景。相比手动实现的双重检查锁定模式,这种方法更简单可靠。使用时需要注意异常处理(异常会导致初始化重试)和对象生命周期管理(once_flag不可重置)。典型应用包括网络库初始化、配置加载和单例实现等。

2025-08-28 16:38:05 1007

原创 【Servo】FFT 中的归一化

FFT归一化概述 在频谱分析中,归一化是对FFT结果进行缩放,使其幅度或能量与输入信号物理量一致。不同软件库处理方式不同:未归一化时幅度约为N倍(N为采样点数);部分归一化在正变换时除以N;完全归一化则正/逆变换各除√N以保持能量守恒。 归一化的必要性在于:确保频谱幅度反映真实信号幅值,便于不同长度FFT结果比较,并满足能量守恒(Parseval定理)。若不归一化,会导致幅度失真、不同点数结果不可比,以及能量计算误差。 例如,1Hz正弦波(幅值1)经1024点FFT后,未归一化主峰约512,归一化后主峰约0

2025-08-27 13:43:42 880

原创 【C#】观察者模式 + UI 线程调度、委托讲解

摘要: 本文解析“观察者模式+UI线程调度”的典型实现,以ScopeFrame数据传输为例。核心包括:1)观察者模式解耦发布者(DemoDeviceService)与订阅者(UI);2)通过.NET事件机制实现多播委托;3)用BeginInvoke保证跨线程UI操作安全;4)数据帧封装(如ScopeFrame)统一交互契约。提供了复用模板:定义数据类→声明事件→触发事件→UI线程安全处理,并举例心率监控应用。该设计实现松耦合、线程安全与扩展性,适用于需要后台数据实时推送至前端的场景。

2025-08-22 18:07:59 1153

原创 【git】更改dafault和protect属性

本文介绍了如何将GitLab项目的默认分支设置为main并对其进行保护。操作步骤包括:1)确认main分支存在;2)在项目设置中将main设为默认分支;3)配置分支保护策略(如限制推送/合并权限);4)可选处理旧分支;5)同步本地仓库。需要Maintainer/Owner权限,操作后被拒通常因权限或保护规则导致。完成后main将成为受保护的默认分支。

2025-08-19 11:18:29 582

原创 【git】改 GitLab 远程分支名;

摘要:要修改GitLab远程分支名,需将旧分支推为新名并删除旧分支。默认分支还需在GitLab设置中更改指向。通用命令包括本地重命名、推送新分支、删除旧分支。修改默认分支需额外在仓库设置中更新,并同步保护规则。若使用TortoiseGit,可通过图形界面完成相同操作。常见问题包括受保护分支权限不足、CI/MR目标分支需同步更新等,需相应调整权限或由Maintainer操作。(150字)

2025-08-19 11:11:45 1864

原创 【C#】 GridControl与GridView、容器和视图

本文介绍了DevExpress中GridControl与GridView的区别及正确使用方法。GridControl是数据容器,负责绑定数据源和承载视图;GridView负责表格呈现,处理列、排序、过滤等显示功能。文章提供了两种配置方法:A)删除重建并重命名控件;B)通过Smart Tag手动添加和配置视图。同时给出了代码示例,包括数据绑定、视图设置、列格式化和行着色等常见操作。强调GridControl用于数据绑定,GridView负责显示设置,两者需配合使用且命名要规范。

2025-08-15 17:41:24 438

原创 【C++】自研基 2 Cooley–Tukey

本文介绍了基2 Cooley-Tukey快速傅里叶变换(FFT)算法的实现要点。该算法要求输入长度N为2的幂次,通过三层关键操作实现高效计算:首先进行倒位序重排(将输入序列按索引二进制位反转顺序排列);然后进行M=log₂N级蝶形运算,每级将数据分组进行2点蝶形计算并乘以旋转因子;最后输出存储在输入数组中。文章还说明了该算法在具体实现中的变量对应关系、与上下游系统的交互流程,以及需要注意的归一化处理和输入长度要求。该算法将DFT复杂度从O(N²)降至O(Nlog₂N)。

2025-08-15 16:04:47 989

原创 【C】环境搭建与运行说明--模板

环境搭建与运行摘要(IAR + VS Code,STM32H723) 本文档提供STM32H723开发环境搭建指南,包含以下核心内容: 工具链配置:IAR EWARM + VS Code + STM32CubeProgrammer 硬件要求:ST-LINK调试器、目标板及SWD连接 软件安装清单:IAR 9.x.x、设备包、CLI工具等 开发流程: IAR GUI编译下载验证 命令行构建与烧录 VS Code任务集成 验证标准:串口输出/LED心跳等运行证明 常见问题排查:时钟配置、链接脚本等 文档包含详细

2025-08-15 11:36:43 1137

原创 【C#】DevExpress.XtraEditors.MemoEdit memoEditLog控件讲解

本文介绍了 DevExpress.XtraEditors.MemoEdit 控件的特性与用途。作为 DevExpress UI 组件库中的多行文本编辑框,它类似于标准 .NET 的 TextBox(Multiline),但提供了更多样式和属性。MemoEdit 适合显示大段文本或日志,支持滚动条和只读模式,但不支持富文本格式。如需多色文本显示,建议改用 RichTextBox 或 DevExpress 的 RichEditControl。该控件适用于单一颜色的日志显示场景,但无法单独设置每行颜色。

2025-07-30 17:04:26 307

原创 【git】在 GitLab 上如何把 A 分支(如 feature/xxx)合并到 B 分支(如 trunk)

GitLab 分支合并与删除操作指南 选择分支: Source branch(源分支):选择要合并的分支A(如 feature/xxx)。 Target branch(目标分支):选择合并目标分支B(如 trunk)。 提交合并请求: 通过 Compare branches and continue 创建 Merge Request(MR)。 审核通过后,合并代码到目标分支。 删除源分支: 合并时勾选 “Delete source branch” 自动删除分支A。 未勾选可后续手动删除。 示例:将 feat

2025-07-30 11:13:52 884

原创 【Servo】裸机还是RTOS驱动架构如何选?

裸机还是RTOS驱动架构如何选?

2025-07-24 16:11:45 919

原创 【C++】去均值,扫频(Bode分析)、DFT/FFT前的预处理非常重要

去均值是信号预处理的关键步骤,主要作用是消除直流偏置对频域分析的影响。时域信号中的非零均值会导致DFT/FFT分析时主频点的幅值和相位失真,降低信噪比。通过去除直流分量,可以确保频域分析结果准确反映系统真实响应。在代码实现上,通常先计算信号均值再减去。输出信号(如反馈信号)必须去均值,输入信号(如激励信号)也建议处理。这一操作能有效提升扫频和频谱分析的可靠性。

2025-07-24 13:34:53 361

原创 【Servo】传递函数,工程例子,伺服系统bode

传递函数:控制系统的数学核心 传递函数是描述系统输入输出关系的频域数学模型,公式为G(s)=Y(s)/U(s)。它揭示了系统的动态特性(如惯性、延迟),能预测任何输入对应的输出响应。 典型实例: 水箱系统:输入流量与输出水位的关系呈现一阶特性G(s)=1/(As) 伺服驱动器:速度环传递函数G(s)=K/(Ts+1),K为增益,T为时间常数,反映系统响应速度 工程应用: 通过伯德图分析频率响应 用于系统整定和性能评估 通过-3dB点(对应ω=1/T)确定系统带宽 传递函数将复杂物理系统转化为可计算的数学模型

2025-07-21 17:15:02 1954

原创 【Servo】常见的信号频谱分析方法,csd 和 welch 是什么

信号频谱分析方法:welch与csd简介 welch和csd是两种常见的信号频谱分析方法,分别用于不同的频谱估计目的。welch方法用于估计信号的自功率谱密度(PSD),反映信号自身的频谱能量分布,适用于噪声分析和频谱特性提取。csd方法则用于估计两个信号的互功率谱密度(CSD),分析信号间的频域相关性,常用于系统辨识和频率响应分析。在频响函数(FRF)计算中,通过csd与welch的比值($H(f) = \frac{S_{yu}(f)}{S_{uu}(f)}$)可得到系统的传递特性。这两种方法在工程信号处

2025-07-21 15:04:15 787

原创 【Servo】伺服驱动器扫频功能方案文档

本文档介绍了伺服驱动器扫频功能的设计方案,包含需求背景、验收标准、实现方案和UI界面设计。该功能通过频率响应分析(Bode图)诊断系统特性,优化伺服参数。方案采用上位机+下位机协作模式,支持参数配置、自动数据采集与分析、伯德图可视化及报告导出。UI界面分为参数设置区、实时进度监控区和伯德图展示区,提供一键操作、曲线缩放对比和异常提示功能,满足工业自动化场景下的伺服系统调优需求。

2025-07-17 16:00:26 793

原创 【Servo】伺服驱动器扫频功能、实现方式、闭环扫频上下位搭配方式

伺服驱动器扫频功能、实现方式、闭环扫频上下位搭配方式

2025-07-17 13:42:56 1972

原创 【C】为什么要有基准时钟、为什么要再分频

摘要:采样系统需要基准时钟(如8kHz的SYSTEM_FREQ)并通过分频系数(SAMPLING_RATE_DIV_COEFF)调整采样率。分频机制允许灵活降低采样频率(如8kHz/2=4kHz),无需修改硬件时钟。这类似于利用钟表滴答声的频率,通过间隔计数来降低操作频率。分频系数确保了采样率与基准时钟保持整数倍关系,实现稳定触发和便捷调整。

2025-07-10 11:21:07 289

原创 【C#】PanelControl与Panel

DevExpress的PanelControl和.NET自带的Panel控件各有特点。PanelControl支持丰富的主题样式和外观定制,适合已使用DevExpress皮肤的项目;而标准Panel控件轻量高效,适合不需要第三方依赖的简单场景。选择时需考虑项目是否已采用DevExpress皮肤以及对外观定制的需求程度。

2025-07-09 16:46:15 590

原创 【Servo】伺服驱动器里的“超程”,是工业自动化、运动控制领域的常用术语

伺服超程解析 超程指伺服系统运动超出预设机械极限(正向/负向),常见于滑台越位、电机过转等情况。系统通过物理限位开关或软限位检测超程,触发报警并强制停机,保护设备及人员安全。故障需检查实际越限、限位设置或参数错误。核心作用在于防止机械损坏与安全事故。

2025-07-09 16:41:53 336

原创 【Servo】伺服驱动器里的“超程”,是工业自动化、运动控制领域的常用术语

伺服超程解析 超程指伺服系统运动超出预设机械极限(正向/负向),常见于滑台越位、电机过转等情况。系统通过物理限位开关或软限位检测超程,触发报警并强制停机,保护设备及人员安全。故障需检查实际越限、限位设置或参数错误。核心作用在于防止机械损坏与安全事故。

2025-07-07 14:34:07 759

原创 【C】陷波滤波器

陷波滤波器是一种选择性衰减特定频率信号的滤波器,在伺服系统中主要用于抑制机械共振。它能精准滤除导致电机异响、抖动的共振频率点(如42Hz),从而提升系统稳定性。实际应用中可用于消除振动噪音、提高系统带宽,甚至多级并联处理多频点共振。调试时需精确测定共振频率并合理设置带宽,避免过度影响正常控制。作为伺服调试的关键工具,陷波滤波器有效解决了机械共振引发的抖动、过流等问题。

2025-06-28 16:08:05 1242

原创 【C#】`ComboBox` 和 `ComboBoxEdit`的区别

WinForms中ComboBox与ComboBoxEdit的区别 ComboBox是WinForms原生下拉框控件(System.Windows.Forms),满足基本选择输入需求,轻量易用但功能有限。ComboBoxEdit(如DevExpress的XtraEditors)是第三方增强控件,支持主题美化、自动补全等高级功能,需引用DLL。 如何选择? 普通场景:用原生ComboBox 复杂UI需求:选用第三方ComboBoxEdit (注:后者需配合控件库使用) 两者核心差异在于功能扩展性与自定义程度。

2025-06-28 09:35:13 636

原创 【C#】WinForms C# 控件布局常用方式

WinForms C#控件布局常用方式包括:绝对定位(简单但不推荐)、Anchor锚定(半自适应)、Dock停靠(大块分区推荐)、布局容器控件(如TableLayoutPanel和FlowLayoutPanel)及嵌套布局。合理使用Panel分区结合Dock和TableLayoutPanel可实现复杂响应式布局。VS中WinForms设计快捷键包括Ctrl+箭头键微调位置/大小、对齐操作(如Ctrl+Shift+方向键)、等间距分布及Tab顺序设置等。实用建议:避免控件重叠,优先使用Panel+Dock组合

2025-06-27 17:10:30 2051

原创 【C#】 DevExpress.XtraEditors.SidePanel

DevExpress.XtraEditors.SidePanel

2025-06-26 16:31:38 624

C#MEF 插件 的讲解和相关步骤教程

PluginDev-From0To1

2025-12-26

c-cpp-properties.json、launch.json 和 tasks.json三者文件

c_cpp_properties.json、launch.json 和 tasks.json三者文件

2024-10-16

使用Python语言 ,实现批量删除C/C++类型注释

批量删除C和C++注释 1.目前支持去掉.h .hpp .c .cpp .java 这些以//或/**/为注释符的源文件 2.支持递归遍历目录 3.当前版本为Python2.7版本,故只有安装了Python2.7(或Python3.x以下版本的才可以直接使用,测试没问题后将编出exe直接使用) 4.使用方法:【记得自己备份一份以防万一】 (1)建立源目录,如d:\src(路径中最好不要有中文); (2)将delcomment.py放到某处(路径中最好不要有中文),如d:\delcomment.py (3)打开cmd,输入切换到(2)中delcomment.py所在的目录(这里是d:\),输入python delcomment.py d:\src 回车 (4)完成了去掉了注释的源代码 不明白的欢迎提问,知无不言

2024-08-02

基于多态的企业职工系统资料.zip

基于多态的企业职工系统资料

2024-01-29

C++实战练手-通讯录管理系统-源码

【C++】实战练手--通讯录管理系统 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: * 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 * 显示联系人:显示通讯录中所有联系人信息 * 删除联系人:按照姓名进行删除指定联系人 * 查找联系人:按照姓名查看指定联系人信息 * 修改联系人:按照姓名重新修改指定联系人 * 清空联系人:清空通讯录中所有信息 * 退出通讯录:退出当前使用的通讯录

2024-01-26

QSerialport多线程方法

QSerialport多线程方法 使用Qt也已经有一段时间了,虽然使用过继承QThread重写run函数,以及继承QObject然后使用MoveToThread两种方法实现多线程,但是在QSerialPort的使用过程中,两种方法都存在一定的问题。 典型的问题: QObject: Cannot create children for a parent that is in a different thread. QObject::startTimer: Timers cannot be started from another thread 原因:在主线程中创建了QSerialPort对象在子线程中调用,或者在子线程中创建然后在主线程中调用了。 对于继承QThread重写run函数的情况,往往容易在run外部定义QSerialport *port = new QSerialport()对象,然后在run中调用port->readAll()等函数,然而根据QThread的特性,只有run函数才运行在新的子线程中,所以这里就跨线程调用了 QSerialport对象,会出现上述报错。

2024-01-08

关于整合SSM的思维导图

这是详情对于之前文章https://blog.csdn.net/weixin_44939430/article/details/105702376?spm=1001.2014.3001.5501 的一个整体文件描述

2022-01-29

空空如也

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

TA关注的人

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