当前位置: 首页 > news >正文

电路研究9.3.5——合宙Air780EP中的AT开发指南:MQTT 应用指南

        应用概述

        4G 模块支持 MQTT MQTT SSl 协议, MQTT 应用的基本流程如下:
        1、如果要支持 SSL ,配置 SSL 参数
        2、通过 TCP 连接到 MQTT 服务器
        3、发送 MQTT CONNECT 到服务器,打开会话连接
        4、订阅或者发布消息
        发布消息示例
         AT+CPIN?
        +CPIN: READY
        //查询 sim 卡是否正常
        OK
        AT+CGATT?
        +CGATT: 1
        //查询是否附着上数据网络,如果返回 +CGATT: 0 表示未附着上
        OK
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        AT+MSUB= "mqtt/sub_topic" , 0
        OK
        SUBACK
        AT+MPUB= "mqtt/pub_topic" , 0 , 0 , "publish 0 payload"
        OK
        AT+MPUB= "mqtt/pub_topic" , 1 , 0 , "publish 1 payload"
        OK
        PUBACK
        AT+MPUB= "mqtt/pub_topic" , 2 , 0 , "publish 2 payload"
        OK
        PUBREC
        PUBCOMP
        在这个过程中,注意事项如下:
        1、发送 MIPSTART 命令后,收到 OK 仅仅表示 4G 模块开始处理这条命令,并不表示 TCP 已经连接成功;只有收到 CONNECT OK 才是成功的应答(其余错误应答,参考 AT 手册)
        2、发送 MCONNECT 命令后,收到 OK 仅仅表示 4G 模块开始处理这条命令,并不表示 MQTT已经连接成功;只有收到 CONNACK OK 才是成功的应答(其余错误应答,参考 AT 手册)
        3、发送 MSUB 命令后,收到 OK 仅仅表示 4G 模块开始处理这条命令,并不表示 MQTT 已经订阅成功;只有收到 SUBACK 才是成功的应答(其余错误应答,参考 AT 手册)
        4、发送 MPUB 命令后,如果 QOS 不是 0 ,则收到 OK 仅仅表示 4G 模块开始处理这条命 令,并不表示 MQTT 已经发布成功;只有收到 PUBACK QOS 1 时)或者 PUBCOMP QOS 为 2 时)才是成功的应答(其余错误应答,参考 AT 手册)
        接收消息示例
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        AT+MSUB= "mqtt/sub_topic" , 0
        OK
        SUBACK
        AT+MPUB= "mqtt/sub_topic" , 0 , 0 , "123456"
        //在 mqtt/sub_topic 上收到订阅消息, payload 123456
        //默认是直接输出收到的订阅消息,不做缓存
        +MSUB: "mqtt/sub_topic" , 6 byte , 123456
        //设置订阅消息的处理模式,设置为缓存模式
        //接下来收到订阅消息时,会提示订阅消息的缓存位置
        AT+MQTTMSGSET= 1
        OK
        //在 mqtt/sub_topic 上收到一条订阅消息,缓存到位置 0
        +MSUB: 0
        //主动读取缓存的所有订阅消息
        AT+MQTTMSGGET
        +MSUB:mqtt/sub_topic, 6 byte , 123456
        OK
        //在 mqtt/sub_topic 上收到一条订阅消息,缓存到位置 0
        +MSUB: 0
        //在 mqtt/sub_topic 上收到一条订阅消息,缓存到位置 1
        +MSUB: 1
        //主动读取缓存的所有订阅消息
        AT+MQTTMSGGET
        +MSUB:mqtt/sub_topic, 6 byte , 123456
        +MSUB:mqtt/sub_topic, 6 byte , 123456
        OK
        TCP 被动断开示例
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        CLOSED
        //此处 TCP 连接被动断开
        AT+MIPCLOSE
        +CME ERROR: 767
        //此处无论返回 OK ERROR 还是 CME ERROR ,都直接跳过,不用做
        正确性判断
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        PDP 被动去激活示例
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        +CGEV: NW PDN DEACT 1
        //此处 PDP 被动去激活
        AT+MIPCLOSE
        OK
        //此处无论返回 OK ERROR 还是 CME ERROR ,都直接跳过,不用
        做正确性判断
        AT+MCONFIG= "866289037465624" , "user" , "password"
        OK
        AT+MIPSTART= "lbsmqtt.airm2m.com" , "1884"
        OK
        CONNECT OK
        AT+MCONNECT= 1 , 60
        OK
        CONNACK OK
        常见问题
        1、 MQTT 支持多连接吗
        目前 MQTT 仅支持单连接,不支持多连接
        2、 MQTT 的遗嘱如何使用
        通过 AT+MCONFIG 命令可以设置遗嘱的 qos retain 标志、 topic payload ;在如下几种(包 含但是又不仅限于如下情况)情况下,服务器会主动发布遗嘱消息到订阅的客户端:
        1、模块和服务器通信异常(例如模块突然关机、模块进入了一个没有网络信号的环境 等)超过 1.5 倍(一般是 1.5 倍,但不排除服务器可以修改这个时间)的 keep alive 时 间(可以通过 AT+MCONNECT 设置 keep alive 时间)
        2、模块主动执行 AT+MDISCONNECT 或者 AT+MIPCLOSE
        曾经有用户碰到过如下问题: 模块设置了遗嘱 topic /will_topic ,遗嘱 payload offline keep alive 时 间为 5 分钟,模块关机后,等待 2 分钟,在等待的 2 分钟内,其他订阅了 /will_topic 的客 户端没有收到遗嘱消息(这是正常的,因为还没有到达 1.5 倍的 keep alive 时间), 2 分 钟后,模块开机 mqtt 重连成功后,其他客户端却收到了遗嘱消息,这是什么原因呢?这部 分机制是服务器端设计的,和模块无关,个人认为:服务器端仍然在维持 2 分钟前的那个 mqtt 连接,现在模块开机,用同样的 client id 重连后,会断开之前维护的相同 client id 的 mqtt 连接,断开时,就发布了一次遗嘱消息。那这种问题,如何解决呢?模块可以在 AT+MCONNECT 返回 CONNACK OK 之后,通过 AT+MPUB 一个 topic /will_topic payload 为 online 的消息,这样订阅了遗嘱 topic 的其他客户端就会收到这个 online 消息
        3、 MQTT SSL 如何使用
        本文主要描述了基本流程和异常处理,对于 MQTT SSL 使用方法没有做过多描述,这一部分, 请自行参考 AT 手册 MQTT 章节下《使用方法举例》中的 "SSL 带证书验证流程 " 使用方法;支 持的 SSL 参数,请自行参考 AT+SSLCFG 命令说明 如果 SSL 的参数配置不变,则每次开机运行过程中,仅设置一次即可
        4、重试多次 PDP MQTT 应用一直连接失败
        如果重试多次 PDP 激活, PDP 一直激活失败,或者 MQTT 一直连接失败,则尝试使用如下 手段恢复:
        1、使用 RESET 引脚复位模块
        2、极端情况下,直接给模块断电,再上电, POWER KEY 引脚拉低开机
        5、 MPUB 命令中, payload 包含 " 如何发送?
        消息中内嵌的双引号请用\22 表达;控制字符 \r(0x0D) 请用 \0D 表达;控制字符 \n 0x0A ) 请用\0A 表达 如果是 MCU 发消息,请用 \\22 \\0D \\0A 来 表达,即 \ 需要转义成 \\
        6、连接服务器失败
        1. 检查下模块信号、网络注册、网络附着、 PDP 激活状态
        2. 检查下 SIM 卡是否欠费【 4G 模块有一种欠费表现:无法注册 4G 网络,可以注册 2G网络】
        3. 使用 mqtt.fx ,连接服务器确认一下是否可以连接成功,排除服务器故障
        4. 部分国外的开源项目提供免费的 MQTT 代理服务器,因为网络的原因,国内存在严 重的延迟或者丢包现象,导致程序运行出现问题,此现象在 AT 开发时影响严重
        5. 确认是不是域名解析失败导致,可以通过 AT+CDNSGIP=<domain name> 确认一下 域名是否能正常解析(注意:该命令只有在执行完 at+cstt at+ciicr at+cifsr 才能正常工作 ),不能正常解析,可以通过 AT+CDNSCFG=ip1,ip2 设置域名解析服务器。
        6. MIPSTART /SSLMIPSTART 返 回 CONNECT OK 后 才 能 发 MCONNECT 命令, 而且要立即发,否则会被服务器踢掉。
        7、数据接收缓存问题
        1. 不缓存:通过 AT+MQTTMSGSET=0 设置;收到订阅的 publish 报文后,立即通过 AT 口输出主题、payload 长度、 payload 内容,每个报文中支持的 payload 内容最长 4100 字节。
        2. 内存缓存:通过 AT+MQTTMSGSET=1 设置;内存中有一个缓存表,一条消息最多 4kb,最多支持缓存 4 publish 报文;收到订阅的 publish 报文后,插入缓冲表中的空闲位 置,然后通过 AT 口输出存储位置;缓存表满之后,新收到的 publish 报文会覆盖最旧的 publish 报文。
        注意:缓存表位于内存中,断电或者重启后,缓存表中的数据会被清空;建议收到数据 时,通过 AT+MQTTMSGGET 及时读取出来,以防缓冲区满覆盖丢失数据
        8、数据发送问题
        AT+MPUB 最大 publish 2384 字节 ,AT+MPUBEX 长度取值范围 1-4100
        这个我这里就是贴出来相关资料,因为不知道,也没有实际应用所以没太多信息。加上最近身体有些不舒服,所以就囫囵吞枣的弄了上来,便于大家研究一下。

