在ce5下如何建立和设置GPRS 拨号链接

lenux 2008-06-11 05:00:47
wince5
vc++2005
GSM modem

在“控制面板”-“网络和拨号链接”中已有名为“GPRS”的拨号链接,
并且手动点击该链接能正常上网的情况下。
我在程序中也能通过rasdial函数来通过这个名为“GPRS”的拨号链接
和网络建立链接。

我的问题是:
如果没有名为“GPRS”的拨号链接,或者这个链接不能正常上网的情况下,

我应该通过代码来建立一个正常的名为“GPRS”的拨号链接。

我现在已经能够建立一个名为“GPRS”的拨号链接(RasSetEntryProperties),但是总是设置不对.

每次拨号都显示opening port,然后约几十秒后弹出this port is not
available,another program may be using it

或者说波特率不对。

但是我把每个波特率都试了一遍都不行。

哪位大侠知道,给个建议。

...全文
806 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
boxr 2009-09-01
  • 打赏
  • 举报
回复
good
scutLiu 2008-11-12
  • 打赏
  • 举报
回复
mark
dding 2008-08-28
  • 打赏
  • 举报
回复
不错,公司也要做,先顶一下
loong115 2008-08-27
  • 打赏
  • 举报
回复
ding
lenux 2008-06-30
  • 打赏
  • 举报
回复
RasSetEntryProperties终于设置对了。

DWORD RasSetEntryProperties(
LPWSTR lpszPhoneBook,
LPWSTR szEntry,
LPRASENTRY lpbEntry,
DWORD dwEntrySize,
LPBYTE lpb,
DWORD dwSize
);
发现该api的lpb参数在不同的设备上会不一样。
所以最好的方法就是拿到一个设备,从注册表上把gprs的devconfig读取出来,根据它调整一下lpb的结构。
然后就能正确建立/修改 拨号链接了。


P.S.
还是找了一台好的设备,看了一下注册表才搞定,感谢借设备的同志。

typedef struct { //Offset
unsigned short Reserved1; // 0x00, 通常为0x20
unsigned short WaitForCreditCard; // 0x02
unsigned short CancelTimeOut; // 0x04
unsigned short Reserved2; // 0x06
unsigned char Test1; // 0x08
unsigned char Test2; // 0x09
unsigned short Reserved3; // 0x0A
unsigned int BaudRate; // 0x0C
unsigned short Terminal; // 0x10, 通常为0, 1, 3, 7
unsigned char DataBits; // 0x12
unsigned char StopBits; // 0x13
unsigned char Parity; // 0x14
unsigned char FlowControl; // 0x15
TCHAR AtCmd[115]; // 0x16, 可能后面还有别的结构,但我尝试几次都没有看到后面有有效值,因此笼统定义为附加指令
} sDevConfig;

这个结构是从
http://blog.csdn.net/caicaileowince/archive/2007/10/15/1826479.aspx
里找的。
现在发现AtCmd之前的字节总数是对的,但是描述完全不一致。
明天把我的结构发出来吧。
AtCmd后面的结构我也没有发现其它信息,附加命令后全是\0,而且删除后也没有问题。
lenux 2008-06-20
  • 打赏
  • 举报
回复
现在还没有时间做呢。
这个是业务娱乐。
主业要紧啊。
shuiyan 2008-06-20
  • 打赏
  • 举报
回复
lenux,现在直接对串口配置效果如何?用AT命令直接进行GPRS连接测试如何?
lenux 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 shuiyan 的回复:]
引用 16 楼 lenux 的回复:
createfile后不是可以设置一些dcb等的参数吗。
这些属于硬件参数,使用RasSetEntryProperties总是设置不成功。
所以这样直接打开串口设置,可能只能是临时设置一下,但是也是能用就行了。

不知道有没有其它想法。

哦,你是怀疑串口的基本配置不成功啊?那其实找一个串口测试程序,配置好,打开这个串口,看看能不能用就行了。倒也没有必要用GPRS验证程序去测试的。
RasSetEntryPropert…
[/Quote]

RasSetEntryPropert设置不成功

设置完后,在建立的拨号链接上看属性,并没有看到设置的附加命令。
而在正常的拨号链接上是有附加命令的
YuanQF2002 2008-06-18
  • 打赏
  • 举报
回复
最近,也在研究相关问题,不过没有你们专业,特来此向大家求解,我想问下,如何编程通过NDIS或RIL去访问EVDO(3G)或GPRS网络,谢谢!!
fishly_0 2008-06-18
  • 打赏
  • 举报
回复
gprs拨号有一个at指令可以设置apn等信息,不知道cdma有没有了?我现在在研究怎么用cdma模块拨号上网,对这方面有了解的兄弟说下了,网络上对于cdma模块拨号上网的资料似乎很少啊,。刚好这个帖子是讨论这个的,借个地方,呵呵。
想去找找RasDial的源代码,看看系统到底做了些什么或者说执行了哪些at指令,可以拨上去。

每次拨号都显示opening port,然后约几十秒后弹出this port is not
available,another program may be using it
这个问题应该是波特率设置不对引起的,前两天我研究gprs拨号上网时也是这样,波特率设定为115200时,我在控制面板建立的gprs拨号连接拨号时一直提示打开端口错误,后来改了波特率就可以了。
lenux 2008-06-17
  • 打赏
  • 举报
