Dms-cc中ddb的section length与message length的处理


以一个初始地址为0x 7f 20,长度0x205ddb section为例:

0x 7f 20

Section header,长度为8,其中section length字段结束后还有5

0x 7f 28

c message headermessage length字段在其末尾,以为adaptation length = 0

0x 7f 34

6ddb header

0x 7f 3a

Ddb data,长度0x1e7

0x8121

4crc字段

0x8125

 

这个sectionsection length 0x202message length 0x1ed

由上面的地址可知:

0x 7f 20 + 0x3 + 0x202= 0x8125,也就是section的结束位置。

dsm-cc的文档可知,section length表示的是section开始位置处section length字段结束后到section末尾的长度,这与上面的实际情况一致,以为section length结束位置距section3个字节。

下面来看message length

0x 7f 28 + 0xc + 0x1ed = 0x8121, 也就是message结束的位置。

dsmcc文档可知,message length表示该字段结束后到message末尾的长度,因为adaptation length = 0,也就是message length后没有adaptation header,所以message头加上0xc就刚好是message length结束的位置。

 

Dsm-cc中,特别要注意这个length是从当前字段结束时算起的,如果我们用直接read 文件头作为struct的方式来解析,需要特殊处理,计算剩余的length,如果是一个字段一个字段读取的,就没有这个问题了。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值