AT指令集 —— EC20 4G模块短信的收发与管理(短信服务命令)

2023-10-14 18:20

本文主要是介绍AT指令集 —— EC20 4G模块短信的收发与管理(短信服务命令),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 短信服务命令
    • AT+CSMS 选择消息服务(在CDMA网络中无效)
    • AT+CMGF 讯息格式
    • AT+CSCA 服务中心地址(在CDMA网络中无效)
    • AT+CPMS 首选消息存储
    • AT+CMGL 列出短信
    • AT+CMGD Delete Message
    • AT+CMGR 读短信
    • AT+CMGS 发送短信
    • AT+CMMS发送更多消息(在CDMA网络中无效)
    • AT+CMGW 写消息到内存
    • AT+CMSS 从存储发送消息

短信服务命令

AT+CSMS 选择消息服务(在CDMA网络中无效)

该命令选择消息传递服务<service>并返回ME支持的消息类型。

  • AT+CSMS=?
    列出支持的服务

  • AT+CSMS?
    列出当前的服务类型
    Response:
    +CSMS: <service>,<mt>,<mo>,<bm>

  • AT+CSMS=<service>
    设置服务类型
    Response:
    +CSMS: <mt>,<mo>,<bm>

下面来看下这些选项都有哪些值,分别对应什么功能:
<service>(服务类型)
0 —— 3GPP TS 23.040和3GPP TS 23.041(SMS AT命令的语法与3GPP TS 27.005阶段2版本4.7.0兼容;可以支持不需要新命令语法的阶段2+功能,例如,正确路由具有新阶段的消息 2种以上的数据编码方案)。

1 —— 3GPP TS 23.040和3GPP TS 23.041(SMS AT命令的语法与3GPP TS 27.005 Phase 2+版本兼容;在相应的命令描述中提到了设置1的要求)。

<mt>(移动终止消息)
0 —— 不支持类型
1 —— 支持的类型

<mo>(移动发起的消息)
0 —— 不支持类型
1 —— 支持的类型

<bm>
0 —— 不支持类型
1 —— 支持的类型

在这里插入图片描述
我所使用的是电信卡,电信使用的就是CDMA网络.

AT+CMGF 讯息格式

该命令指定短消息的输入和输出格式。
<mode>指示与“测试”,“读取”,“写入”和“执行”命令一起使用的消息格式,以及由收到的消息导致的未经请求的结果代码。
消息的格式可以是PDU模式(使用整个TP数据单元)或文本模式(消息的标题和正文作为单独的参数给出)。 文本模式使用AT +
CSCS命令指定的参数的值来通知TA-TE界面的消息正文中使用的字符集。

  • AT+CMGF=?
    查看支持的短信格式

  • AT+CMGF?
    查看当前配置的格式

  • AT+CMGF[=<mode>]
    设置格式

<mode>
0 —— 中文短信(PDU)
1 —— 英文短信 (Text)

AT+CSCA 服务中心地址(在CDMA网络中无效)

当发送移动始发的SMS时,写入命令将更新SMSC地址。 在文本模式下,该设置由“写入命令”使用。
在PDU模式下,同一命令将使用设置,但是仅当SMSC地址的长度编码为等于零的<pdu>参数时才使用。

电信卡:
在这里插入图片描述

其他:
在这里插入图片描述

AT+CPMS 首选消息存储

该命令选择要用于读取,写入等的内存存储<mem1>,<mem2>和<mem3>。

  • AT+CPMS=?
    列出支持的<mem1>,<mem2>和<mem3>。
  • AT+CPMS?
    Response
    +CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,<m em3>,<used3>,<total3>
  • AT+COMS=<mem1>[,<mem2>[,<mem3>]]

<mem>
SM” —— (U)SIM message storage
ME” —— Mobile equipment message storage
MT” —— Same as “ME” storage
在这里插入图片描述

AT+CMGL 列出短信

读取命令将状态值<stat>的消息从首选消息存储<mem1>返回到TE。 如果消息的状态为“ REC
UNREAD”,则存储中的状态将更改为“ REC READ”。 当执行不带状态值<stat>的AT + CMGL命令时,它将报告状态为“
REC UNREAD”的SMS列表。

  • AT+CMGL=?
    列出支持的<stat>
  • AT+CMGL[=<stat>]
    Response:
    In Non-CDMA mode:
    Text模式:
    For SMS-SUBMITs and/or SMS-DELIVERs:
    +CMGL: <index>,<stat>,<oa/da>,[<alpha>],[<scts>][,<tooa/toda>,< length>]<CR><LF><data>[<CR><LF>
    +CMGL: <index>,<stat>,<da/oa>,[<alpha>],[<scts>][,<tooa/toda>,<length>]<CR><data>[…]]
    在这里插入图片描述
    在这里插入图片描述

