西门子RIL线程分析

来源:互联网 发布:vb赛车小游戏 编辑:程序博客网 时间:2024/04/29 22:22
-> ->
 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)
    
 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 超时?
原创粉丝点击