【OpenCPU】ML307A-DCLN|网络初始化流程介绍

菩禔看科技 2024-04-24 00:40:54

OpenCPU网络初始化流程至关重要,是模组正常连接服务器应用的前提。流程包含读取模组IMEI/SN、读取SIM卡IMSI/ICCID和模组PDP激活状态三个环节。本文介绍了ML307A模组OpenCPU模式网络初始化的相关接口、demo代码解析、demo运行示例以及常见问题。

图1 网络初始化流程

一、相关接口

模组的IMEI/SN获取接口可在include\cmiot\cm_sys.h中查看,SIM卡IMSI/ICCID获取接口可以在include\cmiot\cm_sim.h中查看,PDP激活状态查询可以在include\cmiot\cm_modem.h中查看。

1.1 获取模组IMEI

模组正常开机成功之后即可调用该接口获取模组IMEI,返回0表示获取成功,小于0表示获取失败;

1.2 获取模组SN

模组正常开机成功之后即可调用该接口获取模组SN,返回0表示获取成功,小于0表示获取失败;

1.3 获取SIM卡IMSI

模组正常开机且正常识别到SIM卡之后即可调用该接口获取SIM卡的IMSI,返回0表示获取成功,小于0表示获取失败;

1.4 获取SIM卡ICCID

模组正常开机且正常识别到SIM卡之后即可调用该接口获取SIM卡ICCID,获取ICCID采用虚拟AT指令的方式进行获取,需要注意使用虚拟AT通道之前需要先进行虚拟通道初始化;

1.5 PDP状态查询

模组开机后默认会自动进行第一路PDP激活,该接口调用虚拟AT指令进行激活查询,CID为PDP上下文编号,返回值为虚拟AT指令查询到的PDP状态,返回1表示激活成功,返回0表示激活失败。

二、demo代码解析

在SDK提供的demo中,已经实现模组IMEI/SN和SIM卡的IMSI/ICCID的获取,以及PDP激活状态查询,下面我们详细看一下cm_demo_main.c文件中相关部分的代码。

2.1 获取模组IMEI

这里建立一个buf数组,用于存储IMEI字符串,先进行buf清空,然后获取IMEI,最后使用串口打印函数输出;

2.2 获取模组SN

首先进行buf清空,然后获取模组SN,最后使用串口打印函数输出;

2.3 获取SIM卡IMSI

首先进行buf清空,然后获取SIM卡IMSI,最后使用串口打印函数输出;

2.4 获取SIM卡ICCID

首先调用函数cm_virt_at_init进行虚拟AT通道初始化,然后发送虚拟AT指令“AT+ICCID?”获取ICCID,通过虚拟AT通道的回调函数iccid_resp_cb打印获取到的ICCID;

2.5查询pdp激活状态

以1秒的间隔循环查询PDP激活状态10次,如果次数超过则打印网络超时,如果PDP状态激活成功则打印网络准备好。

三、demo运行示例

上面提到在cm_demo_main.c中,已经实现读取模组IMEI/SN,SIM卡的IMSI/ICCID,以及PDP激活状态查询,下面是cm_demo_main.c运行示例。

[05-04 17:49:19:868]CM OpenCPU Starts //开机成功,opencpu程序开始运行,通过UART0,9600波特率进行打印

[05-04 17:49:19:883]SDK VERSION:ML307A_OpenCPU_Standard_1.3.1.2304071557_release //SDK版本号获取

[05-04 17:49:19:964]fs total:262144,remain:184320 //文件系统信息获取

[05-04 17:49:19:995]heap total:1310716,remain:664352 //系统heap状态获取

[05-04 17:49:20:027]waiting for network... //等待网络激活,超时时间设置为10秒

[05-04 17:49:25:240]network ready //网络初始化成功打印

[05-04 17:49:26:279]Now:2023-5-4:17:49:27,Thursday //获取当前时间

[05-04 17:49:26:311]SN:20209P1001531A000014 //SN号获取

[05-04 17:49:26:343]IMEI:864606060109344 //IMEI获取

[05-04 17:49:26:359]IMSI:460042726515520 //IMSI获取

[05-04 17:49:26:424]*ICCID: "89860407112270005520" //ICCID获取

[05-04 17:49:28:953]

[05-04 17:49:28:953]please input cmds:

四、常见问题

1、为什么获取不到SIM卡IMSI和ICCID?

获取SIM卡IMSI和ICCID需要保证SIM卡电路设计正常,插拔卡方向正确,SIM卡硬件正常才能获取到IMSI和ICCID。

2、网络超时等待时间是否可以自行配置?

可以的,网络超时的时间间隔在不同的网络环境可能存在差异,可自行配置来保证有足够的时间来完成网络激活。

3、是否所有的AT指令都可以采用虚拟AT指令?

虚拟AT不完全支持OneMO AT手册中的指令,仅支持3GPP的AT指令。

4、激活PDP失败的原因?

PDP是在开机读卡之后自动激活的,激活失败需要排查SIM卡是否存在欠费、机卡绑定、未激活问题。





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注