自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你

只分享实用知识干货,绝无半句废话。期待能切实帮到大家,恳请各位多多支持,你们的支持是我持续输出的最大动力。

  • 博客(369)
  • 资源 (19)
  • 收藏
  • 关注

原创 GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决

该磁盘空间检查报告显示/tmp目录被异常挂载为仅1MB的overflow分区,无法满足编译需求。解决方案是:1) 先卸载当前挂载 sudo umount /tmp;2) 重新挂载为4GB容量的内存文件系统 sudo mount -t tmpfs -o size=4G,mode=1777 tmpfs /tmp。这将使用内存作为临时文件存储空间,解决编译时空间不足的问题。

2026-04-09 17:32:00 53

原创 轻量高效的动态指针数组CPtrArray实现

摘要:CPtrArray是一个轻量级的C++动态指针数组类,用于高效管理任意类型指针的存储、访问和删除。采用动态扩容机制(默认步长1024),平衡了性能和内存使用。提供Append/Add、DeleteAt/RemoveAt、GetAt、SetAt等核心接口,支持下标运算符重载。特别优化了删除逻辑防止内存越界,析构时自动释放内存避免泄漏。该类设计简洁专注,适用于单线程环境下的指针集合管理,如对象指针批量操作,可直接复用或作为工具类参考。

2026-04-09 11:12:15 125

原创 malloc_trim函数的作用

malloc_trim是glibc提供的非标准函数,用于主动将进程堆顶部的空闲内存释放回操作系统,降低物理内存占用。其核心原理是通过sbrk(-size)收缩堆空间,但仅对主分配区有效,且只能释放堆顶连续空闲块。该函数适合长期运行的服务程序在释放大内存后主动收缩内存,但不宜频繁调用。注意它不解决内存泄漏问题,且只适用于Linux/glibc环境。典型用法是在释放大块内存后调用malloc_trim(0)最大程度回收内存。

2026-04-07 08:17:38 32

原创 基于 Qt 的轻量化工业组态软件设计与实现

本文设计并实现了一种基于Qt框架的轻量化工业组态软件,解决了传统组态软件体积庞大、部署复杂等问题。该软件采用模块化架构,集成可视化图形编辑、设备数据采集、脚本扩展等核心功能,具有跨平台运行、资源占用低、启动速度快等特点。通过关键技术优化,实现了高效稳定的数据采集、脚本控制和网络通信,可广泛应用于工业机器人HMI、小型PLC监控等轻量化场景。测试结果表明,该软件体积约30MB,运行内存占用60-80MB,启动时间1.2秒,满足工业轻量化监控需求。未来可扩展更多工业组件和协议支持,进一步提升应用价值。

2026-04-02 13:51:23 49

原创 分享一个安全的CString

基于 C++ 标准库std::string封装的轻量级字符串工具类,兼容常用字符串操作需求,1无需手动管理内存,安全稳定。类提供完整的构造、赋值、拼接、比较、截取、查找、格式化等功能,包含GetAt、[]运算符重载,支持读写访问;实现Left/Right/Mid截取、Trim去空格、大小写转换、Format格式化等实用接口。所有接口做了越界、空指针等安全校验,避免程序崩溃,整体简洁易用、鲁棒性强

2026-03-31 14:13:19 365

原创 四种内存转 CString 方法深度比较

本文对比了四种在Windows MFC开发中将char*缓冲区转换为CString的方法。方法1采用逐字节拼接,性能最差;方法2通过动态内存分配实现高效转换,但需手动管理内存;方法3使用栈数组,仅适用于255字节以内的短字符串;方法4采用智能指针,兼具高性能与自动内存管理,是现代开发的最佳选择。建议优先使用方法4,无C++11环境选用方法2,短字符串场景使用方法3,避免使用方法1。

2026-03-26 18:31:59 157

原创 Tcp客户端报错原因分析

摘要:日志分析显示TCP连接测试存在三类错误:"Bad file descriptor"(无效套接字或已关闭)、"Connection reset by peer"(服务器强制断开)和"Operation now in progress"(非阻塞连接状态被误判)。主要原因是套接字管理不当:未重新创建失效的套接字、错误处理非阻塞连接状态,以及多线程环境下缺乏有效性检查。建议修复措施包括:每次连接失败后重建套接字、正确处理非阻塞连接状态,并加强多线程环

2026-03-26 16:50:52 274

原创 c++ this 指针的用途

C++中的this指针是一个指向当前对象的隐藏指针,主要用于在成员函数中访问对象自身。它的核心用途包括:1)区分同名成员变量和局部变量;2)实现链式调用;3)获取对象地址;4)处理对象自身操作。this指针只在非静态成员函数中存在,静态函数没有this指针。简单记忆:this指向调用函数的当前对象,解决命名冲突用"this->",返回对象本身用"*this"。

2026-03-26 15:10:49 165

原创 std::string 和 std::string_view

std::string与std::string_view核心区别:string拥有内存、可修改但拷贝成本高;string_view只是视图、只读但零拷贝。string适用于存储和修改字符串,而string_view最适合函数传参、只读操作等场景。关键规则:函数参数优先用string_view,存储变量必须用string。string_view能显著提升性能(不分配内存、不拷贝),但需注意其不管理内存的特性,不能用于需要修改或长期保存字符串的场景。

2026-03-26 14:27:26 241

原创 两个线程对socket 进行读和写,需要加锁吗

我给你用讲清楚👇。

2026-03-25 20:43:02 422

原创 c++常见配置文件格式 JSON、INI、XML、YAML 它们如何解析

