FFOS rilworker parcels 解析

来源:互联网 发布:linux只显示ip 编辑:程序博客网 时间:2024/05/16 10:42

Parcels

总体介绍

Ril 消息打包为数据包(parcels)来编码和解码

在dom/system/gonk/ril_worker.js 中,使用Buf 处理。

 

Ril 使用3种数据包(parcels)

 

1.      RIL Request

Gecko 向rild 发送请求数据包

2.      Ril Solicited Request

Rild 向gecko 发送请求回报数据包

3.      Ril unsolicited Request

Rild 向gecko 发送主动上报数据包

RIL Request Parcel(请求数据包格式)

RIL request 请求数据包(parcel) 格式:

•0~3: Parcel size

•4~7: Request type

•8~11: Token number

•12~: User data

 

7715 FFOS 1.4如拨打电话 1234567890

0,0,0,48,10,0,0,0,219,0,0,0,10,0,0,0,49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

 

数据

含义

0,0,0,48

数据包长度(从10,0,0,00,0,0,0共48)

10,0,0,0

请求类型,在ril_consts.js中定义如下:

this.REQUEST_DIAL= 10;

219,0,0,0

数据包标记

10,0,0,0,

49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,48,0,0,0,0,0

10,0,0,0 表示字符串长度为10

值为:1234567890

0,0,0,0,0,0,0,0,0,0,0,0

CLIR+UUS 信息

Ril Solicited Parcel(请求回报数据包)

Ril solicited请求回报数据包(parcel)格式

 

•0~3: Parcel size

•4~7: Response Type. (0 – Solicited)

•8~11: Token number

•12~15: Error code

•15~ : Response data

拨打1234567890 的 response 数据如下:其中(0~3:Parcel size)已经被解析

RIL Worker: Parcel (size 12): 0,0,0,0,219,0,0,0,0,0,0,0

数据

含义

0,0,0,0

代表请求回应数据

219,0,0,0

数据包标记

0,0,0,0

错误数据

这个请求回应数据包,没有任何数据

 

Unsolicited Response Parcel(主动上报数据包)

主动上报数据包格式:

•0~3: Parcel size

•4~7: Response Type. (1 –Unsolicited)

•8~11: Event type

•11~ : Event Data

CALL状态变化的主动上报log:其中(0~3: Parcel size)已经被解析

RILWorker: Parcel (size 8):

1,0,0,0,233,3,0,0

数据

含义

1,0,0,0

代表主动上报数据

233,3,0,0

主动上报类型

数据

NULL

233,3,0,0 主动上报类型计算方法:

计算方法:

1.      233 转换为16进制:0xE9

2.      将3转换为16进制:0x03

3.      将两个16进制数组合为:0x03E9

4.      将0x03F1 转化为10进制:1001

5.      在ril_consts.js中:

this.UNSOLICITED_RESPONSE_CALL_STATE_CHANGED=1001;

 

0 0