回复
createfile后不是可以设置一些dcb等的参数吗。
这些属于硬件参数,使用RasSetEntryProperties总是设置不成功。
所以这样直接打开串口设置,可能只能是临时设置一下,但是也是能用就行了。

不知道有没有其它想法。
sinpo1984 2008-06-17
  • 打赏
  • 举报
回复
如何在WINCE4.2/WINCE5.0中“永久”保存设置(保存注册表的方法)

参考的一篇(原连接无效,换上立宇泰的连接):

http://www.hzlitai.com.cn/article/ARM9-article/cphelp/20061013319.html


另一篇好文章在“技术频道”里(WINCE4.2下的修改看它就OK了):


http://www.hzlitai.com.cn/article/ARM9-article/cphelp/200706221551350.html

谢谢大家支持,下面分享一下我在WINCE5。0下做好保存设置的方法(用的ARMSYS2440平台,很简单哦,理论的东西就不多说了,上面两篇文章讲得比较清楚了):

第(1)步,在当前Platform下加入Hive-based Registry的支持;

第(2)步,在注册表platform.reg中查找“; HIVE BOOT SECTION”,有两处,在第二处(原来是:IF BSP_NONANDFS !的地方),将; HIVE BOOT SECTION 和 ; END HIVE BOOT SECTION之间的内容替换成:

[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="system.hv"
"Start DevMgr"=dword:1
"RegistryFlags"=dword:1
[HKEY_LOCAL_MACHINE\init\BootVars]
"DefaultUser"="default"

IF BSP_NONANDFS !
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
"DriverPath"="Drivers\\BuiltIn\\SMFLASH"
; LoadFlags 0x01 == load synchronously
"LoadFlags"=dword:1
"BootPhase"=dword:0


[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
"Prefix"="DSK"
"Dll"="smflash.dll"
"Index"=dword:1
"Order"=dword:0
"Profile"="SMFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Flags"= dword:1000 ;;;;;;;;;;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
"DefaultFileSystem"="BINFS"
"AutoPart"=dword:1
"AutoMount"=dword:1
"PartitionDriver"="mspart.dll"
"Name"="Microsoft Flash Disk"
"Folder"="ResidentFlash"
"BootPhase"=dword:0
"MountFlags"=dword:2
"Flags"= dword:1000 ;;;;;;;;;;

; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
"Flags"=dword:14
"FormatTfat"=dword:1
"CheckForFormat"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"Flags"=dword:00000014 ;FATFS_TFAT_ALWAYS|FATFS_FORCE_TFAT
"MountFlags"=dword:0

ENDIF ; BSP_NONANDFS
; END HIVE BOOT SECTION

第(3)步,最后一步,重新Sysgen(要选择clean before building),最后build BSP,makeimg。

这里贴一个已经修改好的platform.reg,供大家参考:

http://www.hzlitai.com.cn/bbs/viewFile.asp?BoardID=11&ID=712

shuiyan 2008-06-17
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lenux 的回复:]
createfile后不是可以设置一些dcb等的参数吗。
这些属于硬件参数,使用RasSetEntryProperties总是设置不成功。
所以这样直接打开串口设置,可能只能是临时设置一下,但是也是能用就行了。

不知道有没有其它想法。
[/Quote]
哦,你是怀疑串口的基本配置不成功啊?那其实找一个串口测试程序,配置好,打开这个串口,看看能不能用就行了。倒也没有必要用GPRS验证程序去测试的。
RasSetEntryProperties的设置不成功,是怎么确认的?
fangzheng2008 2008-06-17
  • 打赏
  • 举报
回复
在顶一下
zhujinqiang 2008-06-16
  • 打赏
  • 举报
回复
帮顶,学习。
lenux 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shuiyan 的回复:]
CE5 下的啊,没注意,以为是WM下的呢。

如果只是参数设置,那么应该会保存在注册表里。有没有从可以正常使用的GPRS设备上,导出相关注册表进行对比呢?
[/Quote]

我导出过,但是按照里面的东西,然后自己写了结构,进行设置就是不能和它一样。也不能工作。



最近我在研究通过直接打开串口来设置一些参数。不知道行不行。
lenux 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 henrylee1981 的回复:]
在设置AT命令行里不要写AT,如:AT+...,只写+...就可以了,在注册表中已经默认的加如了AT字符串,这个问题曾经搞了半个月才发现.
[/Quote]
谢谢你的回答。

其实你说的这个问题是个常识问题。赫赫。
shuiyan 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lenux 的回复:]
引用 8 楼 shuiyan 的回复:
CE5 下的啊,没注意,以为是WM下的呢。

如果只是参数设置,那么应该会保存在注册表里。有没有从可以正常使用的GPRS设备上,导出相关注册表进行对比呢?


我导出过,但是按照里面的东西,然后自己写了结构,进行设置就是不能和它一样。也不能工作。


最近我在研究通过直接打开串口来设置一些参数。不知道行不行。
[/Quote]
直接打开串口?是否想用AT直接进行配置?
但问题是现在原因到底是Modem没配置好?还是相应的WM下的配置未被系统确认到?如果是后者,那么你直接通过串口配置Modem也没用呀。
fangzheng2008 2008-06-16
  • 打赏
  • 举报
回复
学习一下,
xyj0663 2008-06-16
  • 打赏
  • 举报
回复
兄弟,问题解决了没有,我还在等你的程序好了给我一份,我现在只能通过注册表弄,其它办法没想出来.
加载更多回复(9)

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