本文对比了四种常见配置文件格式(INI、JSON、XML、YAML)的特点和C++解析方法。INI最简单但功能有限;JSON通用性强,适合现代开发;XML结构严谨但冗余;YAML可读性最佳但依赖缩进。推荐选择:简单配置用INI,通用场景选JSON(最推荐),高可读性需求用YAML,遗留系统考虑XML。每种格式都提供了C++解析代码示例,帮助开发者快速实现配置读取功能。

2026-03-25 19:16:13 91

原创 现代 C++(C++11 及以后)的移动语义

对象马上就要被销毁(临时对象、函数返回值),没必要完整拷贝,直接拿走资源更快。- 移动:把原对象的资源直接“抢过来”,原对象变成空/无效状态,不复制内存。// 移动,不是拷贝。- STL 容器(vector/string/map 等)默认都支持移动。// 移动,快,a 变为空。- 右值:临时值,用完就丢(如 a + b 、 函数返回值 )- 靠 T&& 、移动构造/赋值、 std::move 实现。// 直接拿走 other 的指针/资源。- 函数返回大对象时,不再深拷贝,直接移动。

2026-03-24 19:18:37 472

原创 内存管理:堆和栈总结

这是编程里最基础也最核心的概念,特别是对于用 C++ 开发上位机和机器人程序时,搞清楚堆(Heap)和栈(Stack)的区别,能直接决定程序是否稳定、是否有内存泄漏。像快递箱,随便放哪里,用完得自己去扔掉(释放),不然留垃圾(内存泄漏),速度稍慢但空间大。- 栈 (Stack):自动管理。- 如果你在递归函数里定义大变量,或者创建超大的局部数组,程序会直接崩溃(Stack Overflow)。- 临时数组:如果大小已知且不大,用 std::vector (它内部是堆,但栈上管理这个容器对象)。

2026-03-24 10:55:10 221

原创 上位机软件架构设计-总结

本文基于C++语言设计了一套工业上位机软件架构,采用五层分层设计(前端组态展示层、核心业务层、协议适配层、数据存储层和扩展层),满足工业4.0对数据采集、实时监控和系统集成的需求。架构通过插件化协议适配、组态化配置和内存数据库优化,实现多协议兼容、高实时性和扩展性。关键技术包括异步I/O通信、线程池调度和事件驱动模型,解决了工业场景中的协议差异、性能瓶颈和网络异常等问题。该架构已在多种工业设备上验证,支持毫秒级数据采集和可靠传输,为智能制造提供了灵活高效的软件解决方案。

2026-03-24 10:00:06 411

原创 上位机软件架构设计

本文提出了一种基于C++的工业上位机软件分层架构设计,采用"前端组态展示层+核心业务层+协议适配层+数据存储层+扩展层"五层架构。前端基于Qt/MFC框架实现可视化组态配置,业务层通过变量管理、数据采集调度等模块实现核心功能,协议适配层采用插件化设计支持多种工业协议。架构通过异步I/O、内存数据库、事件驱动等技术优化实时性能,并支持脚本扩展和第三方系统对接。测试表明该架构能满足工业场景对实时性、可靠性和扩展性的需求,兼容主流工业设备和数据库系统。

2026-03-24 08:13:53 202

原创 Qt 开发机器人客户端程序

本文介绍了基于Qt框架开发工业机器人TCP客户端的关键技术与实现方法。程序采用模块化设计,通过QTcpSocket实现TCP通信,结合QTimer完成心跳保活和超时重连。重点解决了TCP粘包拆包处理、数据缓存管理、异常自动重连等核心问题,实现了稳定的长连接通信。程序采用魔数校验、功能码解析等机制适配机器人数据协议,并提供开关量、模拟量等数据接口。通过信号槽机制实现事件驱动的通信管理,具备跨平台兼容性。该方案已在实际项目中验证,能满足工业场景下机器人与上位机的实时数据交互需求。

2026-03-23 20:13:39 435

原创 什么是二级指针,用法举例

二级指针: int **pp → 指向一个 int* 类型的指针变量。// 二级指针:pp 存 p 的地址。// 一级指针:p 存 a 的地址。- 一级指针: int *p → 指向一个 int 变量。二级指针最常用的场景:在函数内部修改外面的指针变量。// p 已经被改掉了,不再指向 a。// 修改的是外面的指针 p 本身。// 三种方式都能拿到 a 的值。更实用的例子:修改一级指针。

2026-03-22 18:00:12 29

原创 Vibecoding 核心原则 + C++ 实战示例

Vibecoding是一种优化C++编程的风格,核心是通过现代C++特性减少冗余操作,提升代码效率和可读性。其关键原则包括:拒绝冗余(使用标准库替代手动操作)、精准控制(利用RAII和智能指针管理资源)、保持流畅(采用链式调用和范围for循环)以及确保性能(遵循零成本抽象)。实践示例展示了如何用范围for替代下标遍历、智能指针替代手动内存管理、范围库实现链式操作,以及精准文件操作替代逐字节处理。核心技巧是优先使用标准库、全面应用RAII、充分利用现代C++特性,避免低效的"游标式"编码。

2026-03-21 22:02:15 136

原创 volatile使用场景

