(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210737910.2
(22)申请日 2022.06.28
(65)同一申请的已公布的文献号
申请公布号 CN 114816803 A
(43)申请公布日 2022.07.29
(73)专利权人 航天宏图信息技 术股份有限公司
地址 100195 北京市海淀区西杉创意园四
区5号楼3层3 01室
(72)发明人 王宇翔 徐华勋 李宁 马海波
廖通逵
(74)专利代理 机构 北京超凡宏宇专利代理事务
所(特殊普通 合伙) 11463
专利代理师 董艳芳
(51)Int.Cl.
G06F 9/54(2006.01)G06F 9/50(2006.01)
G09B 9/00(2006.01)
(56)对比文件
CN 113656963 A,2021.1 1.16
WO 2005066778 A2,2005.07.21
CN 101482828 A,20 09.07.15
审查员 李娜
(54)发明名称
一种分布式仿真通信消息处 理方法及装置
(57)摘要
本申请提供了一种分布式仿真通信消息处
理方法及装置, 涉及分布式仿真技术领域, 具体
为: 接收服务器发送的实体状态消息; 利用处理
线程对实体状态消息的状态信息数据包进行解
析, 将解析得到的实体状态消息的时间戳和各实
体的状态数据放入实体包, 将实体包放入处理线
程对应的线程资源池映射字典的实体包队列; 对
实体包队列的所有实体包按照时间戳进行排序,
读取排序后的第一个实体包数据; 从第一个实体
包数据中获取各实体的状态数据, 根据各实体的
状态数据对场景中的实体进行渲染。 本申请可以
有效解决仿真场景实体数量较多时引起的客户
端消息解析阻塞, 造成场景更新不及时甚至程序
崩溃等问题; 提高实体消息 响应速度和场景渲染
效率。
权利要求书2页 说明书7页 附图3页
CN 114816803 B
2022.09.23
CN 114816803 B
1.一种分布式仿真通信消息处 理方法, 其特 征在于, 包括:
接收服务器发送 的实体状态消息, 所述实体状态消息包括状态信息数据包, 所述状态
信息数据包 包括每个仿真时刻的整个场景内所有更新的实体的状态数据;
利用处理线程对实体状态消息的状态信 息数据包进行解析, 将解析得到的实体状态消
息的时间戳和各实体的状态数据放入实体包, 将实体包放入处理线程对应的线程资源池映
射字典的实体包队列;
对实体包队列的所有实体包按照时间戳进行排序, 读取排序后的第一个实体包数据;
从第一个实体包数据中获取各实体的状态数据, 根据各实体的状态数据对场景中的实
体进行渲染;
所述方法还 包括:
创建线程池, 所述线程池 包括预设数量的处 理线程;
创建线程资源 池映射字典, 为线程池中的处 理线程生成线程 ID号;
为线程资源池映射字典创建一个实体包队列, 用于存储实体包, 所述实体包的数据结
构包括: 线程ID号、 时间戳和实体数据缓存队列; 所述 实体数据缓存队列用于存储 各实体的
状态数据, 各实体的状态数据包括: 实体ID号, 位置、 姿态和生存状态, 其中, 生存状态表示
实体是否已被击毁。
2.根据权利要求1所述的分布式仿真通信消息处理方法, 其特征在于, 利用处理线程对
实体状态消息的状态信息数据包进行解析 前包括:
判断线程池当前活跃线程的个数是否已达到预设数量, 若为否, 则创建新线程作为处
理线程, 并利用线程资源池映射字典为处理线程生 成线程ID号; 否则, 从线程池内选取一个
空闲线程作为处 理线程。
3.根据权利要求2所述的分布式仿真通信消息处理方法, 其特征在于, 利用处理线程对
实体状态消息的状态信息数据包进行解析, 将解析后的实体状态消息时间戳和各实体的状
态数据放入实体包; 包括:
创建一个实体包;
将处理线程的线程 ID号赋值给实体包的线程 ID号;
从实体状态消息的状态信 息数据包中获取实体状态消息的时间戳, 将该时间戳赋值给
实体包的时间戳;
从实体状态消息的状态信 息数据包获取各实体的状态数据, 将所有实体的状态数据放
入实体包的实体数据缓存队列。
4.根据权利要求3所述的分布式仿真通信消息处理方法, 其特征在于, 从实体状态消息
的状态信息数据包获取各实体的状态数据, 将所有实体的状态数据放入实体包的实体数据
缓存队列; 包括:
步骤S1: 根据通信协议获得单个实体的状态数据的数据结构大小, 作为单个实体数据
大小;
步骤S2: 以实体状态消息的状态信息数据包的读取标识位置为起始位置, 读取单个实
体数据大小的数据, 作为单个实体的状态数据;
步骤S3: 根据通信协议, 判断单个实体信息数据中的实体类型是否为实体; 若为是, 则
将该单个实体的状态数据放入实体包的实体数据缓存队列, 进入步骤S4; 否则终止当前处权 利 要 求 书 1/2 页
2
CN 114816803 B
2理, 并提示错误信息, 进入步骤S4;
步骤S4: 判断状态信息数据包是否读取完毕, 若为是, 则结束处理; 否则将实体状态消
息的状态信息数据包的读取 标识位置进行偏移, 偏移量 为单个实体数据大小, 返回步骤S2。
5.根据权利要求1所述的分布式仿真通信消息处理方法, 其特征在于, 所述方法还包
括: 随机生成各实体的状态数据, 对场景进行初始化。
6.根据权利要求5所述的分布式仿真通信消息处理方法, 其特征在于, 根据各实体的状
态数据对场景中的实体进行渲染, 包括:
对于每个实体, 根据实体ID号判断所述实体是否在当前场景中, 若为否, 将所述实体添
加到场景内, 并根据实体的状态数据设置实体的位置和姿态; 否则, 根据实体生存状态判断
实体是否已被击毁, 若为是, 则将实体从场景中移除; 否则, 根据实体的状态数据对场景内
实体的位置和姿态进行 更新;
根据各实体的位置和姿态对场景中的实体进行渲染。
7.一种分布式仿真通信消息处 理装置, 其特 征在于, 包括:
接收单元, 接收服务器发送的实体状态消息, 所述实体状态消息包括状态信息数据包,
所述状态信息数据包 包括每个仿真时刻中整个场景内所有更新实体的状态数据;
解析单元, 利用处理线程对消息的状态信息数据包进行解析, 将解析后的各实体的状
态数据放入处 理线程对应的线程资源 池映射字典的实体包队列;
排序单元, 用于对实体包队列的所有实体包数据按照 时间戳进行排序, 读取排序后的
第一个实体包数据;
渲染单元, 用于从第一个实体包数据中获取各实体的状态数据, 根据各实体的状态数
据对场景中的实体进行渲染;
所述装置还用于:
创建线程池, 所述线程池 包括预设数量的处 理线程;
创建线程资源 池映射字典, 为线程池中的处 理线程生成线程 ID号;
为线程资源池映射字典创建一个实体包队列, 用于存储实体包, 所述实体包的数据结
构包括: 线程ID号、 时间戳和实体数据缓存队列; 所述 实体数据缓存队列用于存储 各实体的
状态数据, 各实体的状态数据包括: 实体ID号, 位置、 姿态和生存状态, 其中, 生存状态表示
实体是否已被击毁。
8.一种电子设备, 其特征在于, 包括: 存储器、 处理器和存储在所述存储器上并可在所
述处理器上运行 的计算机程序, 所述处理器执行所述计算机程序时实现如权利要求1 ‑6任
一项所述的分布式仿真通信消息处 理方法。
9.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质存储有计算机指
令, 所述计算机指令被处理器执行时实现如权利要求1 ‑6任一项所述的分布式仿真通信消
息处理方法。权 利 要 求 书 2/2 页
3
CN 114816803 B
3
专利 一种分布式仿真通信消息处理方法及装置
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:26:15上传分享