gprs拨号总结之二

来源:互联网 发布:java觉得看不懂代码 编辑:程序博客网 时间:2024/05/16 11:28

前一篇的GPRS拨号仅仅是解决了拨号这种功能性问题,要想让你的程序能够让别人来使用者是远远不够的。

接下来我就讲讲我们这个项目对GPRS功能完善的一些方法,如有错误请指教:

(1)GPRS网络首先要解决的是你的开发板是由有SIM卡,这是因为有可能你的SIM卡底座虚焊造成了SIM卡异常,无法拨号成功,如果你没有这么异步直接跳到拨号脚本进行拨号就会出现AT命令直接挂掉的情况,对于SIM卡的检测你的模块应该有标准的AT命令来指导你该如何做,可以加入一些其他的检测如信号质量、网络服务提供商等等。

(2)第二个就是GPRS网络拨号成功后如何解决续拨的问题,我们经常用GPRS上网就知道由于服务器或者信号质量的原因GPRS网络会中断,这就要求我们经常的去检测网络是否处于连接状态,如果网络已经中断就应该去续拨,这里就牵涉到如何检测GPRS网络连接状态的方法,大家可以参考这个脚本:

#!/bin/sh
rm -rf /tmp/gprs_info
dns1=" "
dns2=" "
dns1=`cut -f 2 -d ' ' /etc/ppp/primarydns`
dns2=`cut -f 2 -d ' ' /etc/ppp/seconddns`

i="0"
while [ $i -lt 5 ]
do
 ping -I $1 -q -s 1 -c 1 $dns1   
 if [ "$?" != "0" ]
 then
  ping -I $1 -q -s 1 -c 2 $dns2
  if [ "$?" != "0" ]
  then
   sleep 1
  else
   echo "gprs module is online"
   echo "gprs_on_line" > /tmp/gprs_info
   exit 0
  fi
 else
  echo "gprs module is online"
  echo "gprs_on_line" > /tmp/gprs_info
  exit 0
 fi
i=$[$i+1] 
done
echo "gprs module is offline"
echo "gprs_off_line" > /tmp/gprs_info
exit 0

 

我们是用GPRS网络服务提供商的DNS作为PING的目的IP地址,以检测网络是否处于连接状态。

大家也可以参看这个网址:http://www.tvrofans.org/thread-8117-1-1.html。

这样我的GPRS整个拨号的框架就很清楚了,当然还有C程序的代码我没有贴出来,这里只是给出了一个实现方法。如果有什么问题大家可以联系我,给我留言。

原创粉丝点击