- 博客(113)
- 收藏
- 关注
原创 十、延迟发布的介绍
延迟发布是EMQX等主流MQTT Broker提供的一项扩展功能。它允许你在发布消息时,告诉Broker:“这条消息不要现在发,请在一段时间后再发给订阅者。它的工作原理非常巧妙,通过一个特殊的主题前缀来“标记”一条需要延迟的消息,而不是引入新的报文类型。“延迟发布”是Broker的扩展功能,通过特殊主题$delayed/{间隔}/{主题}实现,让普通消息可以定时发送。“遗嘱延迟”是MQTT 5.0标准特性,通过CONNECT报文中的设置,让遗嘱消息可以推迟发布,防止因网络抖动误报。。
2026-04-14 13:43:42
427
原创 九、MQTT 遗嘱消息(Will Message)详解
特性描述设置时机客户端连接时(CONNECT 报文)触发时机客户端异常断开(未发 DISCONNECT)包含内容主题、QoS、保留标志、负载主要作用状态监控、故障通知、资源清理关键注意事项可靠性、与保留消息配合、避免误报MQTT 5.0 增强遗嘱延迟间隔,避免网络闪断误触发遗嘱消息是 MQTT 实现设备状态感知的重要手段,与保留消息、持久会话等特性结合,可以构建出健壮的物联网设备管理方案。在实际应用中,合理设置遗嘱消息的 QoS 和延迟,能有效提升系统的可靠性和用户体验。
2026-04-14 13:43:26
351
原创 八、MQTT的消息过期间隔介绍
消息过期间隔是MQTT 5.0引入的一个新特性,它允许发布者为每条消息设置一个“生存时间”。如果消息在 Broker(服务器)上等待转发的时间超过了这个设定的间隔,Broker 就会将它删除,不再投递给任何订阅者。这就像给生鲜商品贴上了“保质期”标签,过了保质期,商品就会被下架,不会再送到消费者手中。默认情况下,消息不会过期,这意味着它会一直在Broker上等待(直到被成功投递或因其他策略被清理)。
2026-04-13 13:51:42
328
原创 七、MQTT的保留消息的使用
普通消息在 Broker 转发给当前订阅者后就丢弃了,后续订阅者无法收到历史消息。而保留消息则不同:发布者在发布消息时,将RETAIN标志设置为 1。Broker 收到后,不仅会转发给当前订阅者,还会持久化存储这条消息(针对该主题)。此后,任何新订阅该主题的客户端,Broker 会立即将这条保留消息推送给它。每个主题只能保留一条消息(最新的保留消息会覆盖旧的)。保留消息是 MQTT 提供的一种轻量级的“状态缓存”机制,让新加入的客户端能快速获取主题的当前值,非常适合物联网中状态同步和配置分发等场景。
2026-04-13 13:49:19
482
原创 六、MQTT 会话详解
MQTT 会话是指从客户端连接到 Broker 开始,到连接断开结束的交互周期。但更重要的是,MQTT 支持持久会话(Persistent Session):当客户端断开连接时,Broker 会为其保留一定的状态信息,以便客户端下次重新连接时能够恢复会话,继续接收离线期间错过的消息。会话由客户端标识符(Client Identifier,Client ID)唯一标识。同一个 Client ID 的多次连接属于同一个会话(如果 Broker 决定保留状态)。
2026-03-04 22:07:08
526
原创 MQTT的系统主题
在MQTT中,是Broker(服务器)预留的、以$SYS/开头的特殊主题。它们不像普通主题那样用于设备间的数据交换,而是。你可以把它理解为MQTT服务器的“管理控制台”或“状态仪表盘”。
2026-03-04 22:06:38
216
原创 MQTT 主题(Topic)详解
MQTT 主题是构建灵活、可扩展物联网消息系统的基石。通过合理的层级划分和通配符订阅,你可以轻松实现一对多、多对多的通信模式。在设计主题时,务必考虑未来的扩展性、可读性以及与 QoS 的配合,这样才能充分发挥 MQTT 协议的优势。
2026-03-03 17:30:21
554
原创 三、QoS的工作原理
可以把QoS的工作原理看作是一个。发送方(Publisher或Broker)和接收方(Broker或Subscriber)各自维护着一个关于“当前消息”的状态,通过报文的交换来驱动状态的变迁,最终达成消息传递的共识。
2026-03-03 17:30:04
311
原创 二、MQTT协议的控制报文介绍
MQTT 控制报文设计简洁而完备,使得协议在低带宽、高延迟、设备资源受限的物联网环境中依然高效可靠。理解这些报文是开发 MQTT 客户端、调试通信问题以及优化消息流程的关键。如果你需要针对某个特定报文的细节(如编码格式),可以参考 MQTT 规范文档或具体库的实现。
2026-03-01 20:48:28
1129
原创 一、MQTT 简介
MQTT是一种轻量级物联网通信协议,采用发布/订阅模式,支持低带宽环境下的可靠数据传输。其核心特点包括:2字节固定头部、三种QoS等级、基于TCP的双向通信和心跳机制。MQTT网络由客户端(发布者/订阅者)和代理服务器组成,通过主题实现消息路由,支持通配符订阅。广泛应用于智能家居、车联网等领域,相比HTTP更轻量,比CoAP更可靠,已成为物联网标准协议之一。
2026-03-01 20:48:06
993
原创 Ajax介绍
(Asynchronous JavaScript and XML)是一项的核心Web技术。它是现代单页应用(SPA)和动态网页的基石。简单来说,Ajax让网页能从后台“悄悄”地获取新数据,实现,从而带来更流畅、更接近桌面应用的用户体验。
2026-02-26 23:29:48
497
原创 npm : 无法加载文件 D:\softer\node\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,
它允许你运行自己编写的本地脚本,而对于从网上下载的脚本,则要求必须有数字签名才能运行,在安全性和便利性之间取得了平衡。,搜索“PowerShell”,在搜索结果中右键单击“Windows PowerShell”,选择。这样就能正确输出当前的执行策略了。如果你需要在 CMD 环境下执行这个命令,可以命令前加上。要解决此问题,你有几种选择,可以从以下方法中任选一种。策略,允许脚本运行,且不会影响系统全局设置。完成后,你就可以关闭这个窗口了。这是修改全局策略的必要步骤。,说明当前禁止运行脚本。
2026-02-26 23:28:44
572
原创 Vue生命周期
created和 mounted是最常用的两个钩子,分别用于数据初始化和DOM操作。是进行资源清理的黄金位置,务必在此处理定时器、事件监听等,防止内存泄漏。在 updated钩子中谨慎操作数据,以免导致无限更新循环。Vue 3的Composition API提供了对应的生命周期函数,如onMountedonUpdated等,功能相同但使用方式更灵活。
2026-02-23 22:35:40
592
原创 蓝牙AT指令部分命令简析
主设备用于扫描和连接从设备(如手机连接蓝牙模块);:部分指令(如AT+INQ)返回多行数据,需设计超时机制和解析逻辑。或具体错误码,应在代码中枚举常见错误(如连接超时、内存满等)。:设置或查询模块与MCU之间的串口参数(波特率、数据位等)。:配对后通常需用AT+LINK建立连接,部分模块自动完成。:连接成功后,模块串口数据将透传给对端设备,实现无线串口。:名称长度通常有限制(如20字符),需参考模块手册。:设置或查询蓝牙设备名称(显示给其他设备)。:主设备(Master),主动连接其他设备。
2026-02-23 22:35:10
791
原创 web前端JS—基本语法
一、引入方式1、内部脚本:将代码定义在HTML页面里面2、外部脚本:额外定义一个.js文件,引入到HTML里面二、基本语法。
2026-02-21 20:10:11
1819
原创 vue简述
Vue.js是一款渐进式JavaScript框架,专注于构建用户界面。其核心特性包括:响应式数据绑定实现自动视图更新;组件化开发支持构建可复用UI;虚拟DOM技术优化渲染性能;丰富的指令系统(如v-model、v-if等)简化DOM操作。Vue生态系统包含路由(Vue Router)、状态管理(Pinia/Vuex)等工具,支持从简单页面到复杂单页应用的开发。主要优势在于易上手、高性能和活跃的社区支持,使其成为现代前端开发的流行选择。
2026-02-21 20:09:36
1060
原创 JS—对象
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。和。Array:用于处理有序数据集合,提供丰富的操作方法。String:用于处理文本数据,提供一系列字符串操作方法。JSON:用于在JavaScript对象和JSON字符串之间转换。BOM:提供与浏览器窗口交互的接口,核心是window对象。DOM:提供访问和操作HTML文档的接口,通过选择元素并操作其属性、样式、内容和事件来实现动态页面。
2026-02-20 09:59:24
761
原创 硬件入门之色环电阻的读数
如图,若有五环,则前面两位为有效值,第三位为倍速,第四位为误差,第五位表示材料;43*10^-2=0.43Ω误差为5%;通常有四环、五环和六环电阻,其中四环和五环最为常见。五环电阻的前三个环代表有效数字,第四个环代表倍率,第五个环代表精度。如图为五环,则前三个环代表有效数字,第四个环代表倍率,第五个环代表精度。四环电阻的前两个环代表有效数字,第三个环代表倍率,第四个环代表精度。六环电阻的前五个环与五环电阻相同,第六个环代表温度系数(较少使用)。若是四环,则前面两位为有效值,第三位为倍速,第四位为误差。
2025-11-27 06:12:16
2101
原创 C#窗体应用程序连接数据库
在 C# 窗体应用程序中连接数据库,通常使用 ADO.NET 技术。以下是一个完整的步骤和代码示例,展示如何连接到 SQL Server 数据库并在窗体中显示数据。通过以上步骤,你可以在 C# 窗体应用程序中成功连接和操作数据库。假设你已经有一个 SQL Server 数据库,如果没有,可以先创建一个简单的数据库和表。TextBox 和其他控件(可选):用于输入和更新数据。:确保连接字符串正确,特别是服务器名称和身份验证方式。双击窗体上的按钮,生成点击事件,并在事件中调用。Button:用于加载数据。
2025-04-01 21:03:21
843
原创 FreeRTOS 知识点总结(二):同步机制与应用场景
FreeRTOS 提供了丰富的同步机制,包括信号量、互斥量、事件组和队列等,这些机制能够有效解决多任务环境中的同步和通信问题。同时,FreeRTOS 的轻量级和高实时性使其适用于智能家居、工业自动化、医疗设备和物联网等多种应用场景。
2025-04-01 20:47:01
636
原创 FreeRTOS 知识点总结(一):基础概念与核心特性
FreeRTOS 是一款开源的实时操作系统内核,遵循 MIT 许可证,开发者可以免费获取并修改其源代码。它专为资源受限的嵌入式设备设计,内核代码量小,占用内存少,启动速度快。FreeRTOS 支持多种微控制器架构和编译器,具有良好的跨平台性。FreeRTOS 是一款功能强大、易于使用且广泛应用的实时操作系统。它凭借轻量级、可裁剪性和丰富的功能,成为嵌入式系统开发领域的佼佼者。无论你是经验丰富的嵌入式工程师还是刚刚入门的新手,FreeRTOS 都值得你去学习和探索。
2025-02-13 20:29:14
798
原创 Git仓库托管基本使用05——远程仓库操作
在某些情况下,你可能需要强制推送更改(例如,当你需要覆盖远程分支的内容时)。是一个相对“被动”的操作,它从远程仓库获取最新的分支和提交信息,但。抓取操作只是将远程仓库的最新状态更新到本地的远程分支引用中(例如。是一个更“主动”的操作,它不仅会从远程仓库获取最新的更改,还会。:当你只想检查远程仓库的最新状态,但不想立即合并这些更改时,:当你希望将远程仓库的最新更改合并到你的本地分支时,可以确保你的本地仓库拥有最新的远程分支信息。会更新为最新的状态,但你的本地分支(如。可以确保你的本地代码是最新的。
2025-02-09 01:27:12
699
原创 Git仓库托管基本使用03——远程仓库
在添加远程仓库之前,你需要从托管平台(如 GitHub、GitLab、Gitee 等)获取远程仓库的地址。命令将远程仓库地址添加到本地仓库中。:默认的远程仓库别名,通常用于主仓库。假设你的远程仓库地址是。)也可以根据需要使用。
2025-02-08 16:31:34
538
1
原创 deepseek爆火,什么是人工智能
在当今科技飞速发展的时代,“人工智能”这个词汇频繁地出现在我们的视野中。那么,究竟什么是人工智能呢?尼尔逊教授对人工智能下了这样一个定义:“人工智能是关于知识的学科――怎样表示知识以及怎样获得知识并使用知识的科学。人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能行为和思维模式的技术,旨在使计算机或机器能够像人类一样感知、学习、推理、决策和解决问题。它涵盖了多个领域,包括但不限于机器学习、自然语言处理、计算机视觉、机器人技术等。
2025-02-07 15:07:17
1060
原创 如何能更好,更高效的使用AI,来解决问题
如果AI的回答有任何疑问,或者需要进一步的解释,随时提问。你能帮我写一个示例代码吗?如果回答没有完全符合你的需求,或者你有进一步的问题,请随时告诉AI。如果你的问题需要最新的信息或外部数据,可以告诉AI,可以尝试通过搜索来帮助你获取相关信息。另外,在非常专业的领域,尽量不要太依靠AI的回答,它一定会回答你的问题,但数据有时候不保真。背景信息:提供一些问题的背景,比如你正在处理的项目、任务或场景。具体问题:明确你想要解决的问题是什么,避免模糊不清的表述。“你的回答很有帮助,但我还需要一个更详细的代码示例。
2025-02-07 15:06:45
570
原创 Git仓库托管基本使用_01
是将本地的 Git 仓库与远程仓库(如 GitHub、GitLab、Bitbucket 等)关联起来,以便进行代码的备份、协作开发和版本管理。git init会生成.git文件 ,此文件不可移动或更改;这会将README.md文件的当前版本添加到暂存区。git add .这个命令会递归地将当前目录及其子目录中的所有修改和新文件添加到暂存区。这个命令会将当前目录下的所有文件添加到暂存区,但不会递归处理子目录。git add -ugit add -Agit add .这两个命令的效果类似,但。
2025-02-06 13:31:54
1109
原创 C语言第七课:结构体与联合体
概念结构体是一种用户自定义的数据类型,可以将不同类型的数据组合在一起。结构体中的每个数据项称为成员(或字段)。声明与定义声明struct 结构体名 {数据类型 成员1;数据类型 成员2;// 其他成员定义struct 结构体名 变量名;int id;float gpa;概念联合体是一种特殊的数据类型,允许不同的数据类型共享同一块内存。联合体的大小等于其最大成员的大小。声明与定义声明union 联合体名 {数据类型 成员1;数据类型 成员2;// 其他成员定义。
2025-02-05 16:36:56
1541
原创 C语言第六课:数组与字符串
概念数组是一种数据结构,用于存储相同类型的多个元素。数组中的每个元素可以通过索引访问。声明与初始化声明数据类型 数组名[数组长度];初始化数据类型 数组名[数组长度] = {初始值1, 初始值2, ...};// 声明并初始化一个整型数组概念字符串是一系列字符的集合,以空字符\0结尾。在C语言中,字符串本质上是一个字符数组。声明与初始化字符数组方式char str[长度] = {'H', 'e', 'l', 'l', 'o', '\0'};字符串字面量方式// 编译器会自动添加空字符'\0'
2025-02-04 14:15:56
743
原创 C语言第五课:函数与模块化编程
定义函数是完成特定任务的代码块,可以被程序中的其他部分调用。函数可以接受输入参数,并返回一个值。作用代码复用:将常用的代码封装成函数,避免重复编写。模块化:将程序分解为多个独立的模块,便于理解和维护。提高可读性:通过函数的命名,清晰地表达代码的功能。函数声明声明函数的名称、返回类型和参数列表,但不包含函数体。返回类型 函数名(参数类型 参数名);// 声明一个函数,返回两个整数的和函数定义定义函数的具体实现,包括函数体。返回类型 函数名(参数类型 参数名) {// 函数体return 返回值;
2025-02-04 14:15:35
770
原创 C语言教学第四课:控制结构
学习了C语言中的控制结构,包括条件语句(ifif-elseswitch)和循环语句(whiledo-whilefor通过这些控制结构,我们可以实现复杂的程序逻辑。我们还学习了循环控制语句(break和continue),用于控制循环的执行。
2025-02-03 20:22:28
900
原创 C语言教学第三课:运算符与表达式
学习了C语言中的运算符和表达式。运算符是C语言中用于执行各种操作的符号,包括算术运算符、关系运算符、逻辑运算符、赋值运算符和位运算符。表达式则是由变量、常量和运算符组成的有意义的组合。
2025-02-03 20:21:37
1128
原创 C语言教学第二课:变量与数据类型
语法在C语言中,定义变量需要指定数据类型和变量名。int age;// 定义一个整型变量age// 定义一个浮点型变量height数据类型告诉编译器变量占用的内存大小和存储的数据类型。变量名由字母、数字和下划线组成,且不能以数字开头。示例// 同时定义三个整型变量a、b、c学习了C语言中的变量和数据类型。变量是程序中存储数据的基本单元,而数据类型决定了变量可以存储的数据种类和范围。我们还了解了变量的定义、初始化以及作用域的概念。
2025-02-02 14:51:18
1007
原创 visual studio安装
选择适合需求的版本,例如“Visual Studio Community”(免费版本),然后点击“下载”按钮。如果收到用户账户控制通知,请选择“是”,并确认Microsoft许可条款和隐私声明。:如果安装路径有足够的空间,可以选择“安装后保留下载缓存”,便于后续更新和修复。在“Visual Studio安装程序”中,找到“工作负载”选项。根据开发需求选择工作负载。:默认语言包为“中文(简体)”,可以根据需要选择其他语言。如果需要,可以点击“更多”来查看和选择更多组件。点击“安装”按钮,等待安装完成。
2025-02-02 14:50:54
1625
原创 操作系统——中断
是指程序在执行过程中遇到紧急事件需要处理时,暂停当前程序在CPU上的运行,转而执行相应的紧急事件,待处理完成后再返回断点继续执行原来的程序。是现代计算机系统的重要组成部分之一;:中断请求信号的来源;
2024-07-25 23:37:05
751
原创 操作系统的进程与CPU资源
3、时间片轮转:每个进程循环的在CPU资源进行执行,每个进程都可以在一定时间片内独占CPU资源进行执行,若在时间段内未执行完毕,则会记录下来了,等到下一次轮到的时候接下去继续执行;这种机制确保了关键任务能够优先获得必要的资源和处理时间,从而提高系统的整体性能和响应能力。是操作系统调度策略的一种,其核心思想是每个进程循环的在CPU资源进行执行,微观上每个进程都可以在一定时间片内独占CPU资源进行执行。进程的优先级会影响时间片的分配,高优先级的进程可能会获得更大的时间片,从而获得更多的CPU时间。
2024-07-24 19:35:08
651
digital仿真软件无法访问jar
2025-11-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