chenqi 发表于 2013-5-15 10:28:41

如果监控器短信发送失败,程序应该怎么处理?

1 用什么方法检测短信是否发送成功?   
   一般用指令AT+CMGS= 来发送短信,如果返回error是否就可以判断发送短信失败了?
2 短信发送失败后需要重新发送,失败的短信会像手机一样存储在模块里面吗?

javabean 发表于 2013-5-15 11:04:24

你试试就知道了
当时搞短信模块发现信号不好发什么返回都是错误,崩溃了好几天……

32446975 发表于 2013-5-15 23:39:57

1 用什么方法检测短信是否发送成功?

发送方在短信发送后,等待一个超时时间,如果在超时时间内收到接收方的ACK回应,则认为发送成功。
否则,发送失败(可能网络严重延迟或接收方故障),进行重发,如果达到最大重发次数,放弃对本条信息的发送,并产生一个告警(如LED闪烁状态改变或液晶显示),指示通讯异常。后面,如果收到ACK回应,则清除告警。

chenqi 发表于 2013-5-17 14:47:38

javabean 发表于 2013-5-15 11:04 static/image/common/back.gif
你试试就知道了
当时搞短信模块发现信号不好发什么返回都是错误,崩溃了好几天…… ...

信号不好真得好好测测,发现GPRS连不上,GSM方式发短信可能会成功。

chenqi 发表于 2013-5-17 14:51:00

32446975 发表于 2013-5-15 23:39 static/image/common/back.gif
1 用什么方法检测短信是否发送成功?

发送方在短信发送后,等待一个超时时间,如果在超时时间内收到接收 ...

谢谢,请问这个ACK是短信发送成功了就返回,不是对方打开短信时候返回来的吧。不知道手机上打开短信返回回执的功能怎么做的。

32446975 发表于 2013-5-26 13:00:49

我说的ACK是自已协议中定义的。接收方收到一条短信后,必须回复一条确认收到的短信,即我说的ACK。

dgdzas 发表于 2013-6-27 11:46:54

直接拨电话,看有没有接。

aragon 发表于 2014-5-2 14:53:11

通常会返回“OK”,或“ERROR”,得不到“OK”,那就重发了,如果SIM卡欠费了,你重发N次也没用的,那就定义重发次数。过了就不要再发了
页: [1]
查看完整版本: 如果监控器短信发送失败,程序应该怎么处理?