Board logo

标题: 嵌入式操作系统Windows CE下拨号上网 02 [打印本页]

作者: samwalton    时间: 2014-4-25 14:26     标题: 嵌入式操作系统Windows CE下拨号上网 02

Windows CE.NET下RAS所具备的所有功能同PC下的相似,同样支持电话本、拨号控制脚本。不同的是CE下的RAS的电话本是存放在注册表中。这些都是次要的功能,在此不给予讲述。实现拨号必须调用的函数如下:
函数描述
RasDial建立RAS连接
RasEnumEntries列出注册表中所有拨号记录
RasGetConnectStatus获得指定远程访问连接的当前状态。
RasGetEntryDialParams获得指定的上次成功拨号记录的连接数据(参数)
RasSetEntryDialParams设置指定的上次成功拨号记录的连接数据(参数)
RasGetEntryProperties获得拨号记录属性
RasSetEntryProperties设置拨号记录属性
RasHangUp终止RAS连接
  基于Windows CE的产品在设计上有的能够在断电前保存注册表数据,有的不能够。对于不能够保存注册表数据的产品,采用电话本来拨号是行不通的。只能让用户每次启动后重新输入拨号数据,或者将数据保存到永久存储器上,在下一次拨号程序启动时先读取拨号数据。
  整个拨号状态分为同步和异步两种。同步状态下RasDial函数直到建立连接或者发生错误不能继续工作时才返回。同步模式的缺点是客户不能收到连接操作的当前状态和进度信息。但是仍然有解决方法,办法是创建一个新的线程来进行拨号(调用RasDial),另外创建一个新的线程每隔一段时间查询当前拨号状态(调用RasGetConnectStatus)。相比较异步模式在得到当前拨号状态方面要容易的多。异步模式下RasDial函数会立刻返回,接着可以调用RasGetConnectStatus得到当前拨号状态。
  RasGetEntryDialParams和RasGetEntryProperties两个函数得到的是不同方面的数据。在此做一说明:CE为DialPrarms拨号参数定义了结构体RASDIALPARAMS。它包括拨号记录名、电话号码、用户名、密码、域名等。而对于Properties属性数据,CE定义了结构体RASENTRY。它包括连接选项、国家码、区域码、本地电话号,可以指定本地IP地址、远程DNS服务器IP、远程WINS服务器IP等,还可以指定连接控制脚本文件路径、采用的协议、调制解调器类型及名称等。在拨号前一定要设置要这些参数,不过不必每个参数都设置。最简单的办法是得到系统默认的所有参数。调用代码如下:
DWORD dwReturn;dwReturn = RasGetEntryProperties(NULL, L"", &RasEntry, &dwSize, NULL, NULL); if(dwReturn != 0)    {  ////不能得到系统拨号参数 return; }  得到系统默认的参数后再加以修改,这样避免了设置错误的参数,而且大多数参数不用我们设置。关于拨号上网就讲这么多,如果读者有疑问或者遇到困难可以发邮件给我,如果有时间我将回复。
  另外关于PlatformBuilder,很多人发邮件给我希望我能回答他们关于PB的问题。在这里我向读者们宣布,关于PB和EVC的书我和我的同事正在写,预计9月份就能够完成。这本书详细介绍了PB(包括驱动)和EVC的使用,还有一些开发实例。PB和驱动部分都是我的同事写的,他们很有经验。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0