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

相关文章

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

4G/5G全网通! FiberHome烽火5G CPE Air路由器拆机评测

《4G/5G全网通!FiberHome烽火5GCPEAir路由器拆机评测》烽火5GCPE已经使用一段时间了,很多朋友想要知道这款路由器怎么样?今天我们就来看看拆机测评... 我想大家都听说过、了解过5G。 5G是具有高速率、低时延和大连接特点的新一代宽带移动通信技术,5G通讯设施是实现人机物互联的网络基础设

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构