相关文章:

电路研究9.3.5——合宙Air780EP中的AT开发指南:MQTT 应用指南

应用概述 4G 模块支持 MQTT 和 MQTT SSl 协议&#xff0c; MQTT 应用的基本流程如下&#xff1a; 1、如果要支持 SSL &#xff0c;配置 SSL 参数 2、通过 TCP 连接到 MQTT 服务器 3、发送 MQTT CONNECT 到服务器&#xff0c;打开会话连接 4、订阅或者发布消息…...

每日算法刷题计划Day5 5.13:leetcode数组3道题,用时1h

11. 26. 删除有序数组中的重复项(简单&#xff0c;双指针) 26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 思想: 1.我的思想: 双指针遍历集合储存已有元素 2.官方思想&#xff1a; 题目条件有序数组删除重复元素&#xff0c;所以重复元素都是连续存在…...

常见排序算法及复杂度分析

冒泡排序 (Bubble Sort) 基本思想 相邻元素比较&#xff0c;大的元素后移 每轮将最大元素"冒泡"到末尾 代码实现 void bubbleSort(int arr[], int n) {for (int i 0; i < n-1; i) {for (int j 0; j < n-i-1; j) {if (arr[j] > arr[j1]) {swap(arr[j]…...

git 怎么更改本地的存储的密码

目录 找到控制面板---用户账户---凭证管理器 点击【windows凭据】&#xff0c;选择普通凭据&#xff0c;点击你要修改的地址。点击【编辑】 修改完&#xff0c;点击【保存】​编辑 找到控制面板---用户账户---凭证管理器 点击【windows凭据】&#xff0c;选择普通凭据&#x…...

数据分析预备篇---Pandas的Series

Pandas优势 Pandas优势在于它是构建在NumPy之上的,继承了NumPy高性能的数组计算功能,同时还提供了更多复杂精细的数据处理功能(如缺失值处理、时间序列分析),支持表格型数据(DataFrame)和带标签的一维数据(Series) 安装Pandas Windows操作系统,在菜单栏搜索cmd,进入…...

Kaamel隐私合规洞察:Facebook美容定向广告事件分析

Kaamel隐私合规与数据安全团队分析报告 I. 引言&#xff1a;基于情绪的定向广告指控 A. 事件概述 近期&#xff0c;一则关于Meta&#xff08;前身为Facebook&#xff09;的指控引发了公众对数字隐私和广告伦理的广泛关注。该指控核心内容为&#xff0c;Meta公司涉嫌利用其平台…...

最优化方法Python计算:有约束优化应用——线性可分问题支持向量机

设问题的数据样本点 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi​,yi​)&#xff0c; x i ∈ R n \boldsymbol{x}_i\in\text{R}^n xi​∈Rn&#xff0c; y i 1 y_i\pm1 yi​1&#xff0c; i 1 , 2 , ⋯ , m i1,2,\cdots,m i1,2,⋯,m。由于标签数据 y i ∈ { − 1 , 1 } y_i\…...

