你知道吗?这四种关机重启情况,有更好解决办法

一、太长不看:

给4G模组VBAT断电关机,模组关机前未能及时退出当前基站,会有什么影响呢?

基站会误以为设备还在线,下次开机仍会拿着上次驻网信息去连基站。基站一看,上次链接还在——认为你是非法设备,拒绝链接!

二、详细问题原因分析:

最近一两年,时常有客户朋友反馈,无论是合宙低功耗4G模组还是其他友商的模组——模块重启完成,注册不上网。

在这里详细记录下复现问题的过程、问题产生的原因以及规避方法,并提供一些比重启更好的办法,希望能帮到类似情况的朋友们。

以下是常见的4种关机重启情况:

1. - 功耗原因关机重启 -

客户反馈:
自己对功耗特别看重,需要极低的功耗,所以关机。在需要启动的时候,再给模块上电。

FAE解答:
在大多数人的认知里,只要关机肯定是比待机更省电的,实则不然。

比如大多数人家里的电视盒子:
当你按下遥控器的关机按键,其实只是切断了输出,你认为的关机状态,和电视盒子的开机状态,实际功耗区别并不是很大。

对4G模组来说,主要的耗电大头在于——刚开机驻网那一下,以及发送数据时候。

下图为使用Air9000P功耗分析仪测试Air780E,从开机开始的一小时,每隔一分钟往服务器发送一条消息的全段截图,可以明显看出耗电的大头。

图片

所以,如果你的应用不会出现频繁发数据(低于一小时一次)给服务器,那么是可以通过关机来降低功耗的。

但是这种降低功耗的手段,还不是最优解。如果你一天发送数据多于4次,那么还有一种更好的方法来降低功耗——那就是用合宙的低功耗解决方案。

详见合宙4G超低功耗解决方案:

www.airpsm.cn

2- 网络原因关机重启 -

客户反馈:
我们的设备处于网络状态不太好的地方,在遇到网络不好的时候,我就重启自己设备,重新让模块驻网。

FAE解答:
模块驻网逻辑与掉线重连逻辑,是模块内部SDK自行处理的,掉网会给上层发送断网消息,用户只需要订阅对应消息即可。

重新驻网的逻辑其实模组内部也是有的,大多数情况下,不需要应用层做断网处理。如果用户对消息的及时性和准确性有要求,可以将模块与服务器的心跳间隔设置短一点。

AT版本:
设置心跳内容和心跳间隔的指令为:
AT^HEARTBEAT和AT^HEARTCONFIG

具体参数可以查看AT手册:
https://doc.openluat.com/article/4985

LuatOS版本:
可以查看socket.config接口,MQTT可以查看mqttc:keepalive接口。

具体接口描述参见:
https://wiki.luatos.com/api/index.html

3. - 续费原因关机重启 -

客户反馈:
有时候会因为自己续费不及时,导致SIM卡到期未续费,被停机,所以自己代码中做了处理,连不上网XX秒就断电再上电。

FAE解答:
其实可以先尝试进出一次飞行模式,没必要断电。

如果你很频繁的断电再上电,电源部分PCB设计如果有不完善的地方,很有可能出现超过VBAT最大电压的脉冲,进而可能导致模块损坏。

而且,模块内部SDK其实针对SIM卡未及时续费这种情况也做了一些处理。即使你什么都不做,到期两三天内续费成功,模块也会在10-30分钟内注册上网络,不用担心模块连不上网的问题。

4. - 服务器原因关机重启 -

客户反馈:
我们连的是客户服务器,客户服务器不稳定,时而能连时而不能连,所以在服务器连不上后,我们会断电重启模块,尝试看看能不能连上。

FAE解答:
模块驻网(连接4G基站)没什么问题,只是链接服务器失败,可以做一些重连处理,而不是频繁的去断电在上电。

如果以一个很频繁的速度(一分钟10次这种速度)去驻网,很有可能被基站认为是非法用户,导致基站内部防护策略生效,让模块再也连不上基站。

在这里可以推荐一种重连策略:

如果驻网正常,只是链接服务器异常,可以按照2^(n-1)S 的时间间隔去重连服务器。

