当前位置: 首页 > news >正文

网站织梦温州建设小学瓯江校区网站

网站织梦,温州建设小学瓯江校区网站,鹰眼智能营销系统,wordpress 图片失效文章目录 0. 概述1.基本数据序列化2.字符串序列化2.1 字符串通用规则2.2 固定长度字符串规则2.3 动态长度字符串规则 3.结构体序列化4. 带有标识符和可选成员的结构化数据类型5. 数组5.1 固定长度数组5.2 动态长度数组5.3 Enumeration#xff08;枚举#xff09;5.4 Bitfield… 文章目录 0. 概述1.基本数据序列化2.字符串序列化2.1 字符串通用规则2.2 固定长度字符串规则2.3 动态长度字符串规则 3.结构体序列化4. 带有标识符和可选成员的结构化数据类型5. 数组5.1 固定长度数组5.2 动态长度数组5.3 Enumeration枚举5.4 Bitfield位域5.5 Union/Variant联合 / 变体 总结 0. 概述 SOME/IP序列化分为四部分基本数据序列化字符串序列化结构体序列化数组序列化。 1.基本数据序列化 TypeDescriptionSize [bit]RemarkbooleanTRUE/FALSE value8FALSE (0), TRUE (1)uint8unsigned Integer8uint16unsigned Integer16uint32unsigned Integer32sint8signed Integer8sint16signed Integer16sint32signed Integer32float32floating point number32IEEE 754 binary32 (Single Precision)float64floating point number64IEEE 754 binary64 (Double Precision) 对于每个参数的字节序是由配置来决定的大小端顺序。这就好比是给一群数字 “小朋友” 排队不同的配置会让他们站成不同的顺序。 在对布尔值进行评估时只看 uint8 中的最低位其他位都被忽略。 这些基本数据类型在 SOME/IP 协议中就像是一个个小积木通过不同的组合和排列构建起了复杂的数据结构支撑着整个协议的数据处理和传输功能。 2.字符串序列化 2.1 字符串通用规则 编码支持 支持不同的 Unicode 编码包括 UTF - 8、UTF - 16BE 和 UTF - 16LE。 字符串终止 UTF - 16LE 和 UTF - 16BE 字符串应以零字符‘\0’终止且至少有两个 0x00 字节。所有字符串应始终以字节顺序标记BOM开始BOM 应包含在固定长度和动态长度字符串中用于检测编码。 2.2 固定长度字符串规则 字符串终止 固定长度字符串也应以 ‘\0’ 字符终止且字符串长度包括 ‘\0’ 字节在数据类型定义中指定未使用空间用 ‘\0’ 填充BOM 包含在长度内。 长度检查 如果固定长度字符串长于预期反序列化应停止消息视为格式错误。如果固定长度字符串短于预期但正确以 ‘\0’ 终止可接受。如果固定长度字符串短于预期且未正确以 ‘\0’ 终止反序列化应停止消息视为格式错误。 2.3 动态长度字符串规则 长度字段 动态长度字符串应以长度字段开始长度以字节为单位测量长度字段在 BOM 之前BOM 包含在长度内字符串以 ‘\0’ 终止字符串包括 ‘\0’ 终止的最大字节数由数据类型定义得出。 长度定义 动态长度字符串的长度字段有 8、16 或 32 位可选由接口规范决定未指定时默认 32 位。长度字段的值不包括长度字段本身。如果动态长度字符串长于预期反序列化应停止消息视为格式错误。 替代传输方式 除了将应用程序字符串作为带有 BOM 和 ‘\0’ 终止的 SOME/IP 字符串传输外还可将其作为普通动态长度数组传输不带 BOM 和 ‘\0’ 终止但应用程序需自行处理字符串如编码转换。 概括而言 定长字符串格式【BOM】【data】【‘\0’】 变长字符串格式【length】【BOM】【data】【‘\0’】 lenth大小默认为4byte包含BOMdata和结束符的长度总和。 3.结构体序列化 总体原则 结构体序列化要依循内存布局像按图施工一样逐个参数序列化到缓冲区且要考虑内存对齐。 示例说明 以几个结构体及其内部成员如 Struct_1 包含 uint32 a 和 float32 b [2] 等展示序列化过程如同按盒子内物品摆放顺序处理。关键规则 填充数据不会自动插入无用填充数据保证数据紧凑。长度字段可配置插入 8、16 或 32 位长度字段来标识结构体传输字节数长度不包含长度字段自身。长度检查处理接收长度大于定义时只按定义处理多余跳过长度小于且无法补全缺失数据时反序列化中止视为格式错误。序列化顺序按深度优先遍历顺序进行序列化确保成员处理无遗漏或重复。 4. 带有标识符和可选成员的结构化数据类型 总体目的 为了实现更好的前向和后向兼容性在结构体成员或方法参数前可添加额外的数据标识符Data ID。接收方可以通过这些标识符跳过未知成员或参数保证系统在处理新旧数据时的兼容性。 标识符规则 唯一性数据标识符在一个 struct 的直接成员或方法的参数中必须唯一但不需要在不同 struct 或方法之间保持唯一。配置一致性对于 struct 同一层级的所有成员要么全部定义数据标识符要么全部不定义对于方法的所有参数也是如此。 数据类型编码 除了数据标识符还使用 “线类型wire type” 来编码成员的数据类型两者共同组成 “标签tag”。标签结构标签长度为两个字节其布局包含多个部分包括保留位、线类型、数据标识符等。例如保留位在第 7 位线类型在第 6 - 4 位数据标识符在第 3 - 0 位和第二个字节的全部 8 位。 不同数据类型的序列化规则 基本数据类型如果序列化的成员或参数是基本数据类型线类型 0 - 3且配置了数据标识符标签应直接插入在成员或参数前面并且不插入长度字段。复杂数据类型如果是复杂数据类型线类型 4 - 7且配置了数据标识符标签应插入在长度字段前面并且必须插入长度字段。 长度字段相关规则 长度字段始终包含到 struct 中下一个标签的长度。对于 struct、动态长度字符串、动态长度数组、联合类型等都有相应的长度字段规则且这些类型的长度字段大小在配置中应大于 0并且通常应配置为相同大小以便在处理未知成员或参数时接收方能够根据统一的规则来解析数据。 可选成员处理 序列化器在序列化时如果可选成员被标记为不可用不应将其包含在序列化字节流中反序列化器在反序列化时应忽略字节流中不存在的可选成员。 未知数据处理 如果反序列化器读取到未知的数据标识符它应根据线类型和长度字段的信息跳过未知的成员或参数如果在字节流中找不到必需的非可选成员或参数反序列化应中止并将消息视为格式错误。 接口版本与序列化兼容性 如果对现有服务接口引入带标签的序列化而之前未使用标签应增加主要接口版本来指示这一变化。 带有标签的序列化示例 5. 数组 5.1 固定长度数组 长度定义 固定长度数组的长度由数据类型定义确定。可以将其视为相同类型元素的重复排列。例如一维固定长度数组携带指定数量n的相同类型元素其布局按照顺序依次排列元素大小乘以元素数量就是数组占用的空间大小。 多维固定长度数组的序列化遵循编程语言中的内存布局行主序。 长度处理与错误情况 如果接收到的固定长度数组长度大于预期根据数据类型定义只解释指定数量的元素多余字节根据长度字段跳过。如果长度小于预期且接收方无法提供缺失数据的替代值反序列化将中止消息视为格式错误。 5.2 动态长度数组 布局与长度字段 动态长度数组的布局基于固定长度数组可以在数组开头使用可选的长度字段来指定数组字节长度。长度字段长度可以是 0、8 位、16 位或 32 位由配置决定。当长度字段设置为 0 位时数组元素数量固定此时相当于固定长度数组。 -长度不包括长度字段本身大小。 多维数组特点 在多维动态长度数组中每个不同维度的子数组都有自己的长度字段。 如果需要静态分配缓冲区大小数据类型定义应指定每个维度的最大长度。 当测量字节长度时复杂多维数组在反序列化时可以跳过。 SOME/IP 支持同一维度中列和行的不同长度每个动态长度数组前都需要有长度指示。 长度处理与错误情况 如果动态长度数组长度大于预期只解释指定数量的元素多余字节根据长度字段跳过。 5.3 Enumeration枚举 枚举在 SOME/IP 中不作为独立类型考虑而是被当作无符号整数数据类型传输。 5.4 Bitfield位域 位域应作为无符号数据类型uint8/uint16/uint32传输数据类型定义可以指定每个位的名称和值。 5.5 Union/Variant联合 / 变体 联合用于在网络上传输具有不同数据类型的可选数据由长度字段、类型选择器和有效负载组成。 长度字段定义数据和填充字节的大小不包括长度字段和类型字段本身类型字段指定数据类型有效负载根据类型字段进行序列化。 长度字段长度由配置决定可以是 32 位、16 位、8 位或 0 位当长度字段为 0 位时联合中的所有类型必须长度相同。 类型字段的值由配置为每个联合单独定义其中 0 值保留用于空类型表示空联合并且是否允许空联合也由配置决定。 总结 整体来说SOME/IP的序列化和反序列化比较死板不够灵活。
http://www.tj-hxxt.cn/news/222457.html