深入解析 I/O 模型:原理、区别与 Java 实践

一、I/O 模型的核心概念 I/O 操作的本质是数据在用户空间&#xff08;应用程序内存&#xff09;和内核空间&#xff08;操作系统内核内存&#xff09;之间的传输。根据数据准备与拷贝阶段的处理方式不同&#xff0c;I/O 模型可分为以下五类&#xff1a; 阻塞 I/O&#xff08;…...

React系列——HOC高阶组件的封装与使用

技巧一&#xff1a;复用组件逻辑 具体而言&#xff0c;高阶组件是参数为组件&#xff0c;返回值为新组件的函数 const EnhancedComponent higherOrderComponent(WrappedComponent);For example: 参数复用 const withSize (Component) > {return class toSize extends C…...

72.编辑距离

编辑距离是指通过删除、插入和替换三种操作&#xff0c;将一个字符串转换为另一个字符串所需的最少操作次数。 首先定义状态&#xff1a;dp[i][j] 表示将 word1 的前 i 个字符转换为 word2 的前 j 个字符所需的最少操作数。接下来定义状态转移方程&#xff1a; 如果 word1[i]…...

自适应稀疏核卷积网络:一种高效灵活的图像处理方案

自适应稀疏核卷积网络&#xff1a;一种高效灵活的图像处理方案 引言 在深度学习的大潮中&#xff0c;计算机视觉技术取得了长足的进步。其中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;作为图像处理的核心工具&#xff0c;极大地推动了各类图像识别任务的效果提升。…...

