使用 AT 命令和 Python 在 Raspberry Pi 2 上接收空白短信 SIM800
Recieving Blank SMS SIM800 using AT Commands and Python on Raspberry Pi 2
我在 rpi2 上创建了这个 python 脚本,消息通过了,但它是一条空白消息。是编码问题吗?
import serial
import time
from sys import version_info
from curses import ascii
phone = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.5)
def send_text(number,message):
phone.write(b'AT+CMGF=1\r')
phone.write(b'AT+CMGS="' + number.encode() + b'"\r')
phone.write(message.encode())
phone.write(ascii.ctrl('z'))
for i in range(len(reply)):
reply[i] = reply[i].rstrip()
print reply
AT命令(其中0000000000是10位手机号码)
在 Minicom 中,仍然是 空白 消息
minicom -D /dev/ttyAMA0 -b 115200 -o
AT
OK
AT+CMGS="0000000000"
>Hello
<ctrl-z>
+CMGS: 14
OK
文本模式参数存在问题。下面的 AT 命令修复了它 -
AT+CSMP=17,167,0,0
--info about it
AT+CSMP=<fo>,<vp>,<pid>,<dcs>
<fo>=17 Sets reply pat, user data header, status report request, validity period format, reject duplicates and message type.
<vp>=167 Sets validity period.
<pid>=0 Higher layer protocol indicator.
<dcs>=0 Information encode format.
OK Modem Response.
AT+CSMP=17,167,0,0
参数
取决于命令或结果代码:GSM 的第一个八位字节
03.40 SMS-DELIVER,SMS-SUBMIT(默认 17),
SMS-STATUS-REPORT 或 SMS-COMMAND(默认 2)整数
格式。如果设置为 49,则在文本模式下支持短信状态报告。
取决于 SMS-SUBMIT 设置:GSM 03.40
TP-Validity-Period 为整数格式(默认为 167)或时间字符串
格式(参考)
GSM 03.40 TP 协议标识符,整数格式(默认为 0)。
GSM 03.38 整数格式的 SMS 数据编码方案。
我在 rpi2 上创建了这个 python 脚本,消息通过了,但它是一条空白消息。是编码问题吗?
import serial
import time
from sys import version_info
from curses import ascii
phone = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.5)
def send_text(number,message):
phone.write(b'AT+CMGF=1\r')
phone.write(b'AT+CMGS="' + number.encode() + b'"\r')
phone.write(message.encode())
phone.write(ascii.ctrl('z'))
for i in range(len(reply)):
reply[i] = reply[i].rstrip()
print reply
AT命令(其中0000000000是10位手机号码) 在 Minicom 中,仍然是 空白 消息
minicom -D /dev/ttyAMA0 -b 115200 -o
AT
OK
AT+CMGS="0000000000"
>Hello
<ctrl-z>
+CMGS: 14
OK
文本模式参数存在问题。下面的 AT 命令修复了它 -
AT+CSMP=17,167,0,0
--info about it
AT+CSMP=<fo>,<vp>,<pid>,<dcs>
<fo>=17 Sets reply pat, user data header, status report request, validity period format, reject duplicates and message type.
<vp>=167 Sets validity period.
<pid>=0 Higher layer protocol indicator.
<dcs>=0 Information encode format.
OK Modem Response.
AT+CSMP=17,167,0,0
参数 取决于命令或结果代码:GSM 的第一个八位字节 03.40 SMS-DELIVER,SMS-SUBMIT(默认 17),
SMS-STATUS-REPORT 或 SMS-COMMAND(默认 2)整数 格式。如果设置为 49,则在文本模式下支持短信状态报告。
取决于 SMS-SUBMIT 设置:GSM 03.40 TP-Validity-Period 为整数格式(默认为 167)或时间字符串 格式(参考)
GSM 03.40 TP 协议标识符,整数格式(默认为 0)。
GSM 03.38 整数格式的 SMS 数据编码方案。