- 博客(294)
- 资源 (19)
- 收藏
- 关注
原创 基于Qt的工业组态软件开发:图形绘制与TCP通讯实现
在数据接收时,通过 readyRead 信号触发解析函数,校验数据包完整性后提取有效数据,并更新对应图形元素的状态,例如根据温度值改变矩形的填充色,实现设备状态可视化。测试阶段,我们将软件部署到Windows工控机,连接PLC设备进行通讯测试,结果表明图形元素响应及时,TCP数据传输稳定,满足工业现场的基本需求。综上所述,基于Qt的组态软件开发,核心在于利用 QGraphicsView 框架实现图形元素的灵活绘制与管理,结合 QTcpSocket 完成工业数据的可靠交互。
2025-12-22 17:08:20
35
原创 用密码学安全随机数生成256位密钥
本文介绍了Windows平台下生成密码学安全随机数的方法,强调必须使用系统级CSPRNG而非伪随机函数。代码示例展示了如何通过CryptGenRandom API生成256位AES密钥,包括获取加密服务提供器句柄、生成随机数并释放资源三个关键步骤。测试程序验证了密钥生成功能,输出格式化的十六进制密钥。该实现符合密码学安全要求,适用于Windows XP及以上系统。
2025-11-27 11:34:24
206
原创 机器人控制器程序需求分析
本文提出了一套完整的机器人控制系统方案,包含四大核心功能模块:1)多模式切换管理,支持运行/示教/调节/空挡四种工作模式;2)运动控制模块,提供直线/圆弧等运动API及2-10ms实时控制周期;3)脚本解析与执行系统,集成Squirrel脚本引擎;4)安全监控体系,包含硬件/软件双重急停保护、状态实时监控及事件记录功能。系统采用C++跨平台设计,兼容Windows/x86Linux/ARM64Linux系统,并通过标准化接口预留支持多种通讯协议扩展,为机器人设备提供高精度、高安全性的控制解决方案。
2025-11-20 10:26:19
188
原创 日志管理器需求分析与实现
本文设计了一个日志管理类LogManager,实现了日志文件的自动创建、写入和滚动切换功能。主要功能包括:1)支持设置日志文件大小限制和数量限制;2)自动创建日志目录(默认在可执行文件所在目录下的log文件夹);3)提供两种日志写入接口(CString类型和格式化字符串);4)多线程安全写入;5)自动添加时间戳;6)日志文件按索引循环使用。通过临界区保证线程安全,当文件大小达到限制时自动切换到新文件,支持按编号循环覆盖。该设计具有可靠性、性能和易用性优势,能满足基本的日志管理需求。
2025-11-17 18:24:33
572
原创 用滑动窗口法降噪
摘要:本文实现了一个滑动窗口均值滤波算法,用于处理带噪声的时序数据。C++版本通过动态更新窗口和计算移动平均值来平滑数据,而另一段代码展示了每秒采集Yc(204)值并计算15个数据点平均值的实际应用。两种实现都采用滑动窗口机制,通过移除旧值、添加新值来维护固定窗口大小,并实时计算均值输出到Yc(360)。测试数据显示滤波后输出更平滑,验证了算法在去除噪声方面的有效性。
2025-11-07 18:53:00
366
原创 C和C++的联系与区别
而在C++中的C,相对于原来的C还有所加强,引入了重载、内联函数、异常处理等,C++拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等。C++从C基础上发展而来,且大大扩充了C的内容和功能,提供了更多更全面的支持。对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或实现过程控制。在C++中,不仅需要考虑数据封装,还需要考虑对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。对语言本身而言,C是C++的子集。
2025-10-20 09:18:54
205
原创 include″″与includ<>的区别
简单来说,双引号 " " 先找“家”(当前目录),尖括号 < > 直接找“仓库”(系统库目录)。反之,用双引号包含标准库文件虽然可能找到,但会增加不必要的查找时间,不符合规范。#include <文件名> 用于包含系统标准库的头文件(如 <stdio.h> , <iostream> ),编译器会直接去系统预设的标准库目录查找。#include "文件名" 用于包含用户自定义的头文件(如自己写的 .h 文件),编译器会优先在当前源文件所在目录查找。
2025-10-18 22:24:01
261
原创 BGRA 数据为什么与bmp 上下颠倒
BMP图像与BGRA数据"上下颠倒"的本质源于BMP格式的"底部优先"存储规范。BMP文件将首个像素存储在左下角,逐行向上排列,而现代图像数据(如BGRA)默认采用"顶部优先"存储(左上角开始)。这种差异源于早期硬件设计:BMP的存储顺序适配CRT显示器从下至上的扫描方式,以优化渲染性能。因此,在BGRA转BMP时需手动反转行序(如代码中的height-1-i操作),否则生成的图像会上下颠倒。解决方案包括转换时调整行序,或使用Qt的镜像功能进行后期
2025-10-14 16:56:56
708
原创 C++编程规范 良好的编程风格
(2)假设整型变量的名字为 value,它与零值比较的标准 if 语句如下。(1)假设布尔变量名字为 flag,它与零值比较的标准 if 语句如下。(3)假设浮点变量的名字为 x,它与 0.0 的比较如下。其中 EPSINON 是允许的误差(即精度)。(4)指针变量 p 与 0 的比较如下。
2025-10-12 07:36:29
327
原创 c++ 程序基础-变量赋值
想要访问内存时,就需要相应的地址以表明访问哪块内存,而变量是内存的映射,因此变量名就相当于一个地址。对于内存的操作,在一般情况下只有读取内存中的数值和将数值写入内存。在C++中,为了将一数值写入某变量对应的地址所标识的内存中,只需先书写变量名,后接“=”,再接要写入的数字,例如a=1。对于一个变量进行赋值操作有两种方式,一种是用“=”操作符;另一种是用“++”、“--”操作符。分析代码写输出——一般赋值语句。考点:一般赋值语句的概念和方法。
2025-10-08 14:30:51
354
原创 URScript介绍
优傲机器人(Universal Robots)是丹麦工业协作机器人制造商,2005年成立,2015年被泰瑞达收购。其自研编程语言URScript基于Python语法,专为机器人控制优化,支持运动指令、IO控制等功能,具有类Python的简洁语法和实时性特点。URScript提供丰富的API,支持变量赋值、条件判断、循环及函数定义等编程结构,参数按值传递。用户可通过该语言在Polyscope界面编写程序,实现自动化任务。目前优傲在全球20多个办事处为多国客户提供服务。
2025-09-22 08:16:31
458
原创 CScintillaWnd 获取光标处的单词
摘要:本文介绍了如何在MFC封装的Scintilla控件(CScintillaWnd)中获取光标处的单词。核心方法是使用Scintilla的API函数,包括获取当前光标位置(SCI_GETCURRENTPOS)、确定单词边界(SCI_WORDSTARTPOSITION/ENDPOSITION)以及提取文本范围(SCI_GETTEXTRANGE)。代码示例展示了完整实现过程,包括参数检查和安全处理,最终返回光标所在位置的单词内容。该方法适用于需要分析编辑器文本内容的开发场景。
2025-09-19 14:43:30
142
原创 platform_ops_t 结构体在兼容性设计中的应用
本文探讨了platform_ops_t函数指针结构体在嵌入式系统跨平台兼容性中的关键作用及优化方案。该结构体通过封装硬件操作接口,实现"统一调用、差异实现"的硬件抽象,支持代码无缝移植。优化方向包括:预留扩展字段支持向前兼容、增加硬件能力检测实现功能降级、绑定性能参数确保性能基线。建议配套统一初始化接口和完善的文档测试机制,以保障跨平台兼容性。该设计可有效解决嵌入式系统在硬件迭代和平台差异中的兼容性问题。
2025-09-07 19:33:16
954
原创 嵌入式软件兼容性设计要点实践
嵌入式软件兼容性设计需从五大维度考量:数据兼容性方面,采用版本标识和预留字段保证数据结构扩展性;接口兼容性通过固化参数定义和版本管理确保API稳定;系统兼容性借助硬件抽象层实现跨平台适配;功能兼容性基于硬件能力检测动态调整功能;性能兼容性则设定基线标准并动态优化资源分配。这些措施共同保障嵌入式系统在多硬件、多场景下的稳定运行和长期迭代能力。
2025-09-07 13:52:15
994
原创 学习-XMind 思维导图
XMind是全球知名思维导图软件,具有可视化呈现复杂信息的特点。其核心功能包括多图表结构支持、跨平台操作和个性化设置。操作界面分为菜单栏、快捷键区、属性设置等模块,支持Enter/Tab键快速构建主题框架。典型使用流程为:先搭建逻辑框架,再优化内容结构,最后进行视觉美化。该软件适用于学习、工作会议等多种场景。
2025-08-28 16:29:07
203
原创 学习-OFD文件格式
OFD是我国自主可控的固定版式文档格式(GB/T33190-2016),相比PDF具有国产化适配、文件体积小、支持国密算法等优势,已在政务、金融、法律等领域强制推广。OFD原生支持中文排版和国产操作系统,可通过WPS等国产办公软件打开和编辑。作为针对国内场景的优化格式,OFD在安全合规领域成为首选,而PDF仍保持日常文档的国际通用性。
2025-08-28 09:26:11
2543
原创 记录一下,qt问题:qt ui文件的改动无法更新到cpp
摘要:当项目因奇葩原因出现异常,尝试清理、重构等操作无效时,可尝试取消Shadowbuild勾选来解决。该方案适用于常规方法失效的情况,是排查问题的潜在解决方案之一。
2025-08-26 17:42:28
257
原创 配置成静态链接库和动态链接库,优缺点分析
静态链接库和动态链接库各有优劣。静态库将代码直接编译进可执行文件,部署简单但体积大;动态库运行时加载,节省空间但需附带DLL文件。小型工具适合静态库,大型项目推荐动态库。选择取决于项目规模、更新频率和部署需求。静态库稳定性好,动态库更灵活高效。
2025-08-11 08:18:13
375
原创 Squirrel语言中endswith 函数的用法
Squirrel语言的endswith函数用于判断字符串是否以指定子串结尾,返回布尔值。语法为endswith(string,suffix),区分大小写且空字符串始终返回true。示例:endswith("Hello,world!","world!")返回true。适用于文件后缀检查等场景,需注意参数必须为字符串类型。
2025-08-05 14:30:28
224
原创 多线程计算PI
本文展示了一个使用多线程计算π值的C++程序。程序通过MFC的AfxBeginThread创建4个线程,每个线程计算部分积分值,通过事件机制同步线程完成状态。主线程汇总各线程的部分和,最终得到π的近似值。程序包含线程参数结构、线程函数和主线程控制逻辑,实现了任务分配、线程同步和结果汇总。通过GetTickCount()测量运行时间,输出π值和计算耗时。相比并行计算,该方案采用多线程共享内存的方式,使用事件对象进行线程同步,适用于单机多核环境下的数值计算任务。
2025-08-04 11:31:46
570
原创 并行计算程序一例
本文介绍了一个使用OpenMP并行计算π值的C程序。程序采用数值积分方法,通过计算函数4/(1+x²)在[0,1]区间内的定积分来近似π值。核心实现包括:设置4个线程,将10亿次计算任务均匀分配给各线程,采用矩形法进行数值积分。每个线程独立计算部分结果,最后汇总得到π的近似值。程序还测量并输出了运行时间,展示了并行计算的效率优势。在Visual Studio中运行时需要开启OpenMP支持选项。该方法通过增加计算步数可以提高π值的精度。
2025-08-04 10:45:29
264
原创 C的运算符与表达式
在C语言中,运算符用于执行各种操作(如算术、逻辑、赋值等),表达式则是由运算符和操作数组成的式子。- 复合赋值: += ( a += b 等价于 a = a + b )、 -= 、 *= 、 /= 、 %=- || :逻辑或(至少一边为真,结果为真;- 示例: a = 1, b = 2, c = a + b (结果为 3 )- == :等于(如 a == b ,注意与 = 区分)- -- :自减(规则同自增,如 a-- 、 --a )用于比较两个值,结果为“真”(非0)或“假”(0)。
2025-08-04 08:53:03
76
原创 在vscode 如何运行a.nut 程序(Squirrel语言)
在VSCode中运行Squirrel语言(.nut)程序需要:1)安装Squirrel解释器并配置环境变量;2)安装VSCode的Squirrel语法插件;3)通过tasks.json配置任务运行器,指定sq命令执行当前文件。按Ctrl+Shift+B即可运行程序,还支持添加运行参数。适用于Windows/Linux/macOS系统。
2025-08-01 10:41:40
952
原创 推荐一款免费软件比较a.txt 和 b.txt 的不同之处
WinMerge是一款免费开源的文本对比工具,特别适合比较a.txt和b.txt等纯文本文件。它能清晰显示文本差异,用不同颜色标记新增、删除和修改的内容,操作简单直观。支持左右分栏对比,可直接编辑文件,还提供文件夹对比、差异报告生成等实用功能。完全免费无广告,兼容Windows和Linux系统。用户只需从官网下载安装即可使用,是个人和商业场景下进行文本对比的理想选择。
2025-07-31 09:39:22
476
原创 在Squirrel语言中local x=@“aa“ 和local x=“aa“ 有什么区别
摘要:Squirrel语言中,常规双引号字符串("...")不能包含换行符,否则会报错。而带@前缀的字符串(@"...")支持多行文本,保留换行和缩进格式,适合定义跨行内容如脚本或SQL语句。前者需避免换行,后者则能完整保留文本原始格式。
2025-07-30 16:30:52
2675
Astyle 3.6.5 源码
2025-04-16
Azure Kinect SDK 是微软为 Azure Kinect DK 硬件设备量身打造的软件开发工具包,可助力开发者高效利用该设备的各项功能进行应用程序开发
2025-04-16
git 2.32.0-64位安装文件
2025-04-16
WinSCP 是 Windows 环境下出色的开源图形化 SFTP 客户端,也支持 SCP 协议
2025-04-16
std for-each学习笔记
2025-04-16
范围基 for 循环学习笔记
2025-04-16
Restart on Crash 是一款免费的 Windows 系统进程监控软件
2025-04-16
适用于VS2022的 VA Assist(全称 Visual Assist)是一款由 Whole Tomato Software 公司开发的非常强大的 Visual Studio 插件
2025-04-15
libmodbus编译好的windows x86 版本的dll
2025-04-11
Astyle3.6.4 可执行文件
2025-03-29
boost::asio 库源码1.30.2
2025-03-27
C++11 引入的范围基 for 循环(Range-based for loop),测试代码
2025-03-27
基于OpenGL和SolidWorks的机械系统运动仿真原理及实现
2024-12-11
一个有10年工作经验的工程师对modbus协议总结 包括ModbusASCII 、ModbusRTU、ModbusTcp 报文
2024-07-04
qt5.7windows下开发环境搭建和一个例子
2024-06-28
《基于 VS2010 C++ 的中国象棋程序设计与实现》配套源码
2025-08-21
简单文档管理器软件v1.0
2025-07-06
【工业控制领域】倍福控制器WES7系统语言改为中文的详细步骤及注意事项:硬件配置与软件操作指南
2025-07-05
K-Lite Codec Pack 1885 Standard 是实用的编解码包
2025-06-20
使用QMediaPlayer开发音乐播放器
2025-06-10
使用QMediaPlayer开发音乐播放器源码
2025-06-10
一个功能强大的计算器,集表达式计算、线性代数工具、超大整数计算工具
2025-04-24
VC++写的音乐播放器源码
2025-04-23
mychess250422,由VS2010 +MFC 写的中国象棋程序源码 可实现人机对抗、悔棋、走棋音效
2025-04-23
opencv-2.4.10
2025-04-17
Modbus Poll 64位
2025-04-16
GeoGebra 是一款自由且跨平台的动态数学软件、适用于各级教育 它融合了几何、代数、微积分统计等多种功能
2025-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1