告诉编译器:这个变量的值随时可能被外部改变,禁止优化,每次读写必须直接访问内存,绝不使用寄存器缓存。- 保证可见性:外部(硬件/中断/其他线程)修改后,主程序能立刻读到最新值。if (g_flag) { // 每次都读内存,不会死循环。- 禁止编译器优化:不把变量放进寄存器缓存,每次都从内存读/写。// 内存映射的硬件寄存器,必须 volatile。1. 硬件寄存器(GPIO/定时器/状态寄存器)// 主线程改 run,子线程能立刻看到。// 每次写都直接到硬件,不会被优化掉。3. 多线程共享标志位。

2026-03-21 19:08:35 191

原创 static  的作用域

在 C/C++ 里, static 的作用域完全看你把它用在什么地方,用法不一样,作用域和生命周期也完全不一样。3. 用在 C++ 类里面(成员变量 / 成员函数)- 函数内 static:作用域在函数,生命周期全局。- 类 static:作用域属于整个类,所有对象共享。- 全局/函数 static:作用域限制在当前文件。- 用途:防止命名冲突,做文件内部私有变量/函数。- 作用域:只在当前函数内部可见,外面不能访问。- 作用域:只在当前 .c 文件内部可见。- 作用域:属于整个类,不属于某个对象。

2026-03-21 18:57:38 247

原创 TCP 共享数据服务端设计 (CSHServer)

本文档详细描述了CSHServer类的设计实现,这是一个基于Linux平台的TCP共享数据服务端。系统采用多线程+事件驱动架构,支持YX/YC/字符串三种数据类型的读写和自动推送,最大支持32个客户端并发连接。核心功能包括客户端连接管理、心跳检测、异常处理等,通过互斥锁保证线程安全。文档详细阐述了类架构、数据结构、接口设计、线程同步机制及扩展性考虑,为开发维护人员提供了标准化参考。系统具有≤100ms的数据推送延迟和≤1ms的单包处理性能,适用于需要实时数据共享的应用场景。

2026-03-20 19:12:20 498

原创 TCP 共享数据服务端设计

本文档详细描述了CSHServer类的设计规范,这是一个基于Linux平台的TCP共享数据服务端实现。系统采用多线程+事件驱动架构,支持最大32个客户端并发连接,具备YX整型、YC浮点型和字符串(16个)三种共享数据类型的读写功能。核心设计包括:1)模块化线程分工(监听、数据发送、显示);2)线程安全机制(pthread_mutex_t互斥锁);3)异常处理(心跳检测、连接管理);4)可扩展性设计。系统满足数据推送延迟≤100ms、单包处理耗时≤1ms的性能要求,并通过静态常量定义确保数据结构隔离性。文档提

2026-03-20 12:23:51 46

原创 C++、C#常用语法对比

本文对比了C++和C#在基础语法和面向对象编程上的差异。在变量声明、条件语句和循环结构等基础语法上两者较为相似,但C#提供了更多语法糖如foreach和var。面向对象方面,C++支持多继承和手动内存管理,而C#仅支持单继承并提供自动垃圾回收。空值处理上C++需手动检查指针,C#则内置空安全运算符。异常处理和异步编程方面,C#的语法更为简洁。总体而言,C++给予开发者更多底层控制权,而C#通过简化语法提高了开发效率。

2026-03-16 08:08:38 168

原创 Linux 文件系统目录架构全解析

/usr :Unix 软件资源库,是系统最大的目录之一,包含子目录如 /usr/bin (应用程序)、 /usr/lib (应用库文件)、 /usr/local (用户自行安装的软件),承载了大部分用户级应用与资源。这种设计遵循 FHS(文件系统层次结构标准),让系统资源管理更清晰、协作更高效。- /var :可变数据目录,存放随系统运行不断变化的文件,如日志( /var/log )、锁文件( /var/lock )、临时缓存( /var/tmp ),是排查系统问题的关键日志来源。

2026-03-16 07:54:13 387

原创 状态机在串口接收数据解析中应用

本文介绍了状态机在串口数据解析中的应用。针对串口通信异步接收、易错位的特点,状态机模式将解析过程拆分为地址匹配、命令识别、长度确认、数据接收和校验验证等离散状态,通过有序流转确保解析准确性。以Modbus协议为例,状态机按字节匹配状态规则,实现不同命令的差异化处理,具有逻辑清晰、容错性强、适配异步等优势。实际应用中需注意边界处理,如超时重置和异常回退,保证解析稳定性。该模式是工业串口通信开发的可靠方案。

2026-03-15 21:45:09 402

原创 一套 C++/Qt 代码,Windows 工控机 + Linux 嵌入式/工控机 双平台运行经验总结

一套 C++/Qt 代码,Windows 工控机 + Linux 嵌入式/工控机 双平台运行经验总结。- 配置: ~/app/config/ 或 /etc/opt/app/- Linux 有 SIGINT/SIGTERM 、权限、守护进程。源码一套,编译两套,路径统一,区分平台,配置外置,日志规范。- Windows 无信号、无 chmod、无 root。同一套逻辑 ≠ 同一套编译、同一套路径、同一套行为。要做到:源码统一,配置分离,编译分离,部署分离。

2026-03-15 19:51:16 338

原创 RAII 是什么

std::unique_ptr / std::shared_ptr → 管理内存。- std::lock_guard / std::unique_lock → 管理锁。- 你不用手动 free/close/delete,编译器帮你保证安全释放。- std::string / std::vector → 管理内存。- C++ 中,局部对象离开作用域时,析构函数一定会被自动调用。// 异常、return、正常结束,都会释放。- 利用栈对象自动析构,保证资源一定释放。

2026-03-13 17:12:02 220

原创 C++ epoll 极简服务器代码

/ ET 边缘触发。// echo 回去。- select/poll:每次都要遍历所有 fd,O(n),并发高就崩。- 用来同时监听很多个 socket/文件描述符,谁就绪就处理谁。- epoll:内核主动告诉你哪些就绪,O(1),百万并发无压力。- 是普通 fd → read/write 处理数据。阻塞等待事件就绪,返回就绪列表,不用遍历全部。// 客户端发来数据。- 性能更高,Nginx/Redis 用它。// 1. 创建监听 socket。// 2. 创建 epoll。// 3. 等待事件。

2026-03-13 17:04:02 534

