【问题标题】:Data Call with AT commands failed使用 AT 命令的数据呼叫失败
【发布时间】:2015-03-26 12:28:21
【问题描述】:

我正在使用 at 命令将 3g 调制解调器连接到互联网。所有消息都显示一切正常,但没有 Internet 访问权限,并且 Windows 7 中的调制解调器状态已断开连接。来自调制解调器的 LED 就像它连接到互联网一样。 我正在使用的命令是(按此顺序):

COM5 115200 4000

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGREG=? +CGREG: (0-2) 好的

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+COPS? +COPS: 0,2,"22603",0 OK

代码介绍:AT+CSQ +CSQ:21,99 确定

代码介绍:AT+CGATT=1 OK

代码介绍:AT+CGDCONT=1,"IP","broadband" OK

代码介绍:AT+CGACT=1,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+CGACT? +CGACT: 1,1 正常

代码介绍:AT+CGATT? +CGATT: 1 确定

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGDCONT? +CGDCONT: 1,"IP","宽带","0.0.0.0",0,0 OK

代码介绍:AT+CGACT=0,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+COPS? +COPS: 0,2,"22603",0 OK

代码介绍:AT+CSQ +CSQ:21,99 确定

代码介绍:AT+CGATT=1 OK

代码介绍:AT+CGDCONT=1,"IP","broadband" OK

代码介绍:AT+CGACT=1,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+CGACT? +CGACT: 1,1 正常

代码介绍:AT+CGATT? +CGATT: 1 确定

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGDCONT? +CGDCONT: 1,"IP","宽带","0.0.0.0",0,0 OK

代码介绍:AT+CGACT=0,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

我错过了什么?

【问题讨论】:

    标签: at-command 3g modem 3g-network dial-up


    【解决方案1】:

    可能在设备上建立连接是不够的,因为 windows 不会收到连接通知。您应该在 Windows 中设置调制解调器并使用它来建立连接。

    DotRas 是一个在 c# 中完全做到这一点的项目。但其他语言也可能有其他解决方案。如果您正在编写脚本,则可以查看 WMI。还有调制解调器类。

    【讨论】:

      【解决方案2】:

      我已经找到了我的问题的答案。要通过 3g 调制解调器连接到互联网,您需要创建一个拨号会话或使用现有的一个。 Visual C# 中最简单的方法是使用 DotRas 库并创建 de dial-up。 示例

      private void connectbtn_Click(object sender, EventArgs e)
      
      {
                  string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User);
                  RasPhoneBook pbk = new RasPhoneBook();
                  pbk.Open(path);
                  RasDevice modem = RasDevice.GetDeviceByName("HUAWEI Mobile Connect - 3G Modem",RasDeviceType.Modem);
                 //get the exact device name from windows
                  RasEntry entry = RasEntry.CreateDialUpEntry("Broadband", "*99#", modem);
                  entry.Options.RemoteDefaultGateway = true;
                  if (RasEntry.Exists("Broadband", path) == false)
                  { pbk.Entries.Add(entry); }
                  RasDialer dialer = new RasDialer();
                  dialer.EntryName = "Broadband";
                  dialer.PhoneBookPath = path;
                  dialer.Credentials = new NetworkCredential();
      
                  dialer.Credentials.Domain = "broadband";
                  dialer.PhoneNumber="*99#";
                  dialer.Dial();
      
              }
      

      注意您的工作连接和互联网访问设置。

      【讨论】:

      • 最好将此信息包含在您问题的更新中。这将帮助其他人找到您实际使用的解决方案。
      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多