相关文章:

  • 网站窗口建设淘宝联盟网站备案
  • 如何把网站放到百度wordpress大前端logo
  • 现在网站开发哪个语言好wordpress模版如何套用
  • 进入百度app青岛关键词优化排名
  • 做网站42类商标怎么选小类注册公司名字大全
  • 网站qq 微信分享怎么做东莞活动网站设计模板
  • php语言做购物网站厦门seo网站关键词优推广
  • 实实通信的视频网站怎么做做公众号可以看的网站
  • 2017网站主流设计风格最新做做网站免费
  • 建设商务网站作用深圳市龙华区观澜街道
  • 洛阳网站制作wordpress 5.0.1
  • 南山做网站方案网站模板 jsp
  • 文明网站建设方案个人外贸公司网站
  • 做网站开发用笔记本要什么配置个体工商户备案网站备案
  • 简阳电力建设立项网站拓者设计吧电脑版
  • 网址大全网站做的好的有哪些网站
  • 建筑工程招投标网站自己有服务器怎么建设网站
  • 怎么夸一个网站开发公司西宁网站建设建站
  • 秦皇岛网站开发公司电子商务网站建设与管理目录
  • 上海人才网站建设兰州seo快速优化报价
  • 公司网站在百度搜不到推广渠道有哪些平台
  • 艺术设计专业灵感推荐网站网站推广策划包含的内容
  • 鞍山网站设计公司工商注册系统
  • 做钓鱼网站会被抓判刑吗东莞什么行业做网站的多
  • 网站建设项目的工作分解wordpress mysql 5.7
  • 云抢购网官方网站网站代理合作
  • 漂亮的网站单页网上广告设计培训
  • 事业单位 网站备案平板微信hd版
  • 石家庄网站建设公司怎么样网站开发提成
  • 低价格制作网站手机小游戏网站