例如:1S 2S 4S 16S 32S 64S…

当然,需要一个最大上限时间,例如10分钟。没有最大上限的话,可能导致服务器已经好了,而模块重连间隔时间过长,导致数据不能及时送达。

如果超出最大上限时间,服务器依旧连不上,再进出飞行模块几次(进出飞行模式的速度也不应过快,过快也有可能被基站认为是非法用户)。

如果依旧注册不上网络,再考虑给模块断电,然后重启模块。

综上所示,其实大多数情况,没必要给模块进行关机措施。

频繁的开关机,还有可能导致模块功耗异常或者注册基站都注册不上等问题。

如果需要进行关机:
建议还是关机前先进飞行模式,主动和当前基站进行一个注销的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天线工作原理:【图文讲解】

在信息传输过程中,我们习惯了PCB线路,线揽等,这些有线连接传输方式,而天线这个无线的传输方式相对不是那么好理解。但它确实在实际应用中,占据了很重要的位置。你有多久没有用有线电话了?(20年前…

gateway--网关

在微服务架构中,Gateway(网关)是一个至关重要的组件,它扮演着多种关键角色,包括路由、负载均衡、安全控制、监控和日志记录等。 Gateway网关的作用 统一访问入口: Gateway作为微服务的统一入口&#xff0c…

MySQL - 运维篇

一、日志 1. 错误日志 2. 二进制日志 3. 查询日志 记录了所有的增删改查语句以及DDL语句 4. 慢查询日志 二、主从复制 1. 概述 2. 原理 3. 搭建 三、分库分表 1. 介绍 2. Mycat概述 3. Mycat入门 4. Mycat配置 5. Mycat分片 6. Mycat管理及监控 四、读写分离 1. 介绍 2. 一…

B3621 枚举元组

1.递归的具体过程&#xff0c;一个dfs1&#xff0c;产生3个dfs2&#xff0c;一个dfs2产生3个dfs3&#xff0c;一共输出9个&#xff08;用n2&#xff0c;k3举例&#xff09; 2.要记得使用return 结束当前递归 #include<bits/stdc.h> using namespace std; int n, k, a[10…

Codeforces Round 976 (Div. 2) and Divide By Zero 9.0(A~E)

A - Find Minimum Operations 思路 对 n n n进行 m m m进制分解&#xff0c;所有位上相加就是答案&#xff08;参考 m 2 m2 m2时&#xff09; 代码 // Problem: A. Find Minimum Operations // Contest: Codeforces - Codeforces Round 976 (Div. 2) and Divide By Zero 9…

大数据实时数仓Hologres(三):存储格式介绍

文章目录 存储格式介绍 一、格式 二、使用建议 三、技术原理 1、列存 2、行存 3、行列共存 四、使用示例 存储格式介绍 一、格式 在Hologres中支持行存、列存和行列共存三种存储格式&#xff0c;不同的存储格式适用于不同的场景。在建表时通过设置orientation属性指…

云计算 Cloud Computing

文章目录 1、云计算2、背景3、云计算的特点4、云计算的类型&#xff1a;按提供的服务划分5、云计算的类型&#xff1a;按部署的形式划分 1、云计算 定义&#xff1a; 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可…

Java中的五种I/O模型详解

一、阻塞I/O&#xff08;Blocking I/O&#xff09; 1.1 概念 阻塞I/O是最传统的I/O模型。在该模型中&#xff0c;当一个线程执行I/O操作时&#xff0c;如果没有数据可读或可写&#xff0c;线程将会被阻塞&#xff0c;直到I/O操作完成。 1.2 工作原理 当线程调用读取或写入数…

解决nginx+tomcat宕机完美解决方案

问题描述&#xff1a;公司项目太老了&#xff0c;还是tomcat项目&#xff0c;部署两台tomcat,做了nginx负载。最近发现每到上午10&#xff0c;下午3点&#xff0c;tomcat就宕机了&#xff0c;死活找不到原因&#xff0c;客户影响超期差&#xff0c;实在让人头疼。 解决思路&am…

今日指数项目实现个股日K线详情功能

个股日K线详情功能 一. 什么是个股日K线 1.日K线就是将股票交易流水按天分组&#xff0c;然后统计出每天的交易数据&#xff0c;内容包含&#xff1a;日期、股票编码、名称、最高价、最低价、开盘价、收盘价、前收盘价、交易量&#xff1b; 2.需要注意的是这里的收盘价就是指…

MySQL:进阶巩固-存储过程

目录 一、存储过程的概述二、存储过程的基本使用2.1 创建存储过程2.2 使用存储过程2.3 查询指定数据库的存储过程以及状态信息2.4 查看某个存储过程的定义2.5 删除存储过程2.6 案例 三、存储过程的变量设置3.1 系统变量3.2 用户自定义变量3.3 局部变量 四、IF判断五、参数六、C…

spring boot项目对接人大金仓

先确认一下依赖 第一 是否引入了mybatis-plus多数据源&#xff0c;如果引入了请将版本保持在3.5.0以上 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>${dynam…

LeetCode 热题 100 回顾18

干货分享&#xff0c;感谢您的阅读&#xff01;原文见&#xff1a;LeetCode 热题 100 回顾_力code热题100-CSDN博客 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标…

Rainbond 助力城建智控,从传统开发到敏捷开发转型

在现代企业的数字化转型过程中&#xff0c;如何高效管理和快速部署业务应用已经成为各行业的核心挑战。尤其是在智慧工地和办公自动化&#xff08;OA&#xff09;这样的关键业务场景中&#xff0c;企业不仅需要面对频繁的系统更新&#xff0c;还要确保系统的稳定性与高效运作。…

Python库matplotlib之五

Python库matplotlib之五 小部件(widget)RangeSlider构造器APIs应用实列 TextBox构造器APIs应用实列 小部件(widget) 小部件(widget)可与任何GUI后端一起工作。所有这些小部件都要求预定义一个Axes实例&#xff0c;并将其作为第一个参数传递。 Matplotlib不会试图布局这些小部件…

经典sql题(十二)UDTF之Explode炸裂函数

1. EXPLODE: UDTF 函数 1.1 功能说明 EXPLODE 函数 是Hive 中的一种用户定义的表函数&#xff08;UDTF&#xff09;&#xff0c;用于将数组或映射结构中的复杂的数据结构每个元素拆分为单独的行。这在处理复杂数据时非常有用&#xff0c;尤其是在需要将嵌套数据“打散”以便更…

测试面试题:pytest断言时,数据是符点类型,如何断言?

在使用 Pytest 进行断言时&#xff0c;如果数据是浮点类型&#xff0c;可以使用以下方法进行断言&#xff1a; 一、使用pytest.approx pytest.approx可以用来比较两个浮点数是否近似相等。例如&#xff1a; import pytestdef test_float_assertion():result 3.14159expecte…

OpenCV背景建模:从基础到实践

OpenCV中的背景建模是一种在计算机视觉中常用的技术&#xff0c;主要用于从视频或图像序列中分离出前景&#xff08;运动物体&#xff09;和背景。以下将详细介绍OpenCV中几种常见的背景建模方法&#xff1a; 1. 帧差法&#xff08;非直接称为backgroundSubtractor&#xff09…

探索高效免费的PDF转Word工具,开启便捷办公之旅

无论是为了方便对文档内容进行编辑、修改&#xff0c;还是为了更好地适应不同的工作和学习场景&#xff0c;将 PDF 文档转换为可编辑的 Word 格式都具有重要意义。今天我就分享几款pdf转换成word免费版工具来解决大家的困扰。 1.Foxit PDF转换大师 链接一下>>https://w…

Mirror | homebrew 镜像源配置

1. 详细步骤 1.1 临时使用 因为长期设置不知道为什么&#xff0c;可能会有不生效的情况&#xff0c;所以发现好像卡着 没有走清华源的时候&#xff0c;可以临时使用 # 设置清华镜像源&#xff1a;五行一起拷贝执行 export HOMEBREW_API_DOMAIN"https://mirrors.tuna.ts…