原创 松鼠语言将任意角度规化到-PI~PI

print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);原始角度:-9.42478,归一化后:-3.14159。

2026-03-12 07:25:05 365

原创 fmod的实践

fmod()函数用于计算两个浮点数相除的余数,是处理浮点数余数计算的重要工具。通过合理使用fmod(),可以在科学计算、工程应用和图形编程中实现对浮点数余数的准确处理。

2026-03-12 06:50:16 273

原创 char lpHead[8] = “FJROBOT\0“ 定义解读

摘要:本文分析了C语言中char lpHead[8]="FJROBOT\0"写法的效果与问题。虽然该写法能正确生成8字节数组(包含FJROBOT和终止符\0),但存在语义冗余和易误解问题:字符串字面量已自动补\0,手动添加的\0多余且易让开发者误以为需要两个\0。相比之下,推荐使用显式字符列表{...}或直接"FJROBOT"的简洁写法,更符合代码清晰、无歧义的工业级编码原则。结论:该写法能实现需求但不推荐,建议优先采用无歧义的显式字符列表或标准字符串赋值方式。

2026-03-10 09:00:23 230

原创 通用文件读写封装:告别重复造轮子,让 C 语言文件操作更高效

本文介绍了一套通用的文件读写封装函数,针对嵌入式开发、工业软件等场景中常见的文件操作需求进行优化。封装采用"极简接口+严格校验"原则,提供file_opt_write和file_opt_read两个核心函数,实现了参数校验、错误处理、资源释放等全流程管理。该方案具有复用性强、健壮性高、易于维护等特点,支持二进制数据读写,可处理结构体等复杂数据类型。文中还提供了完整的代码实现和测试示例,并建议可根据项目需求扩展文件锁、追加写等功能。这套80余行的封装代码能有效避免常见文件操作错误,提升开发

2026-03-06 19:37:27 417

原创 iotdb-datanode.service 服务的状态

iotdb-datanode.service 服务的状态为 inactive (dead),并且进程被强制终止( code=killed, signal=KILL )。查看 IoTDB 配置文件(如 iotdb-datanode.properties )中的内存设置(如 heap_size ),并根据服务器物理内存进行调整。- 加载状态:已加载,启用自启( enabled ),但厂商预设禁用( vendor preset: disabled )- 启动时间:2026-02-28 18:11:15。

2026-03-02 14:27:04 176

原创 从裸指针到 std::shared_ptr:C++11 智能指针的实践之路

C++11引入的std::shared_ptr智能指针解决了传统裸指针的内存管理痛点。相比手动new/delete方式,shared_ptr通过引用计数自动释放内存,有效防止内存泄漏和野指针问题。在异步编程场景中,配合weak_ptr可安全校验对象生命周期。使用时应包含<memory>头文件,避免直接操作裸指针,推荐使用std::make_shared创建对象。这种自动化内存管理方式显著提升了代码安全性和可维护性,成为C++11时代的重要实践。

2026-02-28 14:56:51 184

原创 strlen 不能用于空指针吗

摘要:strlen函数不能处理空指针,因为它会尝试读取受保护的内存地址0x0,导致程序崩溃或段错误。使用strlen前必须检查指针是否为nullptr,建议封装safe_strlen函数统一处理空指针情况。在构造函数等场景中,对C风格字符串操作前都应先判空,这个原则适用于所有str系列函数。正确处理空指针可以避免程序崩溃,提高代码健壮性。

2026-02-26 15:38:49 152

原创 valgrind工具实操

Valgrind是一款开源内存调试工具,通过动态二进制插桩技术检测内存泄漏、越界访问等错误。它包含Memcheck等核心组件,支持Linux/x86平台,运行时性能损耗显著但精准定位缺陷。典型用法需编译时开启调试模式,通过参数检测内存问题,如未初始化变量等。安装简单(apt install valgrind),使用命令如valgrind --leak-check=full分析程序。该工具2006年获Google-O'Reilly开源奖,名称源自北欧神话。

2026-02-26 15:28:25 450

原创 万物皆文件:Linux 抽象哲学的开发之美

对于开发者而言,这一抽象带来的效率提升不言而喻。无论是读取键盘输入的字符,向显示器输出图像,还是通过网卡收发网络数据包,亦或是操作工业场景中的激光测距传感器、机器人控制模块,开发者都无需学习各自专属的驱动指令,只需调用open、read、write、close这一套基础API,就能完成所有读写交互。这一理念的精髓,并非将键盘、网卡、传感器等硬件设备强行转化为磁盘上的普通文件,而是通过一套统一的文件操作接口,为所有设备和系统资源构建起标准化的交互桥梁,彻底重塑了开发者与硬件、资源的沟通方式。

2026-02-13 21:28:25 414

原创 如果你写的C++程序,在客户现场电脑(Ubuntu)频繁崩溃,如何排查原因

Ubuntu(Linux)现场C++程序频繁崩溃,直接照做就能排查的极简实战流程,不废话、全是现场能用的步骤,按顺序执行即可。直接运行,越界、use-after-free、double free 都会直接报位置。1. SIGSEGV:空指针、野指针、数组越界、use-after-free。3. 依赖库版本(Qt、protobuf、opencv、串口库等)6. 代码检查:指针、智能指针、锁、数组边界、释放后置空。4. 权限:串口、USB、网卡、配置文件读写权限不足。5. 核对Ubuntu环境、依赖库、权限。

2026-02-09 14:06:49 333

原创 Qt 编写 TcpClient 程序 详细步骤

