重新连接断开的GSM调制解调器的功能/ AT命令是什么?

重新连接断开的GSM调制解调器的功能/ AT命令是什么?

问题描述:

  1. 我有一个GSM调制解调器,一段时间后断开连接,也许是因为低信号。我只是想知道是否有AT命令可以检测到断开连接并重新建立重新连接。重新连接断开的GSM调制解调器的功能/ AT命令是什么?

  2. 是否有代码的方式(最好是python)我可以检测到断开连接并重新建立重新连接?

加特

+0

你使用的Telit模块与python 1.5.2 +? – INS 2012-02-06 10:55:09

根据什么类型的连接,电路交换(CS)或分组交换(PS),监视将是有点不同。要检测断开连接,您可以启用UR(未经请求的结果)代码AT+CPSB=1来监视PDP上下文活动(又名分组交换连接)。对于电路交换呼叫,您可以使用启用AT+CMER=3,0,0,2+CIEV: UR代码进行监控。

要重新建立连接,您必须重新建立连接。对于CS,您必须知道拨打的电话号码,或者您可以使用特殊形式的ATD,ATDL [1]拨打最后拨打的号码。如果调用是以ATD开始的(例如“ATD * 99 * ....”),那么您也可以使用ATDL for PS,这很常见,但是我认为如果以AT + CGDATA开始则没有任何办法。

但是,以上都与ATD无关,因为它不是你想要的。对于CS你可能会建立一个来自你的python脚本的调用,但那又如何?在收到CONNECT之后,所有的数据通信都将通过您的python脚本正在使用的串行连接进行。而对于PS,连接甚至不会成功完成,除非电话接收来自PC的PPP流量作为连接建立的一部分。你打算用你的python脚本来提供它吗?

你真正想要的是触发你的电脑再次尝试连接,无论这是标准操作系统拨号网络还是一些特殊的应用程序启动它。因此,使用python脚本监视调制解调器,然后在PC端采取适当的操作重新建立连接。

[1] ATDL的注意事项:请注意,如果您想重复最后一次语音通话,您仍应以分号结尾,即ATDL;,否则您将开始数据通话。

+0

我认为PDP上下文只适用于GPRS连接而非GSM。 – luc 2010-02-12 13:11:41

+0

电路交换和分组交换有什么区别? AT命令如何在重新建立连接时发挥作用? – gath 2010-02-12 13:17:19

+0

对我来说,GSM也意味着GPRS(我甚至会认为“GSM调制解调器”可能意味着UMTS或LTE,即使不是严格意义上的GSM标准也不一样),所以不太明白你有什么不同正在思考。 PDP上下文适用于GPRS,UMTS打包交换业务和LTE。 – hlovdal 2010-02-12 14:19:40

您可以尝试使用AT + CSQ定期检查信号强度。如果信号低于给定阈值,请考虑断开连接并强制建立新连接。

您可以尝试非常好的pyserial http://pyserial.sourceforge.net/ Python库将AT命令发送到调制解调器。

我希望它能帮助

这里是我如何做到这一点与Telit设备:

我用AT+CGREG=1订阅请自来的邮件。从文件中提取出来:

+CGREG - GPRS Network Registration Status 
AT+CGREG=[<n>] 
Set command controls the presentation of an unsolicited result code 
+CGREG: (see format below). 
Parameter: 
<n> - result code presentation mode 
0 - disable network registration unsolicited result code 
1 - enable network registration unsolicited result code; if there is a change in the terminal GPRS network registration status, it is issued the unsolicited result code: 
+CGREG: <stat> 

我等待调制解调器对+CGREG消息的串行线路。什么时候到,我检查stat是1(连接到家庭网络)还是5(连接在漫游中)。

注意:发出AT + CGREG时会出现不同的响应+ CGREG?这并不难分离。