at发送短信 怎么没有状态报告?
我用AT指令通过手机的MODEN串口发送短信,成功,但没有状态报告。
我写的指令的 FirstOctet字段(包含TP-MTI(2bit),TP-RD(1bit),TP-VPF(2bit),TP-RP(1bit),TP-UDHI(1bit),TP-SRR(1bit)是0X11 :二进制表示形式:0 0 0 10 0 01
也就是需要短信的状态报告的,但是当短信发送出去,被对方手机接收到后,发送的手机上并没有收到状态报告,手机也没有上报什么数据?这是为什么,请高手指教?我需要通过收到状态报告后来判断短信发送成功与否.
//---------------------------------------------------------
下面是每一位的含义和取值:
TP-MTI:01
TP-Message-Type-Indicator(消息类型指示符)
Bit1,0:01 指示为SMS-SUBMIT类型
TP-RD:0
TP-Reject-Duplicates(是否拒绝相同重复消息)
Bit2:0 指示短消息中心接受未转发的具有相同TP-MR的消息。
TP-VPF:10
TP-Validity-Period-Format(有效期格式)
Bit4,3:10 指示使用相对格式。
TP-SRR:0
TP-Status-Report-Request
Bit5:0 指示不使用状态报告。
TP-UDHI:0
TP-User-Data-Header-Indicator(用户数据头标示)
Bit6:0 指示这是一个SMS消息,没有用户数据头。EMS消息需要设置。
TP-RP:0
TP-Reply-Path(回复路径)
Bit7:0 指示没有设置回复路径。
[解决办法]
发送成功会返回ok
但这只意味短信到了短消息中心,不能判断对方是否收到短信。
[解决办法]
我记的好像是如果发送指令中指示使用状态报告,发送完成后,会收到一条来自消息中心的短信,告知是否发送成功,所以发送完以后,再AT+CMGR读取试试。(注意应该有延时)