本文详细介绍了在Qt框架下开发TCP客户端程序的完整流程。首先说明了开发环境要求,包括Qt版本和网络模块配置。然后分步骤讲解了项目创建、界面设计(包含连接按钮、发送按钮、输入框和消息显示区)的实现方法。重点阐述了核心功能代码:通过QTcpSocket类建立连接、使用readyRead信号实现数据接收、调用write方法发送数据。文章还提供了连接状态反馈、中文编码处理等实用技巧,为Qt网络编程初学者提供了完整的TCP客户端开发指导。

2026-02-08 13:34:34 424

原创 qt 中progressBar控件,如何设置颜色,如何将10% 文字显示在进度条中心

摘要:在Qt中自定义进度条样式可通过QSS实现。主要设置内容包括:1)使用QProgressBar选择器设置整体样式(背景色、边框、圆角);2)用QProgressBar::chunk设置填充部分颜色;3)通过text-align属性确保进度百分比文字居中显示。示例代码展示了两种不同风格的进度条设置,包括调整边框、圆角、背景色和填充色等参数,并解决了某些系统下的分段显示问题。

2026-02-06 20:20:17 297

opencv-2.4.10

OpenCV 2.4.10 是经典计算机视觉库版本。它支持多种编程语言,功能丰富,有图像滤波、特征检测等基础操作,也有机器学习算法。优化了性能,提高了处理速度,在学术研究和工业项目中广泛应用,为计算机视觉开发提供有力支持。

2025-04-17

Modbus Poll 64位

Modbus Poll 是一款用于测试和诊断 Modbus 设备的高效调试工具,在工业通信领域应用广泛。 基本信息:它能模拟 Modbus 主设备通信,支持 Modbus RTU、Modbus TCP、Modbus ASCII 等多种通信模式,以及多种数据类型。可通过连续请求获取从设备的传感器状态、执行器状态等数据,帮助工程师快速诊断网络连接问题,验证从设备功能。 功能特点:其功能丰富,能实时显示数据,用户可直观查看从设备状态。支持管理多设备,可同时监视多个 Modbus 从设备或数据区域。还允许创建自定义报文,在 “测试中心” 编写测试字符串来测试从设备,并提供日志记录功能,方便记录和分析通信数据。此外,它具备 OLE 自动化功能,能与 Excel 等软件交互 ,如利用 VBA 宏语言实现数据在 Excel 中的编辑和传输。 使用方法:使用时,先建立连接,根据设备协议选择连接类型,如 Modbus TCP/IP,设置好 IP 地址、端口号等参数。接着打开 “读 / 写定义” 对话框(按 F8 或通过菜单操作),配置从站 ID、功能码、地址等信息来定义要监视的数据。数据类型可按需修改,还能对寄存器描述、窗口配置、文字字体大小等进行调整。同时,支持发送写指令,双击数据位置即可编辑写入数值。

2025-04-16

GeoGebra 是一款自由且跨平台的动态数学软件、适用于各级教育 它融合了几何、代数、微积分统计等多种功能

GeoGebra 是一款自由且跨平台的动态数学软件,由奥地利数学家 Markus Hohenwarter 设计,适用于各级教育。它融合了几何、代数、微积分、统计等多种功能,用户既能绘制各类几何图形,又能输入方程和点坐标进行代数运算。 软件特色显著,不仅免费,还功能强大、简单易用且交互性强,支持多种语言。它拥有几何、代数、工作表等多个窗口,各窗口数据动态关联。在几何窗口可轻松作图,代数窗口能处理表达式,工作表窗口方便数据引用 。 GeoGebra 在全球备受欢迎,已有数百万人使用。为此还成立了专门机构,全球有 159 个 GeoGebra 研究院,中国于 2011 年成立了 GeoGebra 研究院,推动其在教学中的应用,并且它还荣获多个欧美教育软件大奖

2025-04-16

Astyle 3.6.5 源码

Astyle 3.6.5 是一款用于 C、C++、Java 等编程语言的代码格式化工具。其源码结构清晰,主要包含多个源文件和头文件。 核心源文件如 astyle_main.cpp 负责程序的主要逻辑,处理命令行参数并调用格式化函数。ASTYLE.cpp 中实现了具体的代码格式化算法,包括缩进处理、空格添加、换行等操作。Options.cpp 用于处理用户设置的各种格式化选项,使工具具有高度可配置性。 源码遵循面向对象和模块化设计原则,易于理解和扩展。通过对代码进行词法分析和语法分析,Astyle 能够准确识别代码结构,按照指定规则进行格式化。它还采用了一些优化策略,提高格式化效率。总体而言,Astyle 3.6.5 源码是学习代码格式化技术和 C++ 编程的良好范例。

2025-04-16

Azure Kinect SDK 是微软为 Azure Kinect DK 硬件设备量身打造的软件开发工具包,可助力开发者高效利用该设备的各项功能进行应用程序开发

主要功能 相机数据访问:能够获取彩色相机、深度相机以及红外相机的数据,便于开发者开展图像和视频处理工作。 人体骨骼跟踪:可以精准检测和跟踪人体的骨骼关节点,适用于动作捕捉、健身应用等领域。 麦克风阵列支持:支持设备的麦克风阵列,可实现音频录制、语音识别等功能。 校准和同步:提供校准工具和方法,能保证不同相机之间以及相机与麦克风之间的同步。 应用场景 游戏开发:借助人体骨骼跟踪功能,为游戏增添更自然、更具沉浸感的交互体验。 机器人导航:利用深度相机数据,帮助机器人感知周围环境,实现自主导航。 智能安防:通过人体检测和跟踪,实现对特定区域的人员监控和异常行为预警。 开发流程 安装 SDK:从微软官方网站下载并安装 Azure Kinect SDK。 配置开发环境:依据所使用的开发语言(如 C++、Python 等),配置相应的开发环境。 编写代码:使用 SDK 提供的 API 访问设备数据,实现所需功能。 测试和调试:将开发好的应用程序部署到实际设备上进行测试和调试。

