如何通过LOG确定终端调用了哪些SD脚本和 添加一个脚本的示例

前言:

这也是我的一篇很老的技术积累了。里面的6085平台是比较老的高通平台。到现在代码肯定有改动,但是搜索脚本的框架还是没有变,仍然可以作为参考。

如何抓取搜网流程SD的LOG

  本文使用的嵌入端软件是6085平台的33701基线.不同基线的脚本内容会有差异.

2 从SD的LOG看终端使用了那些脚本

这个比较简单,通过关键字“SCR=”MACTH LOG。

比如如下的抓图是MATCH的开机LOG,并且终端处在无信号的环境下。

这些打印语句基本在)函数中打印。

以第一行为例,打印的信息为“User scr=1,line=1,cons=56”

“User”指出脚本所在的组,“SCR=1”指出是所在组的第几个脚本,“line=1”指出当前执行脚本的第几行,“cons=56”指出这一行的CONSRTUCTURE是多少。

总共有多少个组,从如下的枚举确定:

每个组对应的脚本集合在如下的函数中可以确定:

再回头看一下“User scr=1,line=1,cons=56”。

“User”代表对应的脚本组为。如下图:

“SCR=1”指出是上述组的第一个脚本,即

 

“line=1”指出目前在执行脚本的那一行。行数从0开始算起。目前执行:

“cons=56”指出目前行的行为,CONSTRUCT是多少。其值为定义。

  当前执行的第一行扩展开如下:

。即当前的CONS为,其枚举值即为56。

3 简单描述一下ACT_SCR宏的含义

会调用

即的一个脚本.

 

仍然以开机LOG为例:

按照ACT_SCR宏,实际上扩展为:

值为1,实际上是调用的第一个脚本,即.

  通过下面的打印语句也可以证明:即执行的第一行后,转而执行的第0行.

4. 简单描述一下PRE_SCR宏的含义

仍然以开机LOG为例:

 

即执行的第一行后,转而执行的第0行.

当执行到第四行遇到PREV_SCR,则会返回原来的脚本,继续执行.原来执行到第一行,则现在执行第2行.

  如下图的LOG抓图:

 

5. 简单描述一下PROC_EVT宏的含义

ACT_SCR用于调用CALLED组,即的脚本.

其他还有多个组,如下图:

通过PROC_EVT,可以调用除CALLED组以外,其他组的脚本. 的入参是类型。枚举值被分成若干组,每一组对应上面的一组脚本。这些组如下:

  下面的函数确定一个EVENT对应哪个组

 

  最终确定执行哪个脚本在函数中。中有一个循环,从事件对应的脚本组中从第0个脚本开始判断,遇到的一个符合条件的脚本则被执行。

 

仍然以开机LOG为例. 最后调用了另一个脚本.

代码和LOG如下:

调用了CALLED 组的第三个脚本,即.

 

抛出了一个事件属于组。事件组对应脚本组。

会遍历脚本组。其第0个脚本为

前面三个判断条件,第二个条件就不符合要求,CDMA下只有自动模式。所以不会最调用。最终遍历到脚本,符合条件,然后被执行。见如下LOG:

 

从上面的描述可以看到,在脚本组里同一个事件在不同条件可以触发不同的脚本,若两个脚本均符合条件,则在前面的脚本被执行。可见脚本的顺序也是比较关键的。

 

5. 添加一个脚本的示例

 

   此例子用于向组添加一个脚本。

首先定义一个脚本,如下:

然后将其添加到最后:

然后在最后添加一个枚举值:

最后若在一个脚本里调用这个新脚本则添加如下这句话:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值