[发明专利]数据序列化方法、反序列化方法、进程间指令参数传递方法在审
申请号: | 202310067733.6 | 申请日: | 2023-01-16 |
公开(公告)号: | CN116225578A | 公开(公告)日: | 2023-06-06 |
发明(设计)人: | 顿新明;朱秀军;邓武彬;李先春;李小龙 | 申请(专利权)人: | 长城信息股份有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/445;G06F9/54 |
代理公司: | 长沙市融智专利事务所(普通合伙) 43114 | 代理人: | 胡喜舟 |
地址: | 410100 湖南省*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 序列 方法 进程 指令 参数 传递 | ||
本发明公开了一种数据序列化方法、反序列化方法、进程间指令参数传递方法,对每个指令号及其对应的指令参数类型,在一个配置文件中编写好映射关系,以及编写指令参数类型的结构信息,再将配置文件编译成一个二进制的obj配置文件,在后续的序列化和反序列化中,通过这个obj配置文件查找指令号对应的指令参数类型,对指令参数通过其字段组成来对每一个字段按照其字段类型固有的预设序列化方法和反序列化方法来进行序列化和反序列化。达到了自动化处理所有指令参数类型的指令数据,将现有人工硬编码的方式,转化为通过配置文件来领过处理数据的方式,提高了编程和执行效率,便于理解和维护,准确性高,效果好。
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据序列化方法、反序列化方法、进程间指令参数传递方法。
背景技术
在现有WOSA XFS框架中,SP作为一种设备服务,是对多个应用同时提供服务的,每个应用需要请求设备操作的时候,都是将指令通过WFSAsyncExecute(DWORD dwCommand,LPVOID lpCmdData)形式将其参数传递到设备服务,SP需要对调用指令进行排队,锁定等操作,所以SP与应用调用是需要在不同进程中实现,这就涉及到了进程间参数传递,而应用调用时指令参数是一个指针类型,而指针类型在不同进程间是不能互相访问的,这就需要将一端的指针类型的结构参数内容通过某种方式将其解析成可以理解的二进制数据流,然后通过进程间数据交换,在另一端将数据还原成指针类型,该指针的内容与调用前内容保持不变,即使其指针的地址有所变化。
现有技术中,对指针类型内容的数据编码和反编码都是通过代码的形式,对于每个指令及其对应的参数都是通过硬编码的方式实现,导致出现代码编写枯燥,大量代码重复,数据处理容易出错(每个人的理解和实现能力不一样导致),代码效率不高,不能灵活处理指令和其参数的映射关系,参数结构变化导致其代码也需要做动态调整,不方便维护,后继添加扩展指令也需要修改代码,日志记录其参数格式也不统一(每个人实现不一样)。
发明内容
本发明提供了一种数据序列化方法、反序列化方法、进程间指令参数传递方法,以解决现有的序列化和反序列化方法开发及维修效率低,效果也不佳的问题。
第一方面,提供了一种数据序列化方法,包括:
构建配置文件,在配置文件中编写每个指令号与其对应的指令参数类型的映射关系,并定义每种指令参数类型的结构信息;
将构建的配置文件编译成二进制的obj配置文件;
获取指令,根据指令号,从obj配置文件中找到对应的指令参数类型;
先对指令号进行序列化,然后根据指令参数类型对应的预设序列化规则对指令参数值进行序列化,生成二进制数据流。
根据第一方面,在一种可能的实现方式中,所述根据指令参数类型对应的预设序列化规则对指令参数值进行序列化,包括:
A1:若指令参数类型为非结构体指针数组类型和结构体指针类型的基本数据类型,则直接按照每个基本数据类型对应的预设序列化规则对指令参数值进行序列化;若指令参数类型是结构体指针数组,则进入步骤A2;若指令参数类型是结构体指针,则进入步骤A3;
A2:如果指令参数指针为空,则序列化其元素个数N为0,序列化个数为0,完成序列化;若元素个数不为0,则先序列化其个数N,其中每个元素都是结构体指针,对于结构体指针元素,进入步骤A3来序列化其内容;
A3:开始序列化单个结构体指针,进入步骤A4;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长城信息股份有限公司,未经长城信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310067733.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:膜电极及其制备方法
- 下一篇:一种一体化端子排电气组件安装保护方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置