2025-04-16

git 2.32.0-64位安装文件

Git 是一款免费、开源的分布式版本控制系统,由林纳斯・托瓦兹为管理 Linux 内核开发而创建。 其优势显著。分布式特性让每个开发者本地都有完整项目仓库,离线也能工作,还可在本地管理版本。强大的分支管理功能使开发者能轻松创建、切换和合并分支,方便并行开发新功能或修复问题。 Git 应用广泛,在软件开发领域,团队成员用它管理代码,高效协作;在开源项目里,全球开发者借此共同改进项目。 操作上,基本命令简洁实用。git clone可复制远程仓库到本地;git add将文件添加到暂存区;git commit把暂存区文件提交到本地仓库;git push推送本地更新到远程仓库;git pull拉取远程更新到本地。 总之,Git 凭借高效、灵活、强大的版本控制能力,成为开发者和团队进行项目管理的得力工具。

2025-04-16

WinSCP 是 Windows 环境下出色的开源图形化 SFTP 客户端,也支持 SCP 协议

它能在本地与远程计算机间安全地复制文件,可连接 Linux 等多种系统,打破系统间文件传输壁垒。其界面直观,用户通过简单拖拽就能完成文件上传、下载及管理,无需记忆复杂命令。同时,它支持多种文件操作,如重命名、改变属性等。WinSCP 还具备多种加密方式,遵循 GPL 许可证发布,保证了文件传输的安全性和软件的可靠性。另外,它有 Windows Explorer 和 Norton Commander 两种界面可选,还支持批处理脚本、命令行方式及多种目录同步方式,并且可与 Putty 集成,为用户提供了便捷、高效的文件传输和管理解决方案。

2025-04-16

std for-each学习笔记

std::for_each 是 C++ 标准库 <algorithm> 头文件中提供的一个算法,它允许你对一个序列(如数组、std::vector、std::list 等)中的每个元素执行指定的操作。下面详细介绍它的用法。

2025-04-16

范围基 for 循环学习笔记

C++11 引入的范围基 for 循环(Range-based for loop)是一种简洁而强大的语法,用于遍历容器(如数组、向量、列表、集合等)。它不仅提高了代码的可读性和可维护性,还减少了常见的错误。本文将深入探讨范围基 for 循环的语法、用法、优缺点、适用场景以及一些实际应用示例。

2025-04-16

Restart on Crash 是一款免费的 Windows 系统进程监控软件

功能特点 1.自动重启:持续监控用户指定的应用程序和文件夹,当监控的程序崩溃或挂起时,能自动将其重启,确保程序始终运行。 2.可配置性高:允许用户将无限数量的应用程序和文件夹添加到监控队列,还能单独启用 / 禁用它们,并编辑用于重启应用程序的命令行。同时,可设定不同的监控模式,如实时监控或定时监控。 3.操作便捷:界面简洁明了,通过选择特定的 EXE 文件来监控应用程序,也可从当前正在运行的进程列表中选择添加监控项目。 4.日志记录:会生成日志文件,记录所有可能的错误,包括监控程序的启动时间、崩溃时间、无响应时间等,方便用户查看和排查问题。 5.资源占用少:运行时不会消耗太多系统资源,对系统性能影响较小。 6.灵活配置:具有多种配置选项,如设置宽限期,即检测到应用程序崩溃或无响应后,等待多长时间再执行重启操作;可勾选在 Windows 启动时自动运行、启动时最小化到系统托盘、关闭时最小化到系统托盘、启动时检查更新等选项。

2025-04-16

适用于VS2022的 VA Assist(全称 Visual Assist)是一款由 Whole Tomato Software 公司开发的非常强大的 Visual Studio 插件

VA Assist(全称 Visual Assist)是一款由 Whole Tomato Software 公司开发的非常强大的 Visual Studio 插件,在编程开发中深受程序员喜爱,以下是它的主要特点和功能:代码自动完成与提示、代码导航、重构代码、错误检测与修正、代码生成、代码格式化、智能搜索

2025-04-15

libmodbus编译好的windows x86 版本的dll

Libmodbus 是一个用于 Modbus 协议的开源库,提供了丰富的函数接口,可方便实现设备间的 Modbus 通信,支持多种平台,能轻松移植到不同系统中,有助于开发人员快速构建 Modbus 相关应用程序。我已编译好windows x86 版本的dll

2025-04-11

Astyle3.6.4 可执行文件

AStyle 3.6.4 是一款广泛使用的开源代码格式化工具,专注 C、C++、C# 和 Java 等编程语言。它不仅能大幅提升代码可读性,助力团队开发协作,而且配置灵活,使用方便。凭借快速稳定特性,深受开发者喜爱,能有效提升代码整理效率 。

2025-03-29

squirrel语言源码

Squirrel是一种较新的程序设计语言,它从著名的LUA语言继承了很多特性,适用的范围也与LUA语言相似。

2025-03-27

boost::asio 库源码1.30.2

asio 是boost库中优秀的网络库。asio是一个异步的io库,支持以同步或异步的方式处理事件,也可以用于基于tcp或udp的网络通信。 (1)可移植到windows(完成端口实现)、linux(epoll实现)、FreeBSD、UNIX(kqueue实现)。 (2)可扩展性。 (3)效率很高。 (4)易使用,类 Socket API 编程模型。 支持同步、异步通信方式。

2025-03-27

C++11 引入的范围基 for 循环(Range-based for loop),测试代码

