uimsbf和 bslbf的含义

bslbf代表位串,即“Bit string, left bit first ”,

uimsbf代表无符号整数,即”unsinged integer, most significant bit first”,数字表示该数据项所占的比特数

 

又一解释:

 

bslbf  (bit string, left bit first)  比特串,左位在先

uimsbf  (unsigned integer,most significant bit first)  无符号整数,高位在先

 

我也写一点经验吧,可能以后还有人查这个资料。
这两个单位的本身都是一样的都是bit的意思,就是2进制, 如何转换16进制,就用数手指吧……比如说4位的2进制那就是1111,然后数手指就数出来了~==!==
所谓用bslbf是因为这个串没到一个字节,或是不是字节的整数倍数,才用这种所谓“从左边数起多少位的比特流”
在数字电视领域,SI的规范里面,基本上所有的描述信息都是由一串有序的这种规则构成。比如5楼的:
Vision :4 bslbf  这是4位 ,半个字节,可以表达的区间是1111= 0xF
head_length:4 bslbf 同上,一个tag表示位必须对应一个length位,但是length位不一定要对应tag位,可以是在某个tag里面,私有约定哪几位是表示后面具体负载的长度。比如说后面有4个字节,这里的length就是0x4了
service_id:16 uimsbf 这是两个字节的表示位,11111111 11111111 = 0xFFFF
msg_id:16 uimsbf
在传输流里面传输的东西是一个:
tag  协议栈约定当收到的时候监听,当约定tag位长为1个字节时,例如是0x16
length: 前端发送的,表示这个tag包含的内容的具体长度,按照上面的例子,就是一共有5个字节的位长,一个字节是2的长度“0xFF”,所以在这里的例子是0xA的长度,约定length位的位长是2个字节的话,就是0x000A。
在C里面,解析这些东西是通过位计算(操作),因为传输流里面下来的数据大概是如下:
FDAIFNIWOQNIZNIUC!#@$%^#$@!%@16000AF4FFFFFFFF%%&……*……%%在整个传输流中,只有收到某一个程序里面写的tag后,才开始工作。
关于用C如何表示,其实必须有一个接口能把数据传近来,然后监听约定的值,如果没有,就是无用的数据,直接抛弃。如果有,就用C按照规范,把tag后面的负载拆开。每一位该怎么解析,用枚举搞定,最后封装个判断的函数, 哪些位的哪些组合返回什么, 哪些位的哪些组合又返回什么。然后以后别人用你的东西继续开发,或是自己继续开发,都方便了,公司里面也是这样处理的,就是专门做协议解析的人,和专门做规范的人,和应用实现的人(其中应用实现最简单,返回值就那么几个, 哪个返回值就操作封装好的那些函数即可)

时间: 2024-07-29 07:51:04

uimsbf和 bslbf的含义的相关文章

随机游走-C++使用 armadillo fuction——谁来解释下代码的含义?!!

问题描述 C++使用 armadillo fuction--谁来解释下代码的含义?!! 这是一个随机游走的算法代码,求相似度矩阵的 但是代码米有看懂,谁能一句一句的解释下啊?--谢谢咯! 附: arma::colvec degree = arma::sum(m_matWeight, 1); arma::mat matD = arma::diagmat(degree); m_matP = arma::solve(matD, m_matWeight); m_matB += m_matP; 重点是su

async 函数的含义和用法

本文是<深入掌握 ECMAScript 6 异步编程>系列文章的最后一篇. Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法 一.终极解决 异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题. 从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底.它们都有额外的复杂性,都需要理解抽象的底层运行机制. 异步I/O不就是读取一个

如何正确理解PHP程序错误信息的表示含义

  简述:我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时,PHP编译器会尽其所能报告它遇到的第一个问题.这样就产生一个问题:只有当错误出现时,PHP才能将它识别出来(

ip- 这段正则表达式的含义?

问题描述 这段正则表达式的含义? 整个函数是获取真实IP的, function real_ip() { static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Fo

new-link这段代码的含义是什么?看不懂

问题描述 link这段代码的含义是什么?看不懂 var query = data.Select((x, r) =>x.Select((v, c) => new { r, c, v })); var result = query.GroupBy(x => x.c).Select(x => x.Select(y => y.v).OrderBy(x => x.r).ToArray()).ToArray(); 解决方案 我的代码? var query = data.Select

struts-config.xml中action、forward、form-bean属性含义

xml 1>Action属性及含义: [path] Action类的相对路径 [name] 与本操作关联的Action bean的名称(ActionForm) [type] 连接到本映射的Action类的全称(可有包名) [scope] ActionForm bean的作用域(request或session) [Prefix] [Suffix] [className] ActionMapping对象的类的完全限定名默认的类是org.apache.struts.action.ActionMappi

解释一下JSP和JAVA的含义

js JSP的含义: JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序. JSP(JavaServer Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准. 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp).Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段

RSS名称丰富含义的由来

rss 讨论与Blog相关的技术,不可不谈的就是RSS,这个缩写在英文中可以有几个源头,并被不同的技术团体做不同的解释.既可以是"Rich Site Summary",或"RDF Site Summary",也可以是"Really Simple Syndication".为什么有这么多含义呢?这还要从RSS的一段今天也没有理清的关系说起. 今天肯定有人还记得IE 4刚刚推出来的时候有一个有趣的功能,那就是新闻频道.这个新闻频道的功能与Netsca

ASP的含义、功能和选择

    从字面上说,ASP包含三方面含义: 1.Active:ASP使用了Microsoft的ActiveX技术.ActiveX(COM)技术是现在Microsoft软件的重要基础.它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作.ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件.只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速.简易地建立自己的WEB应用. 2.Server:ASP运行在服务器端.这样就不必担心浏览器是否支持ASP所使用的编程语言.