3803|10

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

GPRS MODEM自动连接网络的问题 [复制链接]

     已经新建立了一个连接,使用RasDial()函数连接到了 输入 at 指令的模块,问题是怎么让程序自动输入at指令 并且自动 按继续按钮连接上网呢?谢谢大家了. at指令是:at+cgdcont=1,"ip","cmnet" 和  atdt*99# ,我用的是EVC的控制台应用程序编写的,再次多谢.

最新回复

首先,我复述一下您提出的问题,看是否正确。 您要实现的是,在程序里通过RASDial访问一个拨号连接,而自动上网? 其次,我描述一下这个的实现过程: 1.建立对应的拨号连接,如果您是手动建立,那很方便,而且在建立时,有一个对话框可以输入对Modem初始化的AT命令,这时直接输入AT+CGDCONT=1,"ip","cmwap";而实际的*99***1#则是拨号的电话号码; 2.如果是在程序里建立连接,先需要将UCD.dwValue值设为访问点名称,比如CMNET,再建立对应的RasEntry和RasDialParams; 3.实际拨号的时候,通过RasEnumEntries枚举所有的访问点,并通过RasGetEntryDialParams获取对应参数,然后调用RasDial就可以实现拨号成功;  详情 回复 发表于 2008-10-8 11:41
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
那么简单的问题 `不会没人做过吧   希望大家给个思路吧,或者本身有没提供API??
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 moondairy 的回复:
那么简单的问题 `不会没人做过吧  希望大家给个思路吧,或者本身有没提供API??


激吧、将吧
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 91program 的回复:
引用 1 楼 moondairy 的回复:
那么简单的问题 `不会没人做过吧  希望大家给个思路吧,或者本身有没提供API??


激吧、将吧

反效果了..哭
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
汗。。楼主在说什么?程序自动输出AT?
天啦,这个怎么可能哦。
你想太多了。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
晕了,lz想干什么啊?

你的代码都能拨号链接成功了,

那就继续用你的代码发送你想要发送的at命令了。

什么地方有“继续按钮”啊?

都是没有界面的啊。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
我是想做一个程序让他自动连接上网的,CreateFile()和WriteFile()好像可以,刚接触wince的 还没搞清楚
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果在拨号连接中能手动拨号上网的话。

你可以在代码中使用ras来拨号。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
可以手动拔号上网,先看看下面的代码大家就明白了.

  1. // EmboConn.cpp : Defines the entry point for the application.
  2. //

  3. #include "stdafx.h"
  4. #include "ras.h"

  5. HANDLE hPort = INVALID_HANDLE_VALUE;
  6. BOOL CreatePort()
  7. {
  8.         DWORD dwNumBytesWritten;
  9.         BOOL fRet;
  10.         BYTE Bytes[]={'A','T','D','T','*','9','9','#',0x0D};
  11.         //open the serial port
  12.         hPort = CreateFile(TEXT("com8:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
  13.         if ( hPort == INVALID_HANDLE_VALUE )
  14.         {
  15.     // Could not open the port.
  16.                 printf("Open failed");
  17.                 return FALSE;
  18.         }
  19.         //BYTE Bytes[]={'A','T',0x0D};
  20.         DWORD BytesSize = sizeof(Bytes);
  21.         fRet = WriteFile(hPort,Bytes,BytesSize, &dwNumBytesWritten,NULL);
  22.         fRet = ReadFile(hPort,Bytes,4,&dwNumBytesWritten,NULL);
  23.         if(fRet)
  24.         {
  25.                 printf("Open successful");
  26.                 CloseHandle(hPort);
  27.         }
  28.        
  29.         //close the serial port
  30.         CloseHandle(hPort);
  31.        
  32.        
  33.         return TRUE;

  34. }

  35. int WINAPI WinMain(        HINSTANCE hInstance,
  36.                                         HINSTANCE hPrevInstance,
  37.                                         LPTSTR    lpCmdLine,
  38.                                         int       nCmdShow)
  39. {
  40.         // TODO: Place code here.
  41.                 CreatePort();


  42.                 RASDIALPARAMSW rdParams;//拨号参数
  43.                
  44.                 HRASCONN hRasConn=NULL;

  45.                 //初始化拨号参数
  46.                 rdParams.dwSize=sizeof(RASDIALPARAMSW);
  47.                 wcscpy(rdParams.szEntryName,lpCmdLine);
  48.                 wcscpy(rdParams.szPhoneNumber,_T(""));
  49.                 wcscpy(rdParams.szCallbackNumber,_T(""));
  50.                 wcscpy(rdParams.szUserName,_T(""));
  51.                 wcscpy(rdParams.szPassword,_T(""));
  52.                 wcscpy(rdParams.szDomain,_T(""));
  53.                 DWORD dwRet;
  54.                 //拨号连接
  55.                 dwRet=RasDial(NULL,NULL,&rdParams,0,NULL,&hRasConn);
  56.                 if(dwRet)
  57.                 {
  58.                    RasHangUp(hRasConn);
  59.                 }
  60.        

  61.         return 0;
  62. }




复制代码


这里到了手动输入 atdt*99# 返回的字符串,我想实现他自动 File -> Continue  连接上网,  不知道有没有描述清楚??
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
大家给个思路吧?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
首先,我复述一下您提出的问题,看是否正确。
您要实现的是,在程序里通过RASDial访问一个拨号连接,而自动上网?

其次,我描述一下这个的实现过程:
1.建立对应的拨号连接,如果您是手动建立,那很方便,而且在建立时,有一个对话框可以输入对Modem初始化的AT命令,这时直接输入AT+CGDCONT=1,"ip","cmwap";而实际的*99***1#则是拨号的电话号码;
2.如果是在程序里建立连接,先需要将UCD.dwValue值设为访问点名称,比如CMNET,再建立对应的RasEntry和RasDialParams;
3.实际拨号的时候,通过RasEnumEntries枚举所有的访问点,并通过RasGetEntryDialParams获取对应参数,然后调用RasDial就可以实现拨号成功;
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表