各位好.我是CE6.0 RIL层开发的新手。请教几个问题:
1、TCP/IP数据的封装是否工作在RIL层的上层。也就是说是当我用Socket将一个数据send(str);的时候。系统是通过一个怎样的过程将数据按TCP协议封装好,然后是否调用了一些RIL的接口。并通过RIL 驱动modem,将TCP数据包发送出去?
2、在我的RIL PDD驱动没有完成的情况下,我要怎样测试才能知道我通过Socket发出的数据到达了RIL层的command queue?
3、驱动一个modem在现有的OS的MDD和ENFORA基础上,我需要怎样来修改我的PDD?(MDD是否需要修改?)modem的AT 格式部分与ENFORA保持了一致性。我想先把数据的流程通道打通。有谁能给一些建设性意见?万分感谢。
几个问题问得比较广,可以的话stone1008@163.com;谢谢/。
`
如果只考虑数据业务,不用使用RIL,RIL是同时电话短信数据等业务的模块。
可以通过打电话及发短消息等功能来测试。
who can help me?
我想暂时把上网这一个功能实现.谁能告诉我TCP/IP栈会不会自己调用RILmain里面的IO_CONTROL来分派外部socket请求?然后调用的RIL_PROXY的哪一些接口,然后又是调用RIL_DRIVE的哪些接口?对于我的Modem来说.我还需要怎么样来实现我的AT指令? 谁能给我说一下阿?谢谢!
前段时间看了陈工的一片文章是这样介绍的:
710mux驱动之上就是ril驱动了。MS已经抽象了大部分ril驱动的功能,通过了MDD源码,所以写一个ril驱动就是把自己modem相关的代码和MDD链接成一个流驱动rilgsm.dll。ril驱动与串口驱动的最大不同在于,ril是同时支持多个应用使用的,每次open都new一个Instance对应。
DWORD RIL_Open(DWORD dwData, DWORD dwAccess, DWORD dwShareMode)
{
pDevice = (CRilHandle)dwData;
pHandle = new CRilInstanceHandle;
pHandle->Init(pDevice);
pDevice->AddToList(pHandle);
return (DWORD)pHandle;
}
上层应用打开RIL之后就可以使用RIL流驱动的IOCTL来使用RIL驱动。
不会回答你的问题,不过我的TCP/IP部分基本上不用改动就能用了。
PDD部分我用的是TTPCOM,通过unimodem拨号后,直接使用套接字实现TCP/IP协议,比较简单。
引用: 引用 9 楼 molabo 的回复:
不会回答你的问题,不过我的TCP/IP部分基本上不用改动就能用了。
PDD部分我用的是TTPCOM,通过unimodem拨号后,直接使用套接字实现TCP/IP协议,比较简单。
能否把你的实现过程给我说一下.我老觉得我理解的原理还有问题.谢谢!
现在过来看。Unimodem当然是简单。
但是既然用了RIL Driver 当然还是直接用RIL来走整个过程。
基于RIL开发上网功能时,只是在连接建立时需要使用RIL,一旦连接建立成功,系统直接通过PPP进行数据传输,跟RIL没关系了。连接建立用到的组件,自上而下为RAS->TAPI->CELLTSP->RIL->MUX->RADIO MODULE;数据传输用到的组件,自上而下为TCP/IP->PPP->NDIS->ASYNCMAC->MUX->RADIO MODULE