SOME/IP协议详解「2.1.7·序列化:联合体|Union/Variant」

      最后更新:2022-02-03 10:28:05 手机定位技术交流文章

      SOME/IP协议详解「2.1.7·序列化:联合体|Union/Variant」

      点击返回雪云飞星的SOME/IP协议详解「总目录」

      • SOME/IP协议详解「2.1.7·序列化:联合体|Union/Variant」
      联合体可以说是我们使用最少的类型了,甚至有的车厂直接静止使用联合体,以确保someip通信报文的易读性;同时有些c语言规范也不提倡使用联合体,容易在使用中出问题,所以可能是我们使用中最不常见的一种形式 联合体是说将一块内存的数据可以解析成不同的类型,以方便调用,而序列化的时候,只能选定其中一种类型进行传输。比如我们有如下的union定义:

      我们选定按照b类型传输,那么最终的layout如图:
      在这里插入图片描述

      我们分为3段来看:

      1. length代表这个union序列化后的长度,这里包括后面的type+数据+填充的长度。这个长度域也可以配置占用字节数(0,1,2,4bytes;其中0就是不要有长度域)
      2. type代表要将这个联合体以哪种类型进行序列话,比如我们选择上面的uint16,那么对应的类型是2(0保留为NULL的含义,从1开始算,uint16对应type==2)
      3. 然后就是uint16 类型的b这个数据本身
      4. 最后为了之前讲过的对齐原因,这里填充了2bytes

      点击返回雪云飞星的SOME/IP协议详解「总目录」

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/17834.html

          热门文章

          文章分类