CMGW
把消息写入存储器:AT+CMGW
使用设置指令,可将SMS(SMS-DELIVER 或 SMS-SUBMIT)从TE发送到存储器<mem2>,并返回已存储消息的存储位置<index>参数。除非<stat>指定其他参数,否则,该消息的状态将被设置为"存储未发送"。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 设置命令 | TEXT模式下(AT+CMGF=1):AT+CMGW[=<oa/da>[,<tooa/toda>[,<stat>]]]<CR>text is entered<ctrl-Z/ESC> |
成功,返回:+CMGW: <index>OK 说明: <Ctrl+Z>即十六进制的1A,<ESC>即十六进制的1B |
失败则返回:+CMS ERROR: <err> |
||
PDU模式下(AT+CMGF=0):AT+CMGW=<length>[,<stat>]<CR> PDU is given<ctrl-Z/ESC> |
成功,返回:+CMGW: <index>OK 说明: <Ctrl+Z>即十六进制的1A,<ESC>即十六进制的1B |
|
失败则返回:+CMS ERROR: <err> |
||
| 测试命令 | AT+CMGW=? | 返回:OK |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<da> |
目的地址(Destination Address) | - | GSM 03.40 TP-Destination-Address 中"地址-取值"字 段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS 07.07 中的+CSCS 指令);地址类型由<toda>定义 |
<toda> |
目的地址类型(Type of <da>) |
- | 整数型的 GSM 04.11 TP-Destination-Address 中的 8 位"类型-地址"字段(当<da>的首字符为+(IRA 43)时, 缺省值为 145;否则缺省值为 129) |
<oa> |
源地址(OriginatingAddress) | - | GSM 03.40 TP-Originating-Address 中"地址-取值"字 段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS 07.07 中的+CSCS 指令);地址类型由<tooa>定义 |
<tooa> |
源地址类型(Type of <oa>) |
- | 整数型的 GSM 04.11 TP-Originating-Address 中的 8 位"类型-地址"字段(当<oa>的首字符为+(IRA 43)时, 缺省值为 145;否则缺省值为 129) |
<length> |
PDU短信长度 | - | 整数型。该长度不将短信中心号码的长度计算在内 |
<stat> |
短信状态 | REC UNREAD | 已接收的未读消息(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! |
返回>后,输入短信内容,然后输入 <Ctrl+Z>即0x1A就可以保存短信 |
| ← | +CMGW: 6 OK |
返回的index=6,表示该短信在存储区的位置是第6个 |
| 存储一个TEXT短信(中文): | ||
| → | AT+CMGF=1 | 设置为TEXT模式 |
| ← | OK | |
| → | AT+CSCS="GSM" | 设置AT命令中字符的编码格式为UCS2 |
| ← | OK | |
| → | AT+CSMP=17,167,0,8 | Dcs=8,表示短信存放的格式为UCS2编码 |
| ← | OK | |
| → | AT+CMGW="10086" | 目的地址是10086(UCS2编码格式) 内容为"感谢"(UCS2编码格式) |
| ← | > | 此时会返回> |
| → | 611F8C22<Ctrl+Z> |
返回>后,输入短信内容611F8C22(hex格式),然后输入<Ctrl+Z>即0x1A就可以保存短信 |
| ← | +CMGW: 7 OK |
该短信存在index=7的位置 |
| 存储一个PDU短信: | ||
| → | AT+CMGF=0 | 设置为PDU格式 |
| ← | OK | |
| → | AT+CMGW=19 | |
| ← | > | 此时会返回> |
| → | 0011100D91683161450179F900080004611F8C22<Ctrl+Z> |
PDU格式短信内容为"感谢"。然后输入 <Ctrl+Z>即0x1A就可以保存短信 |
| ← | +CMGW: 8 OK |
该短信存在index=8的位置 |