短消息 ====== :: >作者:汪远 更新时间:2020年8月15日 关键字:SMS 短信 # AT指令 ## 选择短消息服务 : AT+CSMS - 语法 ======== ================= ================================= 命令类型 语法 返回 ======== ================= ================================= 设置命令 AT+CSMS= +CSMS: , , OK 命令 AT+CSMS? +CSMS:,,, OK 测试命令 AT+CSMS=? +CSMS:(取值列表) OK ======== ================= ================================= - 参数 +------------+------------+------------+-------------------------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +============+============+============+===============================+ | | 短消 | 0 | GSM03.40和03 | | | 息服务级别 | | .41(SMS的AT指令语法与GSM07.05 | | | | | Phase | | | | | 2中的4.7.0版本兼容 | | | | | ;支持不需要新指令语法的Phase | | | | | 2+特性(比如:使用Phase | | | | | 2+新编码方案的消息路由)) | +------------+------------+------------+-------------------------------+ | | | 1 | GSM03.40 和 03.41(SMS 的 AT | | | | | 指令语法与 GSM07.05 Phase | | | | | 2+版本兼容) | +------------+------------+------------+-------------------------------+ | | | 128 | pdu模 | | | | | 式操作向前兼容于与phase2不一 | | | | | 致的版本。此时会认为短信pdu里 | | | | | 不包含短信中心号(暂不支持) | +------------+------------+------------+-------------------------------+ | | SMS-MO | 0 | 不支持 | | | (发短信) | | | +------------+------------+------------+-------------------------------+ | | | 1 | 支持 | +------------+------------+------------+-------------------------------+ | | SMS-MT | 0 | 不支持 | | | (收短信) | | | +------------+------------+------------+-------------------------------+ | | | 1 | 支持 | +------------+------------+------------+-------------------------------+ | | 小 | 0 | 不支持 | | | 区广播消息 | | | +------------+------------+------------+-------------------------------+ | | | 1 | 支持 | +------------+------------+------------+-------------------------------+ ## 短消息优先存储区选择:AT+CPMS 本命令可设置用于读取、存储等操作的存储器,包括, 和。 \* 语法 +-----------------------------------+-------------------+---------------+ | 命令类型 | 语法 | 返回 | +===================================+===================+===============+ | 设置命令 | AT+CPMS=[ | +CPM | | | ,[,]] | S:,, | | | | ,,, | | | | OK | +-----------------------------------+-------------------+---------------+ | 命令 | AT+CPMS? | +CPMS:, | | | | ,,< | | | | used2>,,,, | | | | OK | +-----------------------------------+-------------------+---------------+ | 测试命令 | AT+CPMS=? | +CPM | | | | S:(取值 | | | | 列表),( | | | | 取值列表),(取值列表) | | | | OK | +-----------------------------------+-------------------+---------------+ - 参数 +----------------------+----------------------+------+--------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +======================+======================+======+==============+ | | 读取和删除消息时 | “SM” | SM即SIM 卡 | | | 使用的存储器,涉及以 | | | | | 下3个AT指令:AT+CMGL | | | | | AT+CMGR AT+CMGD | | | +----------------------+----------------------+------+--------------+ | | | “ME” | ME为模块 | +----------------------+----------------------+------+--------------+ | | 写、存储和发送消息时 | “SM” | SM即SIM 卡 | | | 使用的存储器,涉及以 | | | | | 下2个AT指令:AT+CMSS | | | | | 和AT+CMGW | | | +----------------------+----------------------+------+--------------+ | | | “ME” | ME为模块 | +----------------------+----------------------+------+--------------+ | | 若没有建立到 | “SM” | SM即SIM 卡 | | | TE的路由,则将接收 | | | | | 的消息存储在该存储器 | | | +----------------------+----------------------+------+--------------+ | | | “ME” | ME为模块 | +----------------------+----------------------+------+--------------+ | < | | - | 整数型 | | used1> | 中当前存储消息的数量 | | | +----------------------+----------------------+------+--------------+ | | - | 整数型 | | al1> | 中可存储的消息的总量 | | | +----------------------+----------------------+------+--------------+ - 例子 +----------+---------------------+-------------------------------------+ | 命 | 实例 | 解释和说明 | | 令(→)/ | | | | 返 | | | | 回(←) | | | +==========+=====================+=====================================+ | → | AT+CPMS=? | | +----------+---------------------+-------------------------------------+ | ← | +CPMS: | | | | (“SM”,“ME”),(“SM | | | | ”,“ME”),(“SM”,“ME”) | | | | OK | | +----------+---------------------+-------------------------------------+ | → | AT+CPMS? | 查询当前优选存储区类型 | +----------+---------------------+-------------------------------------+ | ← | +CPMS: | 注 | | | “SM”,8,50, | :目前仅支持”SM”存储类型。请使用: | | | “SM”,8,50,“SM”,8,50 | AT+CPMS=”SM”,”SM”,”SM” | | | OK | 设置短信存储类型。 | +----------+---------------------+-------------------------------------+ 短消息中心地址:AT+CSCA ----------------------- 该指令适用于PDU格式和TEXT格式,使用设置指令,可更新级SMSC(Short Message Service Center)地址。通过该地址,可以发送移动终端SMS,TEXT模式下,发送命令和写命令都可使用该项设置;PDU模式下,发送和设置指令也可使用该项设置,但条件是PDU编码后的SMSC地址长度等于0。这里必须说明的是虽然用户可以自行设置短消息的服务中心地址,但不能随心所欲,否则短消息发送不出去,因此在发送短消息之前首先必须搞清楚SIM卡所属的短消息服务中心地址。 - 语法 ======== ========================= ====================== 命令类型 语法 返回和说明 ======== ========================= ====================== 设置命令 AT+CSCA=[,, OK 测试命令 AT+CSCA=? OK ======== ========================= ====================== - 参数 +---+-----------+---+-----------------------------------------------------+ | 参 | 定义 | 取 | 对取值的说明 | | 数 | | 值 | | +===+===========+===+=====================================================+ | | 短 | - | 字符型;B | | | 信中心地 | | CD数字(或GSM缺省字母字符)需要转换为字符;格式由指定 | | | 址(Short | | | | | Message | | | | | Center | | | | | Address) | | | +---+-----------+---+-----------------------------------------------------+ | | 短信中 | - | 8 位整数型(缺省值请参考) 129 | | | 心地址格 | | ISDN/电话编号方式设计,国家的/国际的未知。 145 | | | 式(Type | | ISDN/电话编号方式设计,国际号码。 161 | | | of sca) | | ISDN/电话编号方式设计,国家的号码。 128~255 | | | | | 其他值查阅 GSM 04.08 章节 10.5.4.7 | +---+-----------+---+-----------------------------------------------------+ - 例子 +----------------------+----------------------+----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +======================+======================+======================+ | → | AT+CSCA= | 对一个联通的S | | | “+8613010314500”,145 | IM卡设置短信中心号码 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+CSCA? | 查询 | | | | 下短信中心号码的设置 | +----------------------+----------------------+----------------------+ | ← | +CSCA: | 已经设置成功 | | | “+8613010314500”,145 | | | | OK | | +----------------------+----------------------+----------------------+ ## 短消息格式:AT+CMGF 设置指令用于指定短消息的输入和发送的格式,即告诉TA输入输出的消息格式是PDU格式还是TEXT格式。 - 语法 ======== ================ ========================== 命令类型 语法 返回和说明 ======== ================ ========================== 设置命令 AT+CMGF=[] OK 查询命令 AT+CMGF? +CMGF: OK 测试命令 AT+CMGF=? +CMGF: (取值列表) OK ======== ================ ========================== - 参数 +--------+-------------------------+------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +========+=========================+======+=================+ | | 显示消息发送、列表、读 | 0 | PDU模式,默认值 | | | 和写指令以及接收到消息 | | | | | 时的主动汇报使用的格式 | | | +--------+-------------------------+------+-----------------+ | | | 1 | TEXT模式 | +--------+-------------------------+------+-----------------+ - 例子 ==================== =========== ================= =============== 命令(→)/ 返回(←) 实例 解释和说明 对取值的说明 ==================== =========== ================= =============== → AT+CMGF? 查询当前模式 PDU模式,默认值 ← +CMGF: 0 OK 当前模式是PDU模式 TEXT模式 ==================== =========== ================= =============== ## 设置短信TEXT模式参数:AT+CSMP 文本模式下(即AT+CMGF=1),当向网络侧发送短消息或将短消息存放在存储器中时,使用该设置命令可选择需要的附加参数取值。除此之外,设置命令还可用于设置从SMSC 接收到该短消息时算起的有效期(的取值范围为0… 255)或定义有效期终止的绝对时间(为字符串时)。 - 语法 +----------+----------------------------+----------------------------+ | 命令类型 | 语法 | 返回 | +==========+============================+============================+ | 设置命令 | AT+CSMP=[[,[,[,]]]] | | +----------+----------------------------+----------------------------+ | 查询命令 | AT+CSMP? | + | | | | CSMP:,,, | | | | OK | +----------+----------------------------+----------------------------+ | 测试命令 | AT+CSMP=? | +CSMP: | | | | (取值列表),(取值列表), | | | | (取值列表), | | | | (取值列表) OK | +----------+----------------------------+----------------------------+ - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 短 | 17 | 对 | | | 信首字节(First | ,21,33,37,49,53 | 字节的具体 | | | Octet) | | 描述如下(以SMS | | | | | -SUBMIT为例): | | | | | b7 b6 b5 b4 b3 | | | | | b2 b1 b0 RP | | | | | UDHI SRR VPF RD | | | | | MTI | | | | | MTI:消息类型 | | | | | b1=0&b0=0 | | | | | 表示SMS-DELIVER | | | | | b1=0&b0=1 | | | | | 表示SMS-SUBMIT | | | | | 其他消息类型 | | | | | 请参考GSM03.40 | | | | | VPF:定义短信 | | | | | 有效时间的格式 | | | | | b4=1 | | | | | &b3=0:Relative | | | | | for | | | | | mat,此时是 | | | | | 1个字节的整数型 | | | | | b4=1 | | | | | &b3=1:Absolute | | | | | for | | | | | mat,此时是 | | | | | 7个字节的整数型 | | | | | SRR:Status | | | | | Report | | | | | Requ | | | | | est,设置是否需 | | | | | 要短信状态报告 | | | | | UDHI:User Data | | | | | Header | | | | | Indi | | | | | cator,指示User | | | | | Data单元是 | | | | | 否有一个header | | | | | RP:Reply | | | | | Path,回复路径 | | | | | RD:Reject | | | | | Duplicat | | | | | e,拒绝重复短信 | +-----------------+-----------------+-----------------+-----------------+ | | 短 | | 取值由 | | | 信有效期(Valid | | 字段的VPF决定: | | | Period) | | 如果V | | | | | PF=10(Binary), | | | | | 则为相对模式, | | | | | 与短信有效时间 | | | | | 的对应关系如下: | | | | | 0-143(00 to | | | | | 8F): ( vp + 1) | | | | | x5分钟 | | | | | 144-167(90 to | | | | | A7): 12小时 + ( | | | | | (vp – 143 | | | | | )×30分钟 | | | | | 168-196(A8 to | | | | | C4): ( vp – 166 | | | | | ) x 1 天 | | | | | 197-255(C5 to | | | | | FF): ( vp – 192 | | | | | ) x 1 星期 | | | | | 如果VPF=1 | | | | | 1(Binary),则为 | | | | | 绝对模式,是7个 | | | | | 字节的字符型, | | | | | 表示短信有效期 | | | | | 到期的时间点。 | +-----------------+-----------------+-----------------+-----------------+ | | TP-协议-标识 | 0 | 整数型,具体 | | | | | 请参考GSM03.40 | +-----------------+-----------------+-----------------+-----------------+ | | 短 | | 整数型, | | | 信内容编码方案 | | 具体请参考GSM03 | | | | | .38。一般情况下 | | | | | 0-7bit GSM | | | | | Default 4-8bit | | | | | Data 8-UCS2 | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | → | AT+CSMP=17,11,0,0 | 设置TEXT模 | | | | 式短信发送的各参数: | | | | =17( | | | | 缺省),表示MTI=01( | | | | binary)=SMS-SUBMIT, | | | | 并且VPF=10(binary)= | | | | Relative format | | | | | | | | =11,表示有效时间为( | | | | 11+1)x5分钟=1个小时 | | | | = | | | | 0,表示编码格式是7bit | | | | GSM Default | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ ## 控制TEXT模式下短信头信息显示:AT+CSDH 设置命令可控制是否在文本模式下的结果码中显示详细的头信息. - 语法 ======== ================ =============== 命令类型 语法 返回 ======== ================ =============== 设置命令 AT+CSDH=[] OK 查询命令 AT+CSDH? +CSDH: OK 测试命令 AT+CSDH=? +CSDH: OK ======== ================ =============== - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 是否显示头信息 | 0 | 对于SMS-DELIVER | | | | | 和 | | | | | SMS-SUBMIT | | | | | 短信,不在+CMT, | | | | | +CMGL, | | | | | +C | | | | | MGR结果码中显示 | | | | | +CSCA和+CSMP指 | | | | | 令设置的参数(< | | | | | sca>、、 | | | | | | | | | | 、) | | | | | ,也不显示;对于+CMGR | | | | | 指令结果码中的 | | | | | SM | | | | | S-COMMAND,不显 | | | | | 示、 | | | | | < | | | | | da>、 | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 在结果码 | | | | | 中显示这些取值 | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------+-----------------+-----------------+-----------------+ | 命令(→)/ | 实例 | 解释和说明 | 对取值的说明 | | 返回(←) | | | | +=================+=================+=================+=================+ | → | AT+CSDH? | 查询 | 对于SMS-DELIVER | | | | 是否显示头信息 | 和 | | | | | SMS-SUBMIT | | | | | 短信,不在+CMT, | | | | | +CMGL, | | | | | +C | | | | | MGR结果码中显示 | | | | | +CSCA和+CSMP指 | | | | | 令设置的参数(< | | | | | sca>、、 | | | | | | | | | | 、) | | | | | ,也不显示;对于+CMGR | | | | | 指令结果码中的 | | | | | SM | | | | | S-COMMAND,不显 | | | | | 示、 | | | | | < | | | | | da>、 | +-----------------+-----------------+-----------------+-----------------+ | ← | +CSDH: 0 OK | 查询结果为:不 | 在结果码 | | | | 显示相关头信息 | 中显示这些取值 | +-----------------+-----------------+-----------------+-----------------+ | → | AT+CMGR=8 | 查 | | | | | 询位置为8的短信 | | | | | ,内容为“good!” | | +-----------------+-----------------+-----------------+-----------------+ | ← | +CMGR: “REC | 查询结果不显示< | | | | R | tooa>,,,,,< | | | | ***56”,,“12/08/ | tosca>, | | | | 08,10:43:04+32” | | | | | Good! OK | | | +-----------------+-----------------+-----------------+-----------------+ | → | AT | 设 | | | | +CNMI=2,2,0,0,0 | 置短信自动内容 | | | | | 直接上报给TE, | | | | | 不缓存(将+CNM | | | | | I的第二个参数设置为2即可) | | +-----------------+-----------------+-----------------+-----------------+ | ← | OK | | | +-----------------+-----------------+-----------------+-----------------+ | ←(URC) | +CMT: | 发送一个 | | | | “+86131*** | 内容为Report的 | | | | ***56”,,“12/08/ | 短信给模块,上 | | | | 08,11:09:23+32” | 报内容不显示 | | | | | 和、 | | | | | | | +-----------------+-----------------+-----------------+-----------------+ | → | AT+CSDH=1 | 设置= | | | | | 1,即显示头信息 | | +-----------------+-----------------+-----------------+-----------------+ | ← | OK | | | +-----------------+-----------------+-----------------+-----------------+ | → | AT+CMGR=8 | 仍旧 | | | | | 查询位置8的短信 | | +-----------------+-----------------+-----------------+-----------------+ | ← | +CMGR: “REC | 查询结果显示< | | | | UNREAD” | tooa>,,,,,< | | | | 6”,,“12/08/08,1 | tosca>, | | | | 0:43:04+32”,145 | | | | | ,17,0,0,“+86138 | | | | | 00210500”,145,5 | | | | | Good! OK | | | +-----------------+-----------------+-----------------+-----------------+ | ←(URC) | +CMT: | 发送一 | | | | “+86131******5 | 个内容为weathe | | | | 6”,,“12/08/08,1 | r的短信给模块, | | | | 1:05:45+32”,145 | 上报内容显示 | | | | 00210500”,145,7 | 和、 | | | | weather | | | +-----------------+-----------------+-----------------+-----------------+ ## 新消息指示:AT+CNMI 该指令用于PDU格式和TEXT格式,当TE处于在用状态时(如:DTR信号处于“ON”状态),使用设置指令,可设置新消息如何从网络侧发送到TE。若 TE 处于待用状态(如:DTR信号处于“OFF”状态),消息接收流程应该按照GSM 03.38 的规定。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | AT+ | OK | | | CNMI=[[,[,< | | | | bm>[,[,]]]]] | | +-----------------------+-----------------------+-----------------------+ | 查询命令 | AT+CNMI? | +CNMI: | | | | ,,,, | | | | OK | +-----------------------+-----------------------+-----------------------+ | 测试命令 | AT+CNMI=? | +CNMI: | | | | (取值列表),( | | | | 取值列表),(取 | | | | 值列表),(取值 | | | | 列表),(取值列表) | | | | OK | +-----------------------+-----------------------+-----------------------+ - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | TA给T | 0 | 缓冲TA中的非 | | | E传送短信的模式 | | 请求结果码;若 | | | | | TA结果码缓冲器 | | | | | 已满,结果码指 | | | | | 示可以缓冲存储 | | | | | 在其他存储空间 | | | | | 或者把最旧的非 | | | | | 请求结果码指示 | | | | | 丢弃,替换为新 | | | | | 接收到的指示。 | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 当TA-TE间的链 | | | | | 路被占用(比如: | | | | | 在线数据模式下 | | | | | ),丢弃结果码指 | | | | | 示,并拒绝新接 | | | | | 收消息的非请求 | | | | | 结果码。否则, | | | | | 直接转发给TE。 | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 当TA-TE间的 | | | | | 链路被占用(比如 | | | | | :在线数据模式 | | | | | 下),缓冲TA中的 | | | | | 非请求结果码; | | | | | 当链路释放后, | | | | | 把所有结果码发 | | | | | 送给TE。否则, | | | | | 直接转发给TE。 | +-----------------+-----------------+-----------------+-----------------+ | | | 3 | 在TA | | | | | 处于数据 | | | | | 模式的情况下, | | | | | 使用特定的TA-TE | | | | | 连接技 | | | | | 术将结果码和数 | | | | | 据同时传给TE。 | +-----------------+-----------------+-----------------+-----------------+ | | 新 | 0 | 没有SMS-DELIVE | | | 短信上报的方式 | | R的指示发送给TE | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 若SMS-DELIV | | | | | ER存储在ME/TA, | | | | | 存储位置靠非请 | | | | | 求结果码+CMTI: | | | | | , | | | | | 来提示给TE。 | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | SMS-DELI | | | | | VER消息(类别2的 | | | | | 消息和位于消息 | | | | | 等待指示组中的 | | | | | 消息(存储消息) | | | | | )直接发送到TE。 | | | | | 使用如下指令的 | | | | | 非请求结果码: | | | | | +CMT:[ | | | | | ], | | | | | (启用PDU模式)或 | | | | | 者+CMT:,[ | | | | | ], | | | | | ,[, | | | | | ,,,, | | | | | ,]< | | | | | LF>(启用T | | | | | EXT模式。斜体部 | | | | | 分是否显示由+CS | | | | | DH设置命令决定) | | | | | 说明 | | | | | :若AT指令接口 | | | | | 作为唯一的显示 | | | | | 设备,ME必须支 | | | | | 持类别0消息和位 | | | | | 于消息等待指示 | | | | | 组中的消息的存 | | | | | 储(丢弃消息)。 | +-----------------+-----------------+-----------------+-----------------+ | | | 3 | 通过使用< | | | | | mt>=2定义的非请 | | | | | 求结果码,类别3 | | | | | 的SMS-DELIVER消 | | | | | 息直可接发送到 | | | | | TE。其他数据编 | | | | | 码方案下的消息 | | | | | 显示结果均遵循 | | | | | =1的定义。 | +-----------------+-----------------+-----------------+-----------------+ | | 小区广播短 | 0 | 无 CBM | | | 消息的上报方式 | | 指示发送到 TE | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 收到的 | | | | | CBM使用如下格式 | | | | | 直接发送到TE: | | | | | +CBM: | | | | | (启用PDU | | | | | 模式)或者 | | | | | +CBM: | | | | | ,,,,(启用TEXT模式) | +-----------------+-----------------+-----------------+-----------------+ | | 短信状 | 0 | 无SMS-STATUS-RE | | | 态报告上报方式 | | PORTS发送到TE。 | +-----------------+-----------------+-----------------+-----------------+ \| \| \| 1 \| SMS-STATUS-REPORT消息使用如下格式直接发送到TE: +CDS:(启用PDU模式)或者 +CDS:,,[],[],, .. raw:: html
,(启用TEXT模式) 注: .. raw:: html
,请参考+CMGR \| \| \| \| 0 \| 当为1~3时,这条指令所定义的TA缓存中的结果码被发送到TE(在发送之前,OK应该被接收到) \| \| \| \| 1 \| 当为1~3时,将清除该指令中定义的TA对非请求结果码的缓冲 \| - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | → | AT+CNMI=? | 查询参数范围 | +-----------------------+-----------------------+-----------------------+ | ← | +CNMI: | 1802模块查询结果 | | | (0-3),(0 | | | | -3),(0-3),(0-1),(0-1) | | | | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CNMI=2,1 | 查询当前各参数设置 | +-----------------------+-----------------------+-----------------------+ | ← | +CNMI: 2,1,0,0,0 OK | | +-----------------------+-----------------------+-----------------------+ | ←(URC) | +CMTI: “SM”,1 | 此时收到一个短 | | | | 信,缓存在中,只用+C | | | | MTI上报新短信位置索引 | +-----------------------+-----------------------+-----------------------+ | → | AT+CNMI=2,2 | 设置=2,即新 | | | 或AT+CNMI=2,2,0,0,0 | 短信不缓存,直接上报 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMS=1 | 必须把 | | | | +CSMS的第一个参数设置 | | | | 为1,才支持+CNMA命令 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF? | 查询当前短信模式 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGF: 0 OK | 是PDU模式 | +-----------------------+-----------------------+-----------------------+ | ←(URC) | +CMT: ,24 | 此时收到一个PD | | | 089168310 | U短信,具体分析如下: | | | 8200105F0040D91683129 | +CMT: ,24 | | | 634152F60 | 24-PUD长度,短 | | | 0002180804184422304F7 | 信中心号码不算在PDU内 | | | 349B0D | 08- Length of | | | | SCA,短信 | | | | 中心地址长度(按字节 | | | | 数计算,包括91在内) | | | | 91- | | | | 短信中心地址的TON/NPI | | | | 683108200105F0- | | | | 短信中心地 | | | | 址,需要两两反转,反 | | | | 转后是8613800210500。 | | | | 04- First | | | | Octet,PDU的首字节 | | | | 0D-源 | | | | 地址长度(号码长度) | | | | 91683129634152F6- | | | | 源 | | | | 地址。需要两两反转, | | | | 反转后是8613923614256 | | | | 00-PID(Protocol | | | | Identifier) | | | | 00-DCS(Data Coding | | | | Scheme),0表示7BIT | | | | GSM DEFAULT | | | | 21808041844223- | | | | SCTS(SM Center Time | | | | Stamp),短 | | | | 信中心时间戳,表示SC | | | | 收到短信的时间为:12年 | | | | 8月8日14:48:24,+8GMT | | | | 04- 用户数据的长度 | | | | F7349B0D- 7BIT GSM | | | | DEFAULT编码的will | +-----------------------+-----------------------+-----------------------+ | → | AT+CNMA | 此时需要+CNMA确认 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | ←(URC) | +CMT: | 收到一 | | | “+86131***** | 个新短信,是TEXT模式 | | | *56”,,“12/08/08,11:05 | | | | :45+32”,145 | | | | ,17,0,0,“+86138002105 | | | | 00”,145,7 Will-go | | +-----------------------+-----------------------+-----------------------+ | → | AT+CNMA | 此时需要+CNMA确认 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | ## 新短消息确认:AT+CNMA 使用执行命令,可确认是否正确接收新消息(SMS-DELIVER 或SMS-STATUS-REPORT),该新消息是由 MT 直接发送到 TE 而不缓存。 | 在同时满足2个条件的情况下,需要通过AT+CNMA给出短信确认: →通过 AT+CSMS=1,将设为1; →通过AT+CNMI命令将设为2或者将设置为1; | 在满足上述2个条件后,TE如果在收到短信后没有通过AT+CNMA给MT确认,CNMI的参数和会被重置为0,MT也不再给TE发短信。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 执行命令 | TE | OK | | | XT模式(AT+CMGF=1): | | | | AT+CNMA | | +-----------------------+-----------------------+-----------------------+ | | P | OK | | | DU模式(AT+CMGF=0): | | | | AT+CNMA[=[,[PDUis | | | | given]]] | | +-----------------------+-----------------------+-----------------------+ | 测试命令 | AT+CNMA=? | OK | +-----------------------+-----------------------+-----------------------+ +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | PDU模式下 | 0 | 该指令 | | | 确认短信的方式 | | 与文本模式定义 | | | | | 的指令执行类似 | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 发送 | | | | | RP | | | | | -ACK(或正确接收 | | | | | 到的缓冲结果码) | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 发送 | | | | | RP-ERROR(若 PDU | | | | | 未给定,ME/TA | | | | | 将发送 GSM | | | | | 03.40 TP-FCS | | | | | 取值设定为 | | | | | “FF”的 | | | | | SMS | | | | | -DELIVER-REPORT | | | | | 消息(非 | | | | | 请求错误原因)) | +-----------------+-----------------+-----------------+-----------------+ ## 发送短信:AT+CMGS 使用设置指令,可将 SMS(SMS-SUBMIT)从TE发送到网络侧。发送成功后,消息参考值将返回给TE。 \* 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | 文本模式 | 发送成功则返回: | | | (AT+CMGF=1)情况下: | +CMGS: OK | | | AT+CMGS= | 说明:[,]text | RL-Z>即0x1A是发送, | SC>即0x1B是终止发送。 | +-----------------------+-----------------------+-----------------------+ | | | 发送失败则返回: +CMS | | | | ERROR: | +-----------------------+-----------------------+-----------------------+ | | PDU模式 | 发送成功,返回: | | | (AT+CMGF=0)情况下: | +CMGS: OK | | | AT | | | | +CMGS=PDU | | | | to send | | +-----------------------+-----------------------+-----------------------+ | | | 发送失败则返回: +CMS | | | | ERROR: | +-----------------------+-----------------------+-----------------------+ | 测试命令 | AT+CMGS=? | OK | +-----------------------+-----------------------+-----------------------+ - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 目的地 | - | GSM 03.40 | | | 址(Destination | | TP-Dest | | | Address) | | ination-Address | | | | | 中 | | | | | “地址-取值”字 | | | | | 段,字符型;将 | | | | | BCD 数值(或缺省 | | | | | GSM | | | | | 字母格式的字符) | | | | | 转 | | | | | 换为当前选择的 | | | | | TE | | | | | 字符集 | | | | | 中的字符(请参考 | | | | | TS 07.07 | | | | | 中的+CSCS | | | | | 指令);地址类 | | | | | 型由定义 | +-----------------+-----------------+-----------------+-----------------+ | | 目的 | - | 整数型的 GSM | | | 地址类型(Type | | 04.11 | | | of ) | | TP-Dest | | | | | ination-Address | | | | | 中的 8 | | | | | 位“类型-地 | | | | | 址”字段(当 | | | | | 的首字符为+(IRA | | | | | 43)时, | | | | | 缺省值为 | | | | | 14 | | | | | 5;否则缺省值为 | | | | | 129) | +-----------------+-----------------+-----------------+-----------------+ | | PDU短信长度 | - | 整 | | | | | 数型。该长度不 | | | | | 将短信中心号码 | | | | | 的长度计算在内 | +-----------------+-----------------+-----------------+-----------------+ | | 消息参考(Mes | 0~255 | 整数型的 GSM | | | sageReference) | | 03.40 | | | | | TP-Me | | | | | ssage-Reference | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | 发 | | | | 送TEXT模式英文短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMP? | 查询当 | | | | 前的TEXT模式短信参数 | +-----------------------+-----------------------+-----------------------+ | ← | +CSMP: 17,11,0,0 OK | 当前的=0 (GSM) | +-----------------------+-----------------------+-----------------------+ | | AT+CSCS? | | +-----------------------+-----------------------+-----------------------+ | | +CSCS: “IRA” OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGS=”139****6785” | 发 | | | >HI! | 英文短信给测试手机。< | | | | ctrl-Z>是十六进制的1A | | | | 注:139****678 | | | | 5是发送目的号码,请按 | | | | 照实际填写,不要照抄 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGS: 108 OK | 发送成功,=108 | +-----------------------+-----------------------+-----------------------+ | 发 | | | | 送TEXT模式中文短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMP? | | +-----------------------+-----------------------+-----------------------+ | ← | +CSMP: 17,167,0,0 OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMP=17,167,0,8 | 修改最后一个参数=8 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGS=”139****6785” | 注:139****678 | | | >611F8C22 | 5是发送目的号码,请按 | | | | 照实际填写,不要照抄 | | | | 611 | | | | F8C22,是16进制格式。 | | | | 即:0x610x1F0x8C0x22 | | | | 是十六进制的1A | +-----------------------+-----------------------+-----------------------+ | ← | +CMGS: 73 OK | 发送成功 | +-----------------------+-----------------------+-----------------------+ | 发 | | | | 送PDU格式的中文短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=0 | 设置成PDU模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGS=19 | 19 | | | >0011100D91683161450 | -是PDU字符串的长度(短 | | | 179F900080004611F8C22 | 信中心单元不包括在内) | | | [CTRL+Z] | 00-表示短信中心的长度 | | | | 为0,即PUD字符串中将 | | | | SCA删去,发送短信的时 | | | | 候直接从SIM卡中取SCA | | | | 。该00不计入PDU长度中 | | | | 11- PDU短信首字节 10- | | | | TP-MR,benchmark 0D- | | | | 目标地址(DA)长度 | | | | 91683161450179F9- | | | | 目 | | | | 标地址(收信方号码) | | | | 00-Protocol | | | | Identifier (PID) 08- | | | | Data coding scheme | | | | (DCS),8表示UCS2 | | | | 00-Valid Period (VP) | | | | 04- User Data的长度 | | | | 611F8C22- User | | | | Data,发送的短信内容 | | | | (本例为中文“感谢”) | +-----------------------+-----------------------+-----------------------+ | ← | +CMGS: 110 OK | 发送成功 | +-----------------------+-----------------------+-----------------------+ ## 把消息写入存储器:AT+CMGW 使用设置指令,可将SMS(SMS-DELIVER 或 SMS-SUBMIT)从TE发送到存储器,并返回已存储消息的存储位置参数。除非指定其他参数,否则,该消息的状态将被设置为“存储未发送”。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | 命令类型 | 语法 | 返回和说明 | +-----------------------+-----------------------+-----------------------+ | 设置命令 | TEXT | 成功,返回: +CMGW: | | | 模式下(AT+CMGF=1): | OK | | | AT+CMGW | | | | [=[,[,<]]]text | | | | is | | | | entered | | +-----------------------+-----------------------+-----------------------+ | | | 失败则返回: +CMS | | | | ERROR: | +-----------------------+-----------------------+-----------------------+ | | PDU | 成功,返回: +CMGW: | | | 模式下(AT+CMGF=0): | OK | | | AT+CMGW= | | | | [,] | | | | PDU is | | | | given | | +-----------------------+-----------------------+-----------------------+ | | | 失败则返回: +CMS | | | | ERROR: | +-----------------------+-----------------------+-----------------------+ | 测试命令 | AT+CMGW=? | 返回: OK | +-----------------------+-----------------------+-----------------------+ - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 目的地 | - | GSM 03.40 | | | 址(Destination | | TP-Dest | | | Address) | | ination-Address | | | | | 中 | | | | | “地址-取值”字 | | | | | 段,字符型;将 | | | | | BCD 数值(或缺省 | | | | | GSM | | | | | 字母格式的字符) | | | | | 转 | | | | | 换为当前选择的 | | | | | TE | | | | | 字符集 | | | | | 中的字符(请参考 | | | | | TS 07.07 | | | | | 中的+CSCS | | | | | 指令);地址类 | | | | | 型由定义 | +-----------------+-----------------+-----------------+-----------------+ | | 目的 | - | 整数型的 GSM | | | 地址类型(Type | | 04.11 | | | of ) | | TP-Dest | | | | | ination-Address | | | | | 中的 8 | | | | | 位“类型-地 | | | | | 址”字段(当 | | | | | 的首字符为+(IRA | | | | | 43)时, | | | | | 缺省值为 | | | | | 14 | | | | | 5;否则缺省值为 | | | | | 129) | +-----------------+-----------------+-----------------+-----------------+ | | 源地址(Origi | - | GSM 03.40 | | | natingAddress) | | TP-Orig | | | | | inating-Address | | | | | 中 | | | | | “地址-取值”字 | | | | | 段,字符型;将 | | | | | BCD 数值(或缺省 | | | | | GSM | | | | | 字母格式的字符) | | | | | 转 | | | | | 换为当前选择的 | | | | | TE | | | | | 字符集 | | | | | 中的字符(请参考 | | | | | TS 07.07 | | | | | 中的+CSCS | | | | | 指令);地址类 | | | | | 型由定义 | +-----------------+-----------------+-----------------+-----------------+ | | 源 | - | 整数型的 GSM | | | 地址类型(Type | | 04.11 | | | of ) | | TP-Orig | | | | | inating-Address | | | | | 中的 8 | | | | | 位“类型-地 | | | | | 址”字段(当 | | | | | 的首字符为+(IRA | | | | | 43)时, | | | | | 缺省值为 | | | | | 14 | | | | | 5;否则缺省值为 | | | | | 129) | +-----------------+-----------------+-----------------+-----------------+ | | PDU短信长度 | - | 整 | | | | | 数型。该长度不 | | | | | 将短信中心号码 | | | | | 的长度计算在内 | +-----------------+-----------------+-----------------+-----------------+ | | 短信状态 | REC NREAD | 已接收的未 | | | | | 读消息(TEXT模式 | | | | | 下,即+CMGF=1) | +-----------------+-----------------+-----------------+-----------------+ | | | REC READ | 已接收的已 | | | | | 读消息(TEXT模式 | | | | | 下,即+CMGF=1) | +-----------------+-----------------+-----------------+-----------------+ | | | STO UNSENT | 存储未发 | | | | | 送消息(TEXT模式 | | | | | 下,即+CMGF=1) | +-----------------+-----------------+-----------------+-----------------+ | | | STO SENT | 存储已发 | | | | | 送消息(TEXT模式 | | | | | 下,即+CMGF=1) | +-----------------+-----------------+-----------------+-----------------+ | | | 0 | 已接收的未 | | | | | 读消息(PDU模式 | | | | | 下,即+CMGF=0) | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 已接收的已 | | | | | 读消息(PDU模式 | | | | | 下,即+CMGF=0) | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 存储未发 | | | | | 送消息(PDU模式 | | | | | 下,即+CMGF=0) | +-----------------+-----------------+-----------------+-----------------+ | | | 3 | 存储已发 | | | | | 送消息(PDU模式 | | | | | 下,即+CMGF=0) | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | 存储 | | | | 一个TEXT短信(英文): | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”GSM” | 或AT+CSCS=”IRA” | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMP=17,167,0,0 | | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGW=”139****6785” | | | | >HI! | | +-----------------------+-----------------------+-----------------------+ | ← | +CMGW: 6 OK | 返回 | | | | 的index=6,表示该短信 | | | | 在存储区的位置是第6个 | +-----------------------+-----------------------+-----------------------+ | 存储 | | | | 一个TEXT短信(中文): | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”UCS2” | 设置AT命令中 | | | | 字符的编码格式为UCS2 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSMP=17,167,0,8 | Dcs=8,表示短信 | | | | 存放的格式为UCS2编码 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGW=”003 | D | | | 00310030003000380036” | A=10086(UCS2编码格式) | | | >611F8C22 | 内容为 | | | | “感谢”(UCS2编码格式) | +-----------------------+-----------------------+-----------------------+ | ← | +CMGW: 7 OK | 该 | | | | 短信存在index=7的位置 | +-----------------------+-----------------------+-----------------------+ | 存储一个PDU短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=0 | 设置为PDU格式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGW=19 | 短信内容为“感谢” | | | >0011100D91683161450 | | | | 179F900080004611F8C22 | | | | [CTRL+Z] | | +-----------------------+-----------------------+-----------------------+ | ← | +CMGW: 8 OK | 该 | | | | 短信存在index=8的位置 | +-----------------------+-----------------------+-----------------------+ ## 从存储器发送短信:AT+CMSS 使用设置指令,可将消息存储器中,位置取值参数为的消息发送到网络侧(SMS-SUBMIT 或 SMS-COMMAND)。若给定 SMS-SUBMIT 消息的新接收地址参数,应使用该参数,而不能使用已存储消息的参数。发送成功后,参考值 将返回给 TE。 - 语法 ======== =============================== ============= 命令类型 语法 返回和说明 ======== =============================== ============= 设置命令 AT+CMSS=[,[,]] +CMSS: OK 测试命令 AT+CMSS=? OK ======== =============================== ============= - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 待发送短信 | - | 整 | | | 在存储器的地址 | | 数型;关联存储 | | | | | 器支持的地址编 | | | | | 号范围内的取值 | +-----------------+-----------------+-----------------+-----------------+ | | 目的地 | - | GSM 03.40 | | | 址(Destination | | TP-Dest | | | Address) | | ination-Address | | | | | 中 | | | | | “地址-取值”字 | | | | | 段,字符型;将 | | | | | BCD 数值(或缺省 | | | | | GSM | | | | | 字母格式的字符) | | | | | 转 | | | | | 换为当前选择的 | | | | | TE | | | | | 字符集 | | | | | 中的字符(请参考 | | | | | TS 07.07 | | | | | 中的+CSCS | | | | | 指令);地址类 | | | | | 型由定义 | +-----------------+-----------------+-----------------+-----------------+ | | 目的 | - | 整数型的 GSM | | | 地址类型(Type | | 04.11 | | | of ) | | TP-Dest | | | | | ination-Address | | | | | 中的 8 | | | | | 位“类型-地 | | | | | 址”字段(当 | | | | | 的首字符为+(IRA | | | | | 43)时, | | | | | 缺省值为 | | | | | 14 | | | | | 5;否则缺省值为 | | | | | 129) | +-----------------+-----------------+-----------------+-----------------+ | | 消息参考(Mes | 0~255 | 整数型的 GSM | | | sageReference) | | 03.40 | | | | | TP-Me | | | | | ssage-Reference | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”GSM” | 或AT+CSCS=”IRA” | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMSS=6 | 发送+CMGW实例中 | | | | 被+CMGW存储起来的编号 | | | | 为6的短信,接收方的号 | | | | 码仍为+CMGW存入的号码 | +-----------------------+-----------------------+-----------------------+ | ← | +CMSS: 11 OK | 发送成功,=11 | +-----------------------+-----------------------+-----------------------+ | → | AT | 发送+CMGW实例中被+CM | | | +CMSS=7,“13192310560” | GW存储起来的编号为7的 | | | | 中文短信,并且改变接 | | | | 收方号码为13192310560 | +-----------------------+-----------------------+-----------------------+ | ← | +CMSS: 12 OK | 发送成功 | +-----------------------+-----------------------+-----------------------+ | ## 短信链路控制命令:AT+CMMS SET命令控制短信中继协议(RP)层的链接的连续性。当使能了该特性,并且网络也支持时,发送连续多条短信时RP层的链接将一直存在,而无需在每两条短信之间再进行拆链和建链的过程,从而发送的速度将快很多。 READ命令返回当前的参数值。 | TEST命令返回命令支持的参数值。 - 语法 ======== ============== ======================= 命令类型 语法 返回和说明 ======== ============== ======================= 设置命令 AT+CMMS= [] OK 查询命令 AT+CMMS? +CMMS: OK 测试命令 AT+CMMS=? +CMMS: (取值列表) OK ======== ============== ======================= - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 状态 | 0 | 禁能 | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 使能一 | | | | | 次。当前一条发 | | | | | 送短信的返回和 | | | | | 后一条发送短信 | | | | | 的间隔小于1-5秒 | | | | | (具体的取值取 | | | | | 决于MS的实现) | | | | | ,RP链接保持不 | | | | | 断。当超过了1- | | | | | 5秒时,RP链接中 | | | | | 断,并且值将 | | | | | 自动设置回0,即 | | | | | 不再继续使能。 | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 一直使能 | | | | | 。当前一条发送 | | | | | 短信的返回和后 | | | | | 一条发送短信的 | | | | | 间隔小于1-5秒( | | | | | 具体的取值取决 | | | | | 于MS的实现),R | | | | | P链接保持不断。 | | | | | 当超过了1-5秒时 | | | | | ,RP链接中断, | | | | | 并且值仍保持 | | | | | 为2,即继续使能 | +-----------------+-----------------+-----------------+-----------------+ ## 读短信:AT+CMGR 使用设置指令,可将消息存储器中,索引为的消息返回到TE。若该消息处于“已接收未读”状态,则将其状态变为“已接收已读”。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | AT+CMGR= | PDU模式下 | | | | (AT+CMGF=0),返回: | | | | +C | | | | MGR:,[], | | | | | | | | OK | +-----------------------+-----------------------+-----------------------+ \| \| \| 如果是TEXT模式(AT+CMGF=1): 对于SMS-DELIVER: +CMGR:,,[],[,,,,,,,] OK 对于SMS-SUBMIT: +CMGR:,,[][,,,,,[],,,] OK 对于SMS-STATUS-REPORT: +CMGR:,,,[],[],, .. raw:: html
, OK 对于SMS-COMMAND: +CMGR:,,[,,[],[],[],] OK 注:以上斜体字是否显示由+CSDH的设置决定 \| \| 测试命令 \| AT+CMGR=? \| OK \| - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | | | 请 | | | | | 参考AT+CMGW条目 | +-----------------+-----------------+-----------------+-----------------+ | | | | | +-----------------+-----------------+-----------------+-----------------+ | | | | | +-----------------+-----------------+-----------------+-----------------+ | | | | | +-----------------+-----------------+-----------------+-----------------+ | | MT | | 字符型 | | | 电话簿记录对应< | | | | | da>或的显示 | | | +-----------------+-----------------+-----------------+-----------------+ | | Protocol | | 请 | | | Identification | | 参考AT+CSMP条目 | +-----------------+-----------------+-----------------+-----------------+ | | PDU短信首字节 | | | +-----------------+-----------------+-----------------+-----------------+ | | Valid Period | | | +-----------------+-----------------+-----------------+-----------------+ | | Data Coding | | | | | System | | | +-----------------+-----------------+-----------------+-----------------+ | | 短信中 | | 时 | | | 心时间戳(Short | | 间-字符串型GSM | | | Message Center | | 03.40 | | | Time Stamp) | | TP-Service-Ce | | | | | ntre-Time-Stamp | +-----------------+-----------------+-----------------+-----------------+ |
| Discharge time | | 时 | | | | | 间-字符串型GSM | | | | | 03.40 | | | | | TP-D | | | | | ischarge-Time, | | | | | 与成对出现 | +-----------------+-----------------+-----------------+-----------------+ | | Status | | 整数型GSM 03.40 | | | | | TP-Status | | | | | 描述 | | | | | 上一个已经发送 | | | | | 的MO短信的状态 | +-----------------+-----------------+-----------------+-----------------+ | | Command Type | | 整数型GSM 03.40 | | | | | TP-Comman | | | | | d-Type,缺省为0 | +-----------------+-----------------+-----------------+-----------------+ | | 接收地址 | | 字符串型的GSM | | | | | 03.40 | | | | | TP-Re | | | | | cipient-Address | | | | | 地址-取值字段 | +-----------------+-----------------+-----------------+-----------------+ | | TEXT模式下SM | | TP-C | | | S-COMMAND的返回 | | ommand-Data(GSM | | | | | 03.40) | +-----------------+-----------------+-----------------+-----------------+ | | 消息参考(Mes | | TP-Messag | | | sageReference) | | e-Reference(GSM | | | | | 03.40), 整数型 | +-----------------+-----------------+-----------------+-----------------+ | | 消息序号 | | TP-Mes | | | | | sage-Number(GSM | | | | | 03.40), 整数型 | +-----------------+-----------------+-----------------+-----------------+ - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | 用TEXT模式读取短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”GSM” | +CSCS命令决定了读取 | | | | 的短信内容的编码方式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=6 | 读取index=6的英文短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: “REC | 这个 | | | REA | 英文短信的内容为”HI” | | | D”,“+86139*******9”,“ | | | | 12/03/30,20:40:31+32” | | | | HI! OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”UCS2” | 读中文短 | | | | 信内容需要设置为UCS2 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=1 | 读一个中文短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: “REC | 内容为8C228C22( | | | READ | 中文“谢谢”的UCS2码) | | | ”,“002B00380036003100 | | | | 330031003600320033003 | | | | 10030003200360033”,,“ | | | | 13/01/06,10:11:47+32” | | | | 8C228C22 OK | | +-----------------------+-----------------------+-----------------------+ | 用 | | | | PDU模式读取一个短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=0 | 设置为PDU模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=9 | 读取index=9的短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: 0,,24 | | | | 089 | | | | 1683108200105F0240D91 | | | | 683161450179F90008218 | | | | 0904121102304611F8C22 | | | | OK | | +-----------------------+-----------------------+-----------------------+ ## 列举短消息:AT+CMGL 使用设置指令,可将查询优选消息存储器中,状态值为的消息显示在 TE中。若该消息处于“已接收未读”状态,则将其状态变为“已接收已读”。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | AT+CMGL= | 如果是 | | | | PDU模式(AT+CMGF=0) | | | | ,则取值如下: | | | | 0已接收的未读消息 1 | | | | 已接收的已读消息 2 | | | | 已存储的未发送短信 3 | | | | 已存储的已发送短信 4 | | | | 所有短信 且返回如下: | | | | +CMGL: | | | | ,,[],< | | | | pdu>< | | | | CR>+CMGL:, | | | | ,[],[…]] | | | | OK | +-----------------------+-----------------------+-----------------------+ \| \| \| 如果是TEXT模式(AT+CMGF=1),则取值如下:“REC UNREAD”已接收的未读消息 “REC READ” 已接收的未读消息 “STO UNSENT”已存储的未发送短信 “STO SENT”已存储的已发送短信 “ALL”所有短信 注意:对于以上取值,所有字母要大写。双引号可加可不加。对于SMS-DELIVER或SMS-SUBMIT,则返回(注:斜体字是否显示由+CSDH的设置决定): +CMGL:,,,[],[][,,][+CMGL:,,,[],[][,,][…]] OK 对于SMS-STATUS-REPORT,则返回: +CMGL:,,,,[],[],, .. raw:: html
,[+CMGL:,,,,[],[],, .. raw:: html
,[…]] OK 对于SMS-COMMAND,则返回: +CMGL:,,,[+CMGL:,,,[…]] OK \| \| 测试命令 \| AT+CMGL=? \| +CMGL: (取值列表) OK \| - 参数 ==== ==== ==== ======================================================== 参数 定义 取值 对取值的说明 ==== ==== ==== ======================================================== \ 本词条的所有参数在以前的命令中都有详细叙述,这里不再赘述 ==== ==== ==== ======================================================== - 例子 +-----------------------+-----------------------+-----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | 用TEXT模式读取短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=1 | 设置为TEXT模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”GSM” | +CSCS命令决定了读取 | | | | 的短信内容的编码方式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=6 | 读取index=6的英文短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: “REC | 这个 | | | READ”,“+86139”,“ | 英文短信的内容为”HI” | | | 12/03/30,20:40:31+32” | | | | HI! OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCS=”UCS2” | 读中文短 | | | | 信内容需要设置为UCS2 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=1 | 读一个中文短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: “REC | 内容为8C228C22( | | | READ | 中文“谢谢”的UCS2码) | | | ”,“002B00380036003100 | | | | 330031003600320033003 | | | | 10030003200360033”,,“ | | | | 13/01/06,10:11:47+32” | | | | 8C228C22 OK | | +-----------------------+-----------------------+-----------------------+ | 用 | | | | PDU模式读取一个短信: | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGF=0 | 设置为PDU模式 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | → | AT+CMGR=9 | 读取index=9的短信 | +-----------------------+-----------------------+-----------------------+ | ← | +CMGR: 0,,24 | | | | 089 | | | | 1683108200105F0240D91 | | | | 683161450179F90008218 | | | | 0904121102304611F8C22 | | | | OK | | +-----------------------+-----------------------+-----------------------+ ## 删除短消息:AT+CMGD 使用设置指令,可删除优选消息存储器中,位置号码参数为的消息。 - 语法 +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | AT+CMGD= | 返回: OK | | | | 说明:这 | | | | 个设置命令是删除1中索引为index的短信 | +-----------------------+-----------------------+-----------------------+ | | AT+C | 返回: OK | | | MGD=, | 说明:这 | | | | 个设置命令是删除所有 | | | | 状态为的短信 | | | | 。当不等于0 | | | | 时,参数被忽略 | +-----------------------+-----------------------+-----------------------+ | 测试命令 | AT+CMGD=? | +C | | | | MGD:(取值列表 | | | | ),(取值列表) | | | | OK | +-----------------------+-----------------------+-----------------------+ - 参数 +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 短信位置索引 | - | 整 | | | | | 数型;关联存储 | | | | | 器支持的地址编 | | | | | 号范围内的取值 | +-----------------+-----------------+-----------------+-----------------+ | | 删除 | 0 | 删除 | | | 类型,整数型。 | | 指定位置号码为 | | | 当=1, | | 的短消息 | | | 2,3,4时,参数将被忽略 | | | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 删除优选存储器 | | | | | 其中所有已读的 | | | | | 短消息,保留未 | | | | | 读短消息和已存 | | | | | 储的MO短消息( | | | | | 无论是否发送) | | | | | MO:Mobile | | | | | Originated | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 删 | | | | | 除优选存储器中 | | | | | 所有已读的消息 | | | | | 和已发送的MO短 | | | | | 消息,保留未读 | | | | | 的以及未发送的 | | | | | 已存储MO短消息 | +-----------------+-----------------+-----------------+-----------------+ | | | 3 | 删除优选存储 | | | | | 器中所有已读的 | | | | | 短消息,已发送 | | | | | 和未发送的已存 | | | | | 储MO短消息,保 | | | | | 留未读的短消息 | +-----------------+-----------------+-----------------+-----------------+ | | | 4 | 删除优选存储 | | | | | 器中包括未读在 | | | | | 内所有的短消息 | +-----------------+-----------------+-----------------+-----------------+ - 例子 =================== ============ ==================== 命令(→)/返回(←) 实例 解释和说明 =================== ============ ==================== → AT+CPMS=”SM” 设置存储区为SIM ← OK → AT+CMGD=1 删除掉index=1的短信 ← OK → AT+CMGD=1,4 所有的短信都被删除掉 ← OK =================== ============ ==================== ## 小区广播短消息类型选择:AT+CSCB - 语法 +----------+----------------------------+----------------------------+ | 命令类型 | 语法 | 返回和说明 | +==========+============================+============================+ | 设置命令 | AT+CSCB= | 返回: OK | | | [[,[,]]] | | +----------+----------------------------+----------------------------+ | 查询命令 | AT+CSCB? | 返回: | | | | +CSCB:,, | | | | OK | +----------+----------------------------+----------------------------+ | 测试命令 | AT+CSCB=? | 返回: +CSCB: | | | | (取值列表) OK | +----------+----------------------------+----------------------------+ - 参数 +--------+-------------------------+------+-------------------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +========+=========================+======+=========================+ | | | 0 | 接受由指定的消息类型 | +--------+-------------------------+------+-------------------------+ | | | 1 | 不接受由指定的消息类型 | +--------+-------------------------+------+-------------------------+ | | 所有可能的 CBM | - | 字符型 | | | 消息标识的组合 | | | +--------+-------------------------+------+-------------------------+ | | 所有可能的CBM | - | 字 | | | 数据编码方案的组合 | | 符型,缺省值为空字符串 | +--------+-------------------------+------+-------------------------+ # LUAT开发相关接口 相关示例,请参考:raw-latex:`\script`\_LuaTask_VX.X.X:raw-latex:`\demo`:raw-latex:`\sms` ### sms.send(num, data, cbFnc, idx) 发送短信 - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | string | num, | | | 短信接收方号码,ASCII码字符串格式 | +-----------------------------------+-----------------------------------+ | string | d | | | ata,短信内容,GB2312编码的字符串 | +-----------------------------------+-----------------------------------+ | function | 可选参数,默认 | | | 为nil,cbFnc,短信发送结果异步返 | | | 回时的用户回调函数,回调函数的调 | | | 用形式为:cbFnc(result,num,data) | | | num:短 | | | 信接收方的号码,ASCII码字符串格式 | | | d | | | ata:短信内容,GB2312编码的字符串 | +-----------------------------------+-----------------------------------+ | number | 可 | | | 选参数,默认为nil,idx,插入短信 | | | 发送缓冲表的位置,默认是插入末尾 | +-----------------------------------+-----------------------------------+ - 返回值 result,返回true, 表示调用接口成功(并不是短信发送成功,短信发送结果,通过sendcnf返回,如果有cbFnc,会通知cbFnc函数);false,表示调用接口失败 - 例子 :: sms.send("10086","test",cbFnc) ### sms.setNewSmsCb(cbFnc) 设置新短信的用户处理函数 - 参数 ========== =========================== 传入值类型 释义 ========== =========================== function cbFnc,新短信的用户处理函数 ========== =========================== - 返回值 nil - 例子 :: sms.setNewSmsCb(cbFnc) # 相关资料以及购买链接 相关开发板购买链接 `Air724UG开发板 `__ `Air724 开发板使用说明 `__ `相关软件资料下载 `__ 常见问题 -------- https://luatdoc.papapoi.com/628/ ## 1、PDU格式发送短信问题 \**\*   AT版本发送短信时先查看自己的SIM卡是否设置中心地址,发送短信时发送PDU包这一步不要勾选换行符和16进制