<stat>

在文本模式下:
“ REC UNREAD” —— 收到的未读消息
“ REC READ” —— 接收到的已读信息
“ STO UNSENT” —— 存储的未发送消息
“ STO已发送” —— 存储的已发送消息
“ALL”所有消息
在PDU模式下:
0 —— 收到未读消息
1 —— 收到已读消息
2 —— 已存储的未发送消息
3 ——已存储的已发送消息
4 —— 所有消息

在这里插入图片描述
下面的gggggg就是短信内容了。(因为使用的是自己编写的串口通信程序,读buf设置过小导致接收的内容打印有问题,不过第一行是正确的,湖后面的图均已修复!!)
其他选项内容请参考EC20 datasheet,我上一篇关于AT指令的博客最后有下载方法

AT+CMGD Delete Message

该命令从首选消息存储位置删除短消息。
如果出现了且未将其设置为0,则ME将忽略并遵循规则。

  • AT+CMGD=?

  • AT+CMGD=<index>
    前面使用AT+CMGL可以列出短信列表,从而可以获取很多关于短信的信息,其中一项是index(短信编号),这个命令指删除index位置的短信

  • AT+CMGD=<index>[,<delflag>]
    忽略index的值,根据的delflag的值来做处理

<delflag>
0 —— 删除<index>中指定的消息
1 —— 删除<mem1>存储中的所有已读消息
2 —— 删除<mem1>存储中的所有已读消息以及已发送的移动原始消息
3 —— 删除<mem1>存储中的所有已读消息以及所有已发送和未发送的移动始发消息
4 —— 删除<mem1>存储中的所有消息

在这里插入图片描述

AT+CMGR 读短信

读取命令从消息存储<mem1>向TE返回位置值为<index>的SMS消息。 如果消息的状态为“ REC UNREAD”,则存储中的状态将更改为
“ REC READ”。 查看当前短信

在这里插入图片描述
可以看到,此时SIM卡有两条未读的短信,接下来就读取短信
在这里插入图片描述
可以看到,这里将index为1的短信读取并删除了。

AT+CMGS 发送短信

Write命令将一条短消息从TE发送到网络(SMS-SUBMIT)。 调用写命令后,等待提示>,然后开始写消息。 之后,输入<CTRL +
Z>表示PDU的结尾并开始发送消息。 可以通过输入字符来取消发送。 单击“确定”确认堕胎,尽管不会发送该消息。
成功发送消息后,消息参考返回给TE。 该值可用于根据未经请求的传递状态报告结果代码来标识消息。

当设置好发送何种格式的短信后,如果设置的是Text格式,则

  • AT+CMGS="13344455666"
    在收到 “ > ” 标致后开始输入短信内容,Ctrl + Z (0x1a)发送短信。

如果是中文格式的短信,则

  • AT+CMGS=25
    25是处理完中文发送的短信内容后,除开中心号以外的字符数除以2,短信内存不同,该值也会不同。同样在接收到“ > ”后就可以输入短信了,Ctrl + Z 发送。

AT+CMMS发送更多消息(在CDMA网络中无效)

该命令控制SMS中继协议链接的连续性。 如果启用了此功能(并且当前使用的网络支持该功能),则在链接保持打开状态时,可以更快地发送多条消息。

  • AT+CMMS=<n>

<n>
0 —— 禁用功能
1 —— 保持启用状态,直到最新消息发送命令(AT + CMGS,AT + CMSS等)的响应与下一个发送命令之间的时间间隔超过1-5秒(确切的值取决于ME实现)为止, 然后,ME将关闭链接,并且TA开关自动回到0
2 —— 启用功能。 如果最后一条消息发送命令的响应与下一条发送命令的响应之间的时间超过1-5秒(确切的值取决于ME的实现),ME将关闭链接,但TA不会自动将切换回0。 。

AT+CMGW 写消息到内存

写入和执行命令将短消息从TE存储到内存存储器,然后返回已存储消息的存储器位置。 默认情况下,消息状态将设置为“存储的未发送”,但是参数也允许给出其他状态值。
输入文本的语法与AT + CMGS Write Command中指定的语法相同。

在这里插入图片描述

AT+CMSS 从存储发送消息

Write命令将消息存储中具有位置值的消息发送到网络。 如果为SMS-SUBMIT指定了新的收件人地址,则应使用它代替消息中存储的地址。

  • AT+CMSS=4

在这里插入图片描述
关于更多短信管理命令,请参考EC20 用户手册:
下载链接:https://pan.baidu.com/s/1M6itx4z-Sd8Xjg0WDXmbIQ
提取码:8gd6

在这里插入图片描述

这篇关于AT指令集 —— EC20 4G模块短信的收发与管理(短信服务命令)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212290

相关文章

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清