sd_ss_event_proc的处理流程

脚本都在sdssscr.c里面

1、对于acquisition event来说:

SDSS_EVT_IS_XXX_ACQ(event)判断是否为acquisition event

ss_ptr->prev_act = *act_ptr;记住先前的action,后面可能会有判断是否两个action相同

if(ss == SD_SS_MAIN)

调用sdss_event_proc( event, iact_ptr );处理事件,这个处理留到后面讲

ss_ptr->ss_state = iact_ptr->ss_state;更新他的状态到SDSS_STATE_ACQ

然后有个判断switch( iact_ptr->act )对返回的事件类型判断

此时应该是case SDSS_IACT_ACQUIRE:

sd_ss_acq_update_pre()

sdsr_list_put_ref()将SDSR_SCHED_LST列表ref放在SDSR_ACQ_SYS列表项目里

  ss_ptr->acq_list  = list;
  ss_ptr->acq_pos   = pos;
  ss_ptr->acq_mode  = acq_mode;

记住获取的list 和pos、 acq_mode参数以

之后switch( sr_ptr->sys.mode )判断获取的模式:

有SD_MODE_CDMA

SD_MODE_AMPS

SD_MODE_HDR

SD_MODE_WCDMA

SD_MODE_GW等等

根据获取模式设置band,mode,chan等参数

之后会打印出action的log信息



sdss_event_proc函数的处理流程:

这里只说获取事件的处理

sdss_is_event_allowed判断当前是否允许处理这个事件

sdss_eng_stack_proc调用engines  process the event,他处理完后判断下一个状态sdss_state_next

如果 if( rtrn_iact_ptr->act == SDSS_IACT_ACQUIRE )返回的事件是获取则:

 ss_ptr->acq_list  = rtrn_iact_ptr->prm.acq.list;
 ss_ptr->acq_pos   = rtrn_iact_ptr->prm.acq.pos;



sd_ss_ind_cdma_acq_failed_pilot( NULL ) --》sd_ss_event_proc(SD_SS_MAIN, SDSS_EVT_CDMA_FAILED_PIOLT, rtrn_act_ptr (==null));

sdss_event_proc(event, iact_ptr 这里不等于NULL)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiqingyang2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值