c# UTC 时间赋值注意事项

文章目录 最佳实践:赋值时指定时区问题描述回答关键区别&#xff1a;DateTime.SpecifyKind 的作用​​1. 直接赋值 DateTime.UtcNow.Date​​​​2. 使用 DateTime.SpecifyKind 强制指定​​ 最佳实践:赋值时指定时区 避免 C# 版本默认读取时采用 机器时区问题 如果需要UTC 时间…...

对端服务器重装系统之后远程SSH无法登录的问题

今天遇到一个SSH连接问题特此记录下。 我之前可以从本机使用SSH跳转到其他服务器&#xff0c;今天突然发现无法跳转了&#xff0c;有警告信息&#xff0c;此报错是由于远程的主机的公钥发生了变化导致的&#xff0c;可能是有异常&#xff0c;建议修改认证文件后再次登录。 突然…...

豌豆 760 收录泛滥现象深度解析与应对策略

xinruanj 一、收录泛滥现象的具体表现 当用户在豌豆760 中搜索某类应用时&#xff0c;往往会被数量庞大、功能相似的程序所包围。以图片编辑类应用为例&#xff0c;搜索结果中可能会出现数十款名称相近、图标相似的应用。这些应用不仅在界面设计上缺乏创新&#xff0c;甚至部…...

dockers笔记

docker 和 虚拟机的区别 虚拟机比较笨重&#xff0c;包括操作系统 虚拟化&#xff1a;将物理资源虚拟为逻辑资源 镜像 - 模板 容器 - 实例 docker hub - 分享 和 复用 容器化和dockerfile dockerfile实践 我们想打印一个js语句&#xff0c;如何构建镜像完成这个事情 新建了…...

Angular | 利用 `ChangeDetectorRef` 解决 Angular 动态显示输入框的聚焦问题

在 Angular 应用开发中&#xff0c;实现用户点击按钮后&#xff0c;原地切换显示一个输入框并自动获取焦点的功能&#xff0c;是一个常见的交互模式。例如&#xff0c;搜索图标点击后变为搜索框&#xff0c;用户可以直接输入。然而&#xff0c;由于 Angular 的变更检测和 DOM 更…...

Redis——数据结构

Redis的五种基本数据类型&#xff1a;String、Hash、List、Set、ZSet 结构类型结构存储值结构读写能力String字符串、整数或浮点数对整个字符串或字符串的一部分进行操作&#xff1b;对整数或者浮点数进行自增或自减操作List链表&#xff0c;每个节点上包含一个字符串对链表两…...

通讯录管理系统(IO_序列化和反序列化版)

参照之前文章&#xff0c;也是IO的变版 package day4;import java.io.Serializable;/* 有需求 -- 才去设计类 自定义表示通讯录单条信息的类*/ public class PhoneBookItem implements Serializable {private static final long serialVersionUID 1L;//属性private String na…...

基于RT-Thread的STM32F4开发第三讲——DAC

