wince 6.0 gprs 拨号 AT 高分求教

VCLIFE 2010-06-12 03:27:22
用单片机做过GSM/GPRS的打电话、发短信、TCP/IP数据发送,习惯了AT指挥串口操作

忽然到了wince了,迷茫了,明明简简单单的操作串口的事,怎么到windows这儿就整出这么多事来,什么cellcore、什么tapi、什么RIL、什么拨号

牢骚发完,言归正传。首先主要实现的是gprs发送数据的功能,注意我说的GPRS发送数据,不是发短信SMS,为什么有人老把GSM的功能强加给GPRS。
AT的操作的话主要是定义PDP,激活PDP,打开TCP/IP连接,然后发送数据

wince6.0 呢??严重迷茫了,说是wince 6.0提供了什么驱动了,我就更迷茫了,各种GSM/GPRS模块的AT指令都是不一样的,他微软这么能就?出一个通用的驱动?直接打电话,发短信,发数据没见一条AT指令,直接调用就解决了?难道每种开发板或是什么平台实际都对这个驱动做了移植了?

wince下的打电话、发短信例子大概看了下,确实是调用的库,而且还跟开发板没什么事,直接调用下到开发板就能用,不明白

我如果发送GPRS数据,而且不直接操作串口,是不是用什么传说的拨号,控制模块拨了号后,直接用socket就可以收发数据了

哪位明白人给我解解惑呢。
1. 开发板,比如6410+gprs板子,本身的系统移植,对上述的AT操作的驱动有修改?所以那些wince提供的库才能在各种平台,各种GPRS模块上调用成功?
2. 如果不用串口的方式,而用微软的什么RAS RIL TAPI的东西,是不是完全不用涉及到AT,直接调用就实现了我要的功能(我觉得不可理解)
3. 如果我写个串口程序,发送部分AT让模块拨号,然后应用程序中用socket就可以通讯了吗?

希望各位狠狠的拍砖
...全文
276 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhj0k 2011-11-22
  • 打赏
  • 举报
回复
呜呜,我在做关于GPRS的毕业设计,这代码程序难啃啊!!自己太菜了,求交流啊!!!!
armeasy 2010-06-13
  • 打赏
  • 举报
回复
wince6.0 呢??严重迷茫了,说是wince 6.0提供了什么驱动了,我就更迷茫了,各种GSM/GPRS模块的AT指令都是不一样的,他微软这么能就?出一个通用的驱动?直接打电话,发短信,发数据没见一条AT指令,直接调用就解决了?难道每种开发板或是什么平台实际都对这个驱动做了移植了?

WINCE6.0对于AT指令和你之前用的单片机是一样的,你可以写个应用封下AT指令,也可以直接拿WINCE驱动调试助手,在硬件可靠连接的前提下(如正常上电等),发AT命令,如AT,ATD10086;等。
驱动调试助手下载链接如下:
http://www.armeasy.com/bbs/viewthread.php?tid=115&extra=
祝好运。
VCLIFE 2010-06-13
  • 打赏
  • 举报
回复
还想讨论点问题:
刚刚看了MSDN关于RasDialFunc RasDial WM_RASDIALEVENT的说明,看一下我的理解对不对
RasDial的实现中调用了这个函数,由参数来控制是否传递这个消息
RasDialFunc则需要实现,我可以在这个函数中实现成将message再次传递到别处,比如CWnd
对吗????我的理解
fpcc 2010-06-13
  • 打赏
  • 举报
回复
可以不管,看你的个体的需求。
VCLIFE 2010-06-13
  • 打赏
  • 举报
回复
多谢楼上三位的解答,特别是楼上。
如果建立拨号,然后用socket通讯,那模块上进来电话或是短信回对这个造成影响吧?需要专门处理,还是不管不顾
我是蓝先生 2010-06-13
  • 打赏
  • 举报
回复
前段时间有研究过一下,给楼主说说我的理解,不保证正确。

楼主既然要用GPRS功能,应该知道GPRS模块是通过PPP协议来进行通信的吧?如果楼主用AT命令来进行TCP连接(类似AT+CIPSTART=....之类),那么使用的就是GPRS模块内置的协议栈,和WIN CE是没啥关系的,因为现在所有PPP的协议都是由GPRS模块内部进行了处理,不经过WINCE.

如果楼主想用SOCKET编程,那就要经过WINCE拨号才行了。一般是拨打*99***1#这种号码,然后返回的都是些PPP协议的东东,楼主可以用PC连着你的GPRS模块然后发送ATD*99***1#这条指令,看看返回的都是些什么东西。拨号之后,由ATD*99***1#返回的所有数据都由WINCE接手处理,他来负责和移动节点的通信协商,身份验证等步骤,过了之后你就会获得一个IP,有了IP就可以使用GPRS功能了。说白一点,在这个时候,你的GPRS模块只是一个数据收发模块,,只负责收发,它不处理数据了,处理工作由WINCE进行,所以你才可以用SOCKET编程。

还有就是RIL层实现了MUX协议,即多路复用协议。亦即RIL层虚拟出两条链路,一条用来做GPRS数据传输通道,一条用来收发正常的AT命令。因为进行GPRS数据传输的时候,串口是被占用了的,这个时候就没办法使用了,所以要虚拟另外一路出来,RIL层大概就是干这个东西的,因为RIL层的源码我也只是匆匆看了一遍,没有怎么深究。当然楼主的GPRS模块也要支持MUX协议才行,你可以看看你GPRS模块的操作手册,里面应该有讲述。
91program 2010-06-12
  • 打赏
  • 举报
回复
完全可以不用MS提供的东东,自己通过串口AT命令来控制的
oushengfen 2010-06-12
  • 打赏
  • 举报
回复
3. 如果我写个串口程序,发送部分AT让模块拨号,然后应用程序中用socket就可以通讯了吗?
当然可以啊.

19,502

社区成员

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

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