->
->
RIL同样采用的是流接口,包括了
RIL_INIT,RIL_OPEN等等十个标准流接口.绝大部分操作都在RIL_IOCTRL中完成
QueueCmd将AT命令的请求加入请求队列,由执行者线程负责执行.
同样,存在一个Responed 队列.
CResponse类承担了858 AT_Parser中的工作,每一条响应作为CResponse的一个实例.
线程:
CmdThreadProc
负责从命令队列取出命令并发送给串口,并读取应答.
ReadThreadProc
负责从串口读取解析,将响应放置到gRspQ队列
SIMUnlockThreadProc
HandleRsp 发送SetEvent(g_hSIMUnlockEvent);
线程WaitForSingleObject(g_hSIMUnlockEvent, INFINITE),负责SIM Ready后的初始化工作,完成后退出
SimReadyThreadProc
当模块启动后,启动此线程
Launch a thread to see if the SIM is ready or not
HandleRsp SetEvent(m_hSimReadyEvent);
线程启动后,检测SIM Staus是否Ready,否则WaitForSingleObject(m_hSimReadyEvent, apiiInfo.dwTimeout),完成一部分初始话工作.
RHAEventThreadProc
处理硬件消息.g_hRHAEvent由底层RHA Driver触发.
SwitchPortsThreadProc
可能是完成multipliex mode的切换和使用
CloseComPortThreadProc
关闭串口
AckSMSThreadProc
SMS ACK.部分模块需要手工ACK SMS.
RequeueThreadProc
// Place the command into the command queue
// (this may block if the queue is full)
// (this may block if the queue is full)
WCETimeoutThread
// We timed out -- cancel WaitCommEvent() in progress
HangupThreadProc
//ExATTimeoutThreadProc
ShutdownTimeoutThread
MonitorThreadProc
Thread responsible for monitoring RIL
SIMTKThreadProc
C wrapper for the SIM toolkit thread
PromptForSimAndRequeueCmdProc
好象是用来检查SIM卡PIN的
DataCmdTimeoutThread
当时间到了提醒DATA 超时?