电路研究9.3.2——合宙Air780EP中的AT开发指南:HTTP(S)-PDP的研究
按照推荐的GPRS模块的学习顺序,现在需要研究的是HTTP(S)了,所以我们就继续学习吧。
9.5.2 HTTP(S)应用指南
应用概述
4G 模块支持 HTTP 和 HTTPS 协议(这个确实也考虑过了,但是不知道合不合适呢,而且我们计划的通讯是只是发送少量数据,药也需要机密什么的。), HTTP 应用的基本流程如下:
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN",""
OK
AT+SAPBR=1,1
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"10.55.40.48"
OK
再次使用如下AT命令,激活了一路id为2、APN为自动获取的默认APN的PDP承载
AT+SAPBR=3,2,"CONTYPE","GPRS"
OK
AT+SAPBR=3,2,"APN",""
OK
AT+SAPBR=1,2
OK
AT+SAPBR=2,2
+SAPBR: 2,1,"10.55.40.48"
OK
这看起来区别不大,id为2的PDP承载,IP地址和id为1的PDP承载完全一样。(这里相当于cid为1,2通道吧,G4有8个通道呢,所以这里cid可能是1-8的数据吧。)
实际上,激活id为2的PDP承载时,首先检查已经激活的其他路PDP承载,发现id为1的PDP承载已经激活,并且APN相同,则直接映射到id为1的这一路物理承载,并不会向网关发起激活PDP的请求;如果APN不同,才会向网关发起新的PDP激活请求。在实际应用场景中,我们所用的sim卡基本上都是多路PDP共享一个物理承载的情况。
AT+SAPBR之前也研究并贴过来,这里因为用到了,防止记不住,再贴出来吧。
在激活PDP之前,模块必须先附着上数据网络,4G模块开机后,会自动去附着数据网络,只要通过AT+CGATT?轮询是否附着成功即可,附着上数据网络之后,就可以激活PDP了。
举例也出来了,这里继续激活PDP,4G模块支持两套比较常用的通过AT命令激活PDP的方式,其中一套提供给socket使用,另外一套提供给MQTT、HTTP、FTP使用。socket的激活我我们这里就不研究了。不过还是贴出来吧,我们并不深入分析。
socket应用的激活PDP方式(先来看个正常激活PDP的AT命令序列,请自行参考AT手册理解AT命令意义)
AT+CPIN?
+CPIN: READY //查询sim卡是否正常
OK
AT+CGATT?
+CGATT: 1 //查询是否附着上数据网络,如果返回+CGATT: 0表示未附着上
OK
AT+CSTT="" //设置APN,此处""表示使用从网络端自动获取到的APN
OK
AT+CIICR //发起激活PDP的请求
OK
AT+CIFSR
10.159.1.145 //请求到的PDP地址
激活PDP的流程图如下
socket应用的去激活PDP方法
PDP激活成功之后,就可以发送socket的AT命令和服务器通信了,某些情况下,还需要执行去激活PDP动作(发送AT+CIPSHUT,参考上方的流程图),什么情况下,需要去激活PDP呢?分为被动和主动两种场景:
1、被动场景:如果网络环境发生了异常变化(例如进入了一个没有信号的区域,拔掉天线,拔掉sim卡等),一段时间后,4G模块会产生一个+PDP: DEACT的URC提示,出现此提示说明已经激活的PDP承载被网络端去激活了,此时仍然需要向4G模块发送AT+CIPSHUT命令主动关闭PDP
2、主动场景,分为如下两种情况:
在激活PDP过程中,激活失败,此时需要主动去激活,然后再重新激活
socket应用过程中出现失败,根据项目需要,可以执行主动去激活,然后再重新激活,重新执行socket应用
我们主要是研究的的HTTP的激活方式:
http、mqtt、ftp应用的激活PDP方式
先来看个正常激活PDP的AT命令序列,请自行参考AT手册理解AT命令意义(这个之前也研究过了)
AT+CPIN?
+CPIN: READY //查询sim卡是否正常
OK
AT+CGATT?
+CGATT: 1 //查询是否附着上数据网络,如果返回+CGATT: 0表示未附着上
OK
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","" //设置APN,此处""表示使用从网络端自动获取到的APN
OK
AT+SAPBR=1,1 //发起激活PDP的请求
OK
AT+SAPBR=2,1 //注意:此命令仅仅查询PDP地址,可以不执行
+SAPBR: 1,1,"10.159.1.145" //请求到的PDP地址
OK
激活PDP的流程图如下
http、mqtt、ftp应用的去激活PDP方式
PDP激活成功之后,就可以执行http、mqtt、ftp的AT命令和服务器通信了,某些情况下,还需要执行去激活PDP动作(发送AT+SAPBR=0,1,参考上方的流程图),什么情况下,需要去激活PDP呢?分为被动和主动两种场景:
1、被动场景:如果网络环境发生了异常变化(例如进入了一个没有信号的区域,拔掉天线,拔掉sim卡等),一段时间后,4G模块会产生一个+SAPBR 1: DEACT的URC提示,出现此提示说明已经激活的PDP承载被网络端去激活了,此时仍然需要向4G模块发送AT+SAPBR=0,1命令主动关闭PDP
2、主动场景,分为如下两种情况:
在激活PDP过程中,激活失败,此时需要主动去激活,然后再重新激活
http、mqtt、ftp应用过程中出现失败,根据项目需要,可以执行主动去激活,然后再重新激活,重新执行http、mqtt、ftp应用
重试多次PDP一直激活失败(这个涉及到了硬件的办法了。)
如果重试多次,PDP一直激活失败,则尝试使用如下手段恢复:
1、使用RESET引脚复位模块
2、极端情况下,直接给模块断电,再上电,POWER KEY引脚拉低开机。
这个先到这里,之后再继续后面的了。
补:最近工作忙得需要的加班也不少,正好公司也集中在一堆测试项目多的时节,这里贴一点东西,表示我还活着,虽然春困的时节,不过还是需要努力活下去的。
相关文章:
电路研究9.3.2——合宙Air780EP中的AT开发指南:HTTP(S)-PDP的研究
按照推荐的GPRS模块的学习顺序,现在需要研究的是HTTP(S)了,所以我们就继续学习吧。 9.5.2 HTTP(S)应用指南 应用概述 4G 模块支持 HTTP 和 HTTPS 协议(这个确实也考虑过了,但是不知道合不合适呢,而且我们计划的通讯是只…...
K8S ConfigMap 快速开始
一、什么是 ConfigMap? ConfigMap 是 Kubernetes 中用于存储非敏感配置数据的 API 对象,支持以键值对(Key-Value)或文件的形式存储配置,允许将配置与镜像解耦,实现配置的集中管理和动态更新。 二、主要用…...
【星海出品】K8S调度器leader
发现K8S的技术资料越写越多,独立阐述一下K8S-Scheduler-leader 调度器通过Watch机制来发现集群中【新创建】且尚未被调度【unscheduled】到节点上的pod。 由于 Pod 中的容器和 Pod 本身可能有不同的要求,调度程序会过滤掉任何不满足 Pod 特定调度需求的…...
第十二届蓝桥杯 2021 C/C++组 空间
目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 空间 - 蓝桥云课 思路: 思路详解&#…...
通过深度学习推进增材制造:当前进展与未来挑战综述
通过深度学习推进增材制造:当前进展与未来挑战综述 原文信息: 标题:Advancing Additive Manufacturing through Deep Learning: A Comprehensive Review of Current Progress and Future Challenges 作者:Amirul Islam Saimon, Emmanuel Yangue, Xiaowei Yue, Zhenyu (…...
深入蜂窝物联网 第三章 LTE-M(Cat-M1)详解:省电机制与移动特性
1. 前言与应用场景 在蜂窝物联网阵营中,LTE-M(Cat-M1) 兼具低功耗和中速率,且支持移动场景下的无缝切换,因而成为物流追踪、可穿戴设备、智能路灯、共享单车等场景的首选。 本章将系统剖析: 核心特性:PSM、eDRX 与移动性保障; 协议流程:简化的 RRC/NAS 步骤; 时序图…...
软件设计师速通其一:计算机内部数据表示
考试资料推荐 ,这也是大部分图片的出处。本文章主要将视频原本讲的不详细、不便于理解的东西摆开揉碎了给到读者。相信本文能帮您更好更快的学习知识。本文也是您考前快速复习的不二之选。本文会用星星来表示每个考点的重要性,其中一颗★表示课外拓展&am…...
Kubernetes》》k8s》》Taint 污点、Toleration容忍度
污点 》》 节点上 容忍度 》》 Pod上 在K8S中,如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。如果不能容忍,那就无法调度到该节点。 污点和容忍度的概念 》》污点等级——>node 》》容忍度 —>pod Equal——>一种是等…...
【爬虫】一文掌握 adb 的各种指令(adb备忘清单)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 入门设备基础Logcat文件管理远程 Shell包安装Paths手机信息包信息设备相关命令权限Logs常见的 ADB 命令将文件推送到 Android 设备的下载文件夹列出所有已安装的包并获取完整路径从安卓设备中提取文件从主机安装 APK 到…...
1.7无穷级数
引言 无穷级数是考研数学一的核心内容,涵盖数项级数、幂级数、傅里叶级数等核心概念。本文系统梳理4大考点,结合公式速查与实战示例,助你高效突破级数难点! 考点一:数项级数敛散性判定 1️⃣ 正项级数 (1) 比较审敛…...
vitest | 测试框架vitest | 总结笔记
测试框架 vitest 介绍 网址:Vitest | Next Generation testing framework 特点:①支持vite的生态系统,②兼容jest语法 ③HMR测试(速度快) ④ ESM(js的原生支持) 安装 Vitest: npm …...
使用 ELK 实现全链路追踪:从零到一的实践指南
前言 在现代分布式系统中,随着服务数量的增加,系统的复杂性也呈指数级增长。为了快速定位问题、分析性能瓶颈,全链路追踪成为一项必不可少的能力。本文将详细介绍如何利用 ELK(Elasticsearch Logstash Kibana) 实现…...
AI智能体开发实战:从概念到落地的全流程解析
一、AI智能体:重新定义人机协作 什么是AI智能体? AI智能体是具备感知-思考-行动闭环能力的程序实体,能够通过传感器(如文本输入、图像识别)获取信息,基于大模型推理决策,并通过API、机器人等执…...
如何搭建spark yarn 模式的集群
搭建Spark on YARN集群的步骤 Spark on YARN模式允许Spark作业在Hadoop YARN资源管理器上运行,这样可以更好地与Hadoop生态系统集成并共享集群资源。以下是搭建Spark YARN集群的详细步骤: 前提条件 已安装并配置好Hadoop集群(包括HDFS和YAR…...
DDoS 攻击如何防护?2025最新防御方案与实战指南
一、DDoS 攻击的致命威胁:你的业务离瘫痪有多近? 1. 2024 年 DDoS 攻击现状 攻击规模:全球日均攻击峰值突破7.2Tbps,混合型攻击占比超 65%(来源:Cloudflare)行业重灾区: 行业攻击占…...
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目
安装 pnpm install icraft/player-react --saveimport { ICraftPlayer } from "icraft/player-react";export default function MyScene() {return <ICraftPlayer srcyour-scene.iplayer />; }icraft/player-react 为开发者提供了一站式的3D数字孪生可视化解决…...
esm使用-包括esmfold和embedding
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言零、安装一、esmfold的使用二、esm2的embedding1.模型加载与准备2.读入数据3.提取残基级表示4.生成序列级表示(均值池化)5.可视化自注意力接触图6.潜在问题与改进建议7.小结总结前言 主要参…...
【Nginx】 使用least_conn负载均衡算法是否能将客户端的长连接分散到不同的服务器上demo
为了验证Nginx在关闭HTTP Keepalive的情况下,使用least_conn负载均衡算法是否能将客户端的长连接分散到不同的服务器上,我们可以搭建一个简单的环境。这个环境包括: 一个Nginx服务器作为负载均衡器。两个后端服务器(可以使用简单…...
TMI投稿指南(三):共同作者
IEEE 作者编辑风格手册 --- IEEE Editorial Style Manual for Authors 投稿之后检查路径: IEEE 作者门户:登录 --- IEEE Author Gateway: Login 共同第一作者:在许多领域,被视为成为第一作者是件好事。但只有一个人可以是第一作…...
Java多线程入门案例详解:继承Thread类实现线程
本文通过一个简单案例,讲解如何通过继承 Thread 类来实现多线程程序,并详细分析了代码结构与运行机制。 一、前言 在 Java 中,实现多线程主要有两种方式: 继承 Thread 类 实现 Runnable 接口 本文以继承 Thread 类为例&#x…...
Transformer Prefill阶段并行计算:本质、流程与思考
Transformer Prefill阶段并行计算:本质、流程与思考 “为什么Transformer在Prefill阶段可以并行?并行到什么程度?哪里还需要同步?今天讲清楚!” 引子 在大语言模型(LLMs)爆发的时代,…...
KUKA机器人自动备份设置
在机器人的使用过程中,对机器人做备份不仅能方便查看机器人的项目配置与程序,还能防止机器人项目和程序丢失时进行及时的还原,因此对机器人做备份是很有必要的。 对于KUKA机器人来说,做备份可以通过U盘来操作。也可以在示教器上设…...
Lua 第13部分 位和字节
13.1 位运算 Lua 语言从 5.3 版本开始提供了针对数值类型的一组标准位运算符。与算术运算符不同的是,位运算符只能用于整型数。位运算符包括 &( 按位与)、|(按位或)、~(按…...
下载同时返回其他参数
一般情况下下载的接口是没有返回值的,直接返回一个文件 浏览器直接触发文件下载 但是有一些奇葩需求,除了文件外还需要一些其他字段返回。这个时候就只能把文件转成字符串返回,然后再由前端做下载或者展示 后台获取字符 byte[] byte[] bo…...
240428 leetcode exercises
240428 leetcode exercises jarringslee 文章目录 240428 leetcode exercises[25. K 个一组翻转链表 ](https://leetcode.cn/problems/reverse-nodes-in-k-group/solutions/3663828/xian-fan-zhuan-lian-biao-zai-kyi-ge-zu-f-lgaj/)🔁 探宗求源 其义自见 [75. 颜色…...
SQLMesh 审计与测试:确保数据质量的利器
在数据科学项目中,确保数据质量和准确性至关重要。SQLMesh 提供了审计和测试两种工具来验证数据。本文将介绍 SQLMesh 的审计功能,并与测试进行对比,帮助您更好地理解如何在项目中使用这些工具。 SQLMesh 审计 SQLMesh 的审计功能可以帮助您…...
SQL Server 存储过程开发规范
SQL Server 存储过程开发规范(高级版) 1. 总则 1.1 目标 本规范旨在: 提高存储过程的事务一致性、异常可追踪性、错误透明度。 统一日志记录、错误码管理、链路追踪(Trace ID)。 支持复杂事务场景(嵌套…...
图像处理篇---信号与系统的应用
文章目录 前言一、信号表示层面图像作为二维信号二、系统特性分析线性移变系统建模采样系统理论应用时域采样定理在帧率选择中的应用三、变换域处理多维傅里叶分析小波变换与多分辨率分析四、系统响应特性人类视觉系统(HVS)建模摄像机系统响应五、编码系统中的信号处理预测编…...
什么是 Web 标准?为什么它们对 SEO 和开发很重要?
网页标准为何重要?谷歌解析SEO优势 在当今数字营销领域,搜索引擎优化(SEO)是网站提升可见性和吸引自然流量的关键策略。然而,许多网站管理员和营销人员可能忽略了一个重要的SEO因素——网页标准。谷歌的SEO专家深入解…...
Python 正则表达式 re 包
一、常见正则表达式符号 符号含义示例.匹配任意单个字符(除了换行)r"a.c" 可匹配 "abc"、"a1c" 等\d匹配任何数字(0-9)r"\d" 匹配 "123"、"56"\w匹配字母、数字或下…...
leetcode0230. 二叉搜索树中第 K 小的元素-medium
1 题目:二叉搜索树中第 K 小的元素 官方标定难度:中 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入:r…...
Linux环境变量配置与std访问环境变量
文章目录 前言1. 用户环境变量快速配置1.2 **以上语句的具体解释:**1.3 $PATHNAME实现增量式添加 2.系统级永久配置与避坑指南2.1 特殊字符处理2.2 动态PATH管理2.3 敏感信息保护2.4 环境调试命令 3. cstd中访问环境变量 前言 首先介绍一下Linux下各目录操作符的含…...
【go】go语言slice/map的产生背景,及原理理解
介绍一下Slice 先讲一下slice的产生背景,首先,go本身是有数组的,但是不会自动扩容,然而实际工作中会有很多场景是要求能自动扩容的,比如说你接用户的数据,你肯定要设置一个可以自动扩容的数组来接ÿ…...
机器学习day3 - KNN的api调用
使用KNN算法判断是否为传入的图片是否为苹果 """ 使用KNN算法判断是否为传入的图片是否为苹果 """ # 导入需要的库 from sklearn.model_selection import train_test_split # 导入数据集划分函数 from sklearn.preprocessing import StandardS…...
Qt内置图标速查表
文章目录 1、说明🌾2、实现效果🌱Qt6.7以下版本Qt6.7以上版本 3、主要代码🌳 更多精彩内容👉个人内容分类汇总 👈 1、说明🌾 在我们使用Qt开发程序时,需要美化界面总会想到贴图,显示…...
Python(14)推导式
在 Python 编程中,推导式是一种强大而简洁的语法结构,它能让开发者以简洁的方式从一个数据序列创建另一个新的数据序列。无论是处理列表、字典、集合还是元组,推导式都能大显身手。这篇博客将结合菜鸟教程中的内容,通过丰富的代码…...
React速通笔记
相关视频: 黑马程序员前端React18入门到实战视频教程,从reacthooks核心基础到企业级项目开发实战(B站评论、极客园项目等)及大厂面试全通关_哔哩哔哩_bilibili 一、React介绍 React由Meta公司开发,是一个用于 构建W…...
深入蜂窝物联网:第二章 深度解读 NB-IoT:协议栈、部署与典型应用
1. NB-IoT 简介与应用场景 NB-IoT(Narrowband-IoT,窄带物联网)是3GPP在LTE演进基础上,为海量低速率IoT设备设计的无线接入技术。它仅占用 200 kHz 或 180 kHz(Guard-band)带宽,通过扩频和重复发射,提高了深度覆盖能力。 典型应用 远程抄表:电表、水表、气表等周期性少…...
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
需求:对象有字段A,B,C,需要判断对象之间AB两个字段相同的对象 如: 对象1,Aaaa,Bbbb 对象2,Aaaa,Bbbb 对象3,Abbb,Baaa 对象4,Abbb,Baaa…...
基于SpringBoot的食物营养分析与推荐网站系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
人智交互中的AI世代
人智交互中的AI世代 一、研究背景与意义 1.1 技术演进背景 人工智能技术自1956年达特茅斯会议提出概念以来,经历了多次技术迭代与产业周期。2020年后,以大语言模型(LLMs)和生成式AI(AIGC)为代表的突破性进…...
从Flask到智能体:装饰器模式在AI系统中的架构迁移实践
引言:框架设计中的模式复用 在人工智能系统开发领域,大型语言模型驱动的智能体(LLM Agent)正面临日益复杂的架构挑战。有趣的是,Web开发框架Flask的装饰器模式为此类系统的构建提供了极具启发性的解决方案。本文将深入…...
Docker的常用命令
docker的常用命令 今天来介绍docker的常用命令,非常的详细,请大家看起来! 获取镜像 如果只指定了镜像的名称,则默认会获取latest标签标记的镜像 命令格式:dokcer pull [Docker Registry地址]仓库名[:标签名] 获取c…...
在matlab中使用UAV123官方toolkits测试自己的数据集
一、前言 最近需要将自己的跟踪代码在自己拍摄的数据集上进行测试,这里我选择使用 UAV123 官方 toolkits 进行配置。首先需要搞清楚这部分代码是如何运行的,精度图和成功率图是如何绘制出来的,然后再将自己的数据集加进去进行测试。 二、UA…...
《淘宝 API 数据湖构建:实时商品详情入湖 + Apache Kafka 流式处理指南》
随着电商行业的蓬勃发展,淘宝作为头部电商平台,积累了海量的商品数据。构建淘宝 API 数据湖,将实时商品详情数据纳入其中,并借助 Apache Kafka 进行流式处理,能够为企业提供强大的数据支撑,助力精准营销、市…...
HTML5 WebSocket:实现高效实时通讯
一、引言 在当今的 Web 开发领域,实时通讯功能变得越来越重要。例如在线聊天、实时数据更新等场景都需要客户端与服务器之间能够进行高效的双向数据传输。HTML5 引入的 WebSocket 协议为我们提供了一种强大的解决方案,它在单个 TCP 连接上实现了全双工通讯,极大地改善了传统…...
数字人Live_Talking的搭建和使用
Live_Talking是一个实时交互流式数字人,可以实现音视频同步对话。今天咱们来试着部署一下项目。 先来看下本地环境 系统:Ubuntu 22.04 显卡:rtx 3060 cuda: Cuda 12.1 git上推荐cuda11.3,但是我用cuda12.2也搭建成功了。 1、…...
Coupang火箭计划深度攻略:eBay卖家突破韩国市场的三维数据作战模型
一、市场机遇与竞争格局解码 1.1 Coupang生态位分析 用户基数:2600万活跃买家(占韩国成年人口68%) 客单价表现:$82(较eBay韩国站高37%) 流量分布:移动端占比91%(需重点优化移动端详…...
Flask + ajax上传文件(四)--数据入库教程
本教程将详细介绍如何使用Flask后端和AJAX前端实现Excel/csv文件上传,并将数据导入数据库的功能。 一、系统架构概述 前端(HTML+JS) → AJAX请求 → Flask后端 → 数据库 二、环境准备 1. 安装必要库 pip install flask pandas sqlalchemy openpyxl2. 项目结构 data_imp…...
C++ 部署的性能优化方法
一、使用结构体提前存放常用变量 在编写前后处理函数时,通常会多次用到一些变量,比如模型输入 tensor 的 shape,count 等等,若在每个处理函数中都重复计算一次,会增加部署时的计算量。对于这种情况,可以考…...