文章目录 前言一、DAC是什么&#xff1f;二、RT-Thread工程创建三、DAC函数编写1.DAC.c2.DAC.h3.main.c 四、结果测试五、工程分享 前言 本章利用RT-Thread最新的驱动5.1.0开发DAC模块&#xff0c;使用的开发板是正点原子的STM32F4探索者。很多配置和上文重复&#xff0c;本文…...

git cherry-pick和git stash命令详解

git cherry-pick命令 定义 用于将指定的提交(commit)从一个分支"挑选"并应用到当前分支它复制某个提交的更改&#xff08;diff&#xff09;&#xff0c;生成一个新的提交&#xff0c;保留原提交的更改内容&#xff0c;但拥有新的提交ID&#xff08;SHA值&#xff09;…...

MapReduce基本介绍

核心思想 分而治之&#xff1a;将大规模的数据处理任务分解成多个可以并行处理的子任务&#xff0c;然后将这些子任务分配到不同的计算节点上进行处理&#xff0c;最后将各个子任务的处理结果合并起来&#xff0c;得到最终的结果。 工作流程 Map 阶段&#xff1a; 输入数据被…...

正则表达式常用验证(一)

正则表达式(Regular Expression)是一种强大的文本匹配工具,常用于验证字符串的格式。以下是常见的正则表达式验证场景及其对应的表达式: 1. 数字验证 验证纯数字: ^\d+$示例:123、456789 验证固定长度的数字(如 6 位): ^\d{6}$示例:123456 验证数字范围(如 1 到 100…...

基于几何布朗运动的股价预测模型构建与分析

基于几何布朗运动的股价预测模型构建与分析 摘要 本文建立基于几何布朗运动的股价预测模型&#xff0c;结合极大似然估计与蒙特卡洛模拟&#xff0c;推导股价条件概率密度函数并构建动态预测区间。实证分析显示模型在标普500指数预测中取得89%的覆盖概率&#xff0c;波动率估…...

通过SSRF击穿内网!kali-ssrf靶场实战!

目录 1. 靶场拓扑图 2. 判断SSRF的存在 3. SSRF获取本地信息 3.1. SSRF常用协议 3.2. 使用file协议 4. 172.150.23.1/24探测端口 5. 172.150.23.22 - 代码注入 6. 172.150.23.23 SQL注入 7. 172.150.23.24 命令执行 7.1. 实验步骤 8. 172.150.23.27:6379 Redis未授权…...

Yarn-概述

一、YARN 是什么&#xff1f; YARN&#xff08;Yet Another Resource Negotiator&#xff09; 是 Apache Hadoop 生态系统中的核心组件&#xff0c;是一个 分布式资源管理和作业调度系统&#xff0c;主要用于协调集群中的计算资源&#xff08;CPU、内存、磁盘、网络等&#xf…...

如何在sheel中运行spark

// 读取文件&#xff0c;得到RDD val rdd1 sc.textFile("hdfs://hadoop100:8020/wcinput/words.txt") // 将单词进行切割&#xff0c;得到一个存储全部单词的RDD val rdd2 fileRDD.flatMap(line > line.split(" ")) // 将单词转换为元组对象&#xff0…...

销售具备的能力有哪些

销售人员是许多公司业务的开拓者&#xff0c;他们的存在让公司的利益更高。因此&#xff0c;在许多的公司中&#xff0c;销售人员的待遇都非常的高。也因此&#xff0c;有的人看重销售人员的薪资待遇想寻找销售型的工作。但是&#xff0c;相当销售人员还需要具有一定的工作能力…...

React面试常问问题详解

以下是30个React面试中常见的问题及简要解析&#xff0c;涵盖基础概念、核心原理、性能优化、Hooks、状态管理等方面&#xff0c;适用于初中高级开发者准备面试时参考&#xff1a; 一、React 基础与核心概念 React 是什么&#xff1f; React 是由 Facebook 开发的用于构建用户界…...

POM 和关键字驱动区别

一、POM 和关键字驱动的区别以及各自的优势分别是什么&#xff1f; 1、POM 适用于对单个系统封装的自动化框架中&#xff0c;对业务覆盖更精准&#xff1b;   优势&#xff1a;更加便利、维护性更高 2、关键字驱动可以用于对多个业务、多个系统进行封装的自动化框架中&…...

2025年PMP 学习十一 第8章 项目质量管理(8.3)

第8章 项目质量管理&#xff08;8.3&#xff09; 文章目录 第8章 项目质量管理&#xff08;8.3&#xff09;8.3 控制质量1. 定义与作用2.输入、输出&#xff0c;工具和技术3. 数据收集 - 核查表&#xff08;工具与技术&#xff09;4. 数据展示 - 帕雷托图&#xff08;工具与技术…...

【笔记】C++操作mysql及相关配置

目录 使用软件版本信息&#xff1a; 1. C配置mysql相关依赖 1.1 下载 1.2 文件配置 1.3 C编译器配置 2、测试程序 使用软件版本信息&#xff1a; Visual Studio 2022Mysql 8.0C Connector库 8.3.0 可直接在https://download.csdn.net/download/Word_And_Me_/90826524下…...

【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景

目录 1 什么是MapReduce&#xff1f; 2 MapReduce的核心特点 2.1 分布式处理 2.2 容错机制 3 MapReduce的完整工作流程 4 MapReduce的优缺点分析 4.1 优势 4.2 局限性 5 MapReduce典型应用场景 5.1 适用场景 5.2 不适用场景 6 MapReduce与其他技术的对比 7 总结 1…...

EMQX v5.0通过连接器和规则同步数据

1 概述 EMQX数据集成功能&#xff0c;帮助用户将所有的业务数据无需额外编写代码即可快速完成处理与分发。 数据集成能力由连接器和规则两部分组成&#xff0c;用户可以使用数据桥接或 MQTT 主题来接入数据&#xff0c;使用规则处理数据后&#xff0c;再通过数据桥接将数据发…...

JCJC 错别字检测自定义词典 API 接口文档 2025-05-13

JCJC 错别字检测自定义词典 API 接口文档 2025-05-13 JCJC 错别字检测系统自定义词典接口全面开放。企业用户和个人付费用户都可以使用接口方式管理自定义词典。 自定义词典包含&#xff1a; 白名单和黑名单两种类型。 也可以登录个人中心&#xff0c;点击左侧边栏导航以 UI …...

Qt 样式表qss学习

语法 /* 语法结构 */ selector { attribute: value }selector&#xff08;选择器&#xff09; selector&#xff08;选择器&#xff09;&#xff1a;指定要应用样式的控件类型或特定控件。例如&#xff1a; QWidget&#xff1a;所有QWidget及其子类。QPushButton&#xff1a;…...

Linux文件编程——读写结构体、链表等其他类型的数据

在 Linux 文件编程中&#xff0c; open、read、write、close等函数&#xff0c;本质上的读写内容是一个无类型的指针&#xff0c;所以其也可以读写整型、数组、结构体、链表等不同类型的数据。 SYNOPSIS #include <unistd.h>ssize_t write(int fd, const void *buf, siz…...

离散制造企业WMS+MES+QMS+条码管理系统高保真原型全解析

在离散型制造企业的生产过程中&#xff0c;库存管理混乱、生产进度不透明、质检流程繁琐等问题常常成为制约企业发展的瓶颈。为了帮助企业实现全流程数字化管控&#xff0c;我们精心打造了一款基于离散型制造企业&#xff08;涵盖单件生产、批量生产、混合生产模式&#xff09;…...

Datawhale PyPOTS时间序列5月第1次笔记

课程原地址&#xff1a; https://github.com/WenjieDu/PyPOTS&#xff08;Package地址&#xff09; https://github.com/WenjieDu/BrewPOTS/tree/datawhale/202505_datawhale&#xff08;Tutorial地址&#xff09; 2.1 PyPOTS简介 PyPOTS 是一个专为处理部分观测时间序列&a…...

linux 抓包工具tcpdump使用小记(使用时注意权限和系统资源)

tcpdump 是一款强大的网络数据包捕获和分析工具&#xff0c;常用于网络故障排查、协议分析、安全审计等场景。以下是其核心功能、使用方法及常见场景的详细介绍&#xff1a; 1. 基本功能 数据包捕获&#xff1a;监听网络接口&#xff0c;实时捕获传输的数据包。过滤规则&#…...

HTTP和HTTPS模块

一、HTTP 模块 1. 创建 HTTP 服务器 基本服务器示例 const http require(http);const server http.createServer((req, res) > {res.statusCode 200;res.setHeader(Content-Type, text/plain);res.end(Hello World\n); });server.listen(3000, 127.0.0.1, () > {co…...

操作系统导论——第29章 基于锁的并发数据结构

通过锁可以使数据结构线程安全&#xff08;thread safe&#xff09;。当然&#xff0c;具体如何加锁决定了该数据结构的正确性和效率&#xff1f;挑战是&#xff1a; 关键问题&#xff1a;如何给数据结构加锁&#xff1f; 对于特定数据结构&#xff0c;如何加锁才能让该结构功能…...

TensorFlow之微分求导

目录 前言示例手动微分实现两个未知数, 求偏导tf.GradientTape常量求导tf.GradientTape二阶导数tf.GradientTape实现梯度下降结合optimizer实现梯度下降 前言 在TensorFlow中&#xff0c;微分是个非常重要的概念。它们分别用于自动求导&#xff08;计算梯度&#xff09;和高效…...

电池自动点焊机:多领域电池制造的核心设备

电池自动点焊机作为电池制造领域的关键设备&#xff0c;通过电阻热焊接技术实现金属连接片与电池极片的精确焊接&#xff0c;广泛应用于数码电池、工具电池、储能电池、电动车电池及动力电池的生产环节。其核心技术基于微电脑控制与多脉冲焊接模式&#xff0c;能够针对不同电池…...

第五部分:第一节 - Node.js 简介与环境:让 JavaScript 走进厨房

我们之前学习的 JavaScript 主要运行在浏览器中&#xff0c;由浏览器内置的 JavaScript 引擎&#xff08;如 Chrome 的 V8 引擎&#xff09;来解释执行。Node.js 则是一个JavaScript 运行时环境&#xff0c;它也使用了 Chrome 的 V8 引擎&#xff0c;但它不是在浏览器里&#x…...

MQTT 协议详解:物联网通信的利器

在当今物联网&#xff08;IoT&#xff09;迅猛发展的背景下&#xff0c;设备之间的高效、可靠通信变得尤为重要。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;作为一种轻量级的消息传输协议&#xff0c;因其低带宽占用和高可靠性&#xff0c;成为物联网领…...

CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响

上海又收紧了新能源车的免费上牌政策。所以年前一些伙伴和我探讨过买新能源汽车的问题&#xff0c;小伙伴们基本纠结的点是买插电还是纯电&#xff1f;我个人是很抗拒新能源车的&#xff0c;也开过坐过。个人有几个观点&#xff1a; 溢价过高&#xff0c;不保值。实际并不环保…...

C++STL——map和set的使用

目录 1.容器 1.1 序列容器 1.2 容器适配器 1.3 关联容器 1.4 无序关联容器 1.5 键值对到底是个什么东西&#xff1f; 2.set系列的使用 2.1 set类的介绍 2.2 set的构造以及迭代器 2.3 set的增&#xff0c;删&#xff0c;查 2.3.1 插入 2.3.2 删除 2.3.3 查找 2.3.4…...

Ensemble Alignment Subspace Adaptation Method for Cross-Scene Classification

用于跨场景分类的集成对齐子空间自适应方法 摘要&#xff1a;本文提出了一种用于跨场景分类的集成对齐子空间自适应&#xff08;EASA&#xff09;方法&#xff0c;它可以解决同谱异物和异谱同物的问题。该算法将集成学习的思想与域自适应&#xff08;DA&#xff09;算法相结合…...

AFFS2 的 `yaffs_ext_tags` 数据结构详解

YAFFS2 的 yaffs_ext_tags 数据结构详解 yaffs_ext_tags 是 YAFFS2 文件系统中用于 管理 NAND 闪存页的元数据 的核心结构体&#xff0c;存储在 NAND 的 OOB&#xff08;Out-Of-Band&#xff09;区域。它记录了数据块的归属、状态、校验信息等关键元数据&#xff0c;是 YAFFS2…...

CSS经典布局之圣杯布局和双飞翼布局

目标&#xff1a; 中间自适应&#xff0c;两边定宽&#xff0c;并且三栏布局在一行展示。 圣杯布局 实现方法&#xff1a; 通过float搭建布局margin使三列布局到一行上relative相对定位调整位置&#xff1b; 给外部容器添加padding&#xff0c;通过相对定位调整左右两列的…...