C++11 引入的范围基 for 循环(Range-based for loop)是一种简洁而强大的语法,用于遍历容器(如数组、向量、列表、集合等)。它不仅提高了代码的可读性和可维护性,还减少了常见的错误,本代码将深入探讨范围基 for 循环的语法、用法、优缺点、适用场景以及一些实际应用示例

2025-03-27

基于OpenGL和SolidWorks的机械系统运动仿真原理及实现

为了规划机械系统的运动轨迹, 优化设计 参数, 以及开发上位机监控界面, 研究了一个运动仿 真系统. 三维模型基于三维 CA D 软件 SolidWorks 建立, 用 OpenGL 作为三维图形的接口, 运动仿真 软件以 Window s 操作系统为开发平台, 采用 Visual C+ + 的 MFC 为开发环境. 详细讨论了实现运 动仿真的一些关键技术, 并开发了仿真软件. 仿真结 果证明了这种方法的可行性, 对其它动态过程的三 维仿真也有一定的意义

2024-12-11

一个有10年工作经验的工程师对modbus协议总结 包括ModbusASCII 、ModbusRTU、ModbusTcp 报文

ModbusASCII 、ModbusRTU、ModbusTcp 协议,包括存储区分类、存储区代号、存储区范围、功能码、协议分类、报文格式、调试软件等多方面的总结。

2024-07-04

qt5.7windows下开发环境搭建和一个例子

我用的是Qt5.7,因此本次总结是基于Qt5.7.0的。我在自学的时候使用的IDE是Qt自带的Qt creator,上手简单,配置属于自己顺手的设置很方便,此外,如果进行Linux下的Qt开发也不用熟悉其他IDE了,还有一个好处就是它完全可以作为一个可以进行交叉编译开发的IDE,再加上它对vim的支持,对于我这种Windows和Linux等多种环境下开发的人来说,它不仅是开发QT的IDE,进行需要交叉编译的项目时也可以拿来用的

2024-06-28

优傲机器人(Universal Robot)使用笔记

优傲机器人(Universal Robot)使用笔记,包括坐标系,DH参数,UR系列DH参数

2024-06-28

毕业设计课题-中国象棋(人机对战)

本中国象棋源码基于 C++ 语言开发,适配 Windows 平台(兼容 ANSI 编码环境),以面向对象思想构建核心逻辑,兼具易读性与可扩展性。源码核心分为棋盘管理、规则校验、走棋逻辑三大模块,总代码量约 3000 行,轻量化且功能完整。 棋盘模块通过二维数组模拟 9×10 的象棋棋盘,以枚举类型定义将、帅、车、马等 16 类棋子,用字符或数字标识棋子所属阵营(红 / 黑)与位置坐标,支持棋盘状态的实时存储与回显。规则校验模块封装了各棋子的走法逻辑:如马走 “日” 防拐脚、象走 “田” 限河界、炮隔子吃子等,通过坐标偏移计算与合法性判断,杜绝违规走棋;同时内置将帅不照面、棋子不可越子(特定棋子除外)等核心规则校验函数,确保走棋符合中国象棋国标规范。 走棋逻辑模块实现了人机对弈与双人对战双模式:人机模式内置简易估值算法,可基于当前棋盘状态生成最优走棋策略;双人模式则通过输入输出函数实现坐标交互,支持悔棋、撤销、重新开局等扩展功能。源码还包含文件读写模块,可将棋局状态保存为文本文件,或从指定偏移量读取历史棋局数据(适配 ANSI 编码的字符处理,避免乱码与内存越界)。 整体代码结构清晰,关键函数均附带注释,核心算法无冗余逻辑,既适合初学者学习棋类游戏开发思路,也可通过扩展 AI 算法、图形化界面(如 MFC)升级为可视化象棋程序。

2026-02-27

KUKA C4机器人焊接工作站培训教材

KUKA C4机器人焊接工作站培训教材

2026-01-26

Qt中自定义 QmyBattery 电池组件开发代码

Qt中自定义 QmyBattery 电池组件开发代码,并测试电量0,10%,60%,100% 的显示效果

2026-01-22

Modbus 学习心得,包括注意事项

工业总线协议(Modbus RTU/TCP、PROFINET、EtherCAT)的帧结构、通信速率与实时性对比,学习心得

2025-11-10

《基于 VS2010 C++ 的中国象棋程序设计与实现》配套源码

基于 VS2010 开发环境,运用 C++ 语言设计并实现中国象棋程序的过程。首先介绍了中国象棋程序开发的背景和意义,接着对程序的需求进行分析,确定了系统的功能和性能要求。然后详细描述了程序的总体设计,包括模块划分、数据结构设计等。在实现部分,对各个模块的具体实现代码进行了分析和讲解。最后对程序进行了测试和优化,验证了程序的正确性和稳定性。 源码。

2025-08-21

基于 VS2010 C++ 的中国象棋程序设计与实现-bin

基于 VS2010 C++ 的中国象棋程序设计与实现- 编译完的程序

2025-07-08

简单文档管理器软件v1.0

本文详细阐述了一个基于 VS2010 平台,使用 C++ 语言开发的简单文档管理器的设计与实现过程。该文档管理器具备文档的添加、编辑、删除、查找、分类等基本功能,通过 MFC(Microsoft Foundation Classes)库构建用户界面,利用 ADO(ActiveX Data Objects)进行数据库操作,实现了文档信息的有效管理。文章从系统的需求分析、总体设计、详细设计到最终的实现与测试,逐步展开论述,旨在为开发类似的文档管理系统提供参考。

2025-07-06

win7取消待机的设置方法

win7取消待机的设置方法

2025-07-05

【工业控制领域】倍福控制器WES7系统语言改为中文的详细步骤及注意事项:硬件配置与软件操作指南

内容概要:本文档详细介绍了将倍福控制器的WES7系统语言更改为中文的具体步骤。首先描述了所需的软硬件配置,包括特定型号的硬件设备(C6920-0030)和软件(Beckhoff IPC-FeatureManager)。接着按顺序讲解了操作流程:解压语言包至指定目录、利用Beckhoff IPC-FeatureManager.exe选择并安装语言包、重启系统使更改生效。对于可能出现的乱码问题,提供了通过控制面板调整区域和语言设置的解决方案。此外,针对特定版本(C9900-I526 v3.82)可能存在语言未成功切换的情况,额外给出了调整控制面板语言设置的方法。; 适合人群:熟悉倍福控制器基本操作的技术人员或工程师。; 使用场景及目标:①需要将倍福控制器的操作界面语言由英文改为中文;②解决因语言转换导致的乱码问题。; 其他说明:文档提供了官方邮箱(support@beckhoff.com.cn)作为问题反馈渠道,并强调内容可能随时间更新,以适应不同版本的需求。

2025-07-05

Windows 系统进程监控软件

Windows 系统进程监控软件,能守护进程的奔溃后重启

2025-06-27

K-Lite Codec Pack 1885 Standard 是实用的编解码包

K-Lite Codec Pack 1885 Standard 是实用的编解码包,含多种音频、视频编解码器及工具。适配 Windows 系统,可扩展播放器对 AVI、MKV、MP4 等常见格式的解码能力,还自带 Media Player Classic。安装可定制,能检测删除旧编解码,支持生成视频缩略图,助 Windows Media Player 等识别音视频格式,播放无忧 。

2025-06-20

使用QMediaPlayer开发音乐播放器

1.本地音乐播放器 核心播放功能 支持常见音频格式本地播放MP3、WAV、FLAC 等 2.播放控制:播放 / 暂停 / 停止 / 上一曲 / 下一曲 3.音量调节与静音功能 4.播放进度显示与进度条拖动控制 5.播放列表管理 支持批量添加本地音乐文件,并保存 6.自动记忆上次播放列表与播放位置 7.播放模式切换:顺序播放 / 单曲循环 / 随机播放 8.用户界面优化 响应式布局设计,支持窗口缩放 9.系统托盘集成,支持后台播放控制

2025-06-10

使用QMediaPlayer开发音乐播放器源码

1.本地音乐播放器 核心播放功能 支持常见音频格式本地播放MP3、WAV、FLAC 等 2.播放控制:播放 / 暂停 / 停止 / 上一曲 / 下一曲 3.音量调节与静音功能 4.播放进度显示与进度条拖动控制 5.播放列表管理 支持批量添加本地音乐文件,并保存 6.自动记忆上次播放列表与播放位置 7.播放模式切换:顺序播放 / 单曲循环 / 随机播放 8.用户界面优化 响应式布局设计,支持窗口缩放 9.系统托盘集成,支持后台播放控制

2025-06-10

CString类源码(丰富接口、大小写转换、比较、赋值、格式化)、测试用例

CString类源码(丰富接口、大小写转换、比较、赋值、格式化)、测试用例

2025-05-15

一个功能强大的计算器,集表达式计算、线性代数工具、超大整数计算工具

集表达式计算:含近30个常用函数(三角函数,反三角,双曲函数等),三个常数,临时存储器,历史记录,精度显示; 线性代数工具:支持矩阵的赋值,基本运算,行列式值,秩,转置矩阵,伴随矩阵,阶梯矩阵,逆矩阵(包含广义),特征值(包括复数), 特征向量,特征多项式,绝对值最大的特征值及对应的特征向量,判断是否为正交矩阵,解齐次线性方程组,解非齐次线性方程组,QR分解; 超大整数计算工具:基本四则运算,开方,乘方,阶乘,大数比较,不同显示模式; 还有多项式求根

2025-04-24

VC++写的音乐播放器源码

这是一套由 VC++ 精心编写而成的音乐播放器源码。它功能丰富且强大,能够完美支持mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm 多种主流音频格式。播放器具备播放、暂停、停止等基础操作功能,搭配进度条,让你能精准掌握歌曲播放进度。同时,它还能绘制波形图,带来更直观的音乐可视化体验。 在歌曲管理方面,它拥有歌曲列表管理功能,你可以轻松对播放列表进行编辑。支持多种播放模式,包括顺序播放、随机播放以及单曲循环,满足不同场景下的个性化听歌需求。此外,它还具备迷你模式,方便你在不占用过多屏幕空间的情况下持续享受音乐。并且,内置的歌曲查找功能,能让你快速定位到想听的歌曲。

2025-04-23

mychess250422,由VS2010 +MFC 写的中国象棋程序源码 可实现人机对抗、悔棋、走棋音效

mychess250422 是一款基于 VS2010 + MFC 开发的中国象棋程序源码,具备完整的人机对战功能,支持悔棋操作与走棋音效反馈,界面简洁,逻辑清晰,适合学习 MFC 框架开发或象棋算法设计的开发者参考。

2025-04-23

VBA拆分excel表格脚本

VBA拆分excel表格脚本。 该脚本可将excel表格中员工信息,按照各自的部门拆分,生成不同的部门.xls文件,极大提高办公效率

2025-04-23

基于qt写的音乐播放器,实现列表保存读取、添加、删除、进度条显示、音量调节

基于qt写的音乐播放器,实现列表保存读取、添加、删除、进度条显示、音量调节

2025-04-22

hellopencv (vs2010+opencv测试程序源码)

OpenCV2.4.10+VS2010写的测试程序。验证opencv环境搭建,并显示一张图片。

2025-04-17

空空如也

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

TA关注的人

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