一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于IROS的消息可视化方法与流程

2023-01-15 10:11:51 来源:中国专利 TAG:

一种基于iros的消息可视化方法
技术领域
1.本发明涉及qt界面显示技术领域,具体为一种基于iros的消息可视化方法。


背景技术:

2.在iros中,结点之前的通讯方式一般有两种,一个是话题(订阅发布模式),另一个服务(客户端服务端方式)。。
3.现有技术中,在话题方式中,用户节点所发出的消息会持久化到本地文件中,用户可以方便的通过iros的操作指令来进行查看指定话题的名称、队列长度、创建时间等等,也可以对消息队列中的某一条数据进行增删等操作。
4.但是,在iros的上层应用中,消息的类型比较复杂,需要将消息数据实体序列化成一段内存数据,再保存至本地文件中,由于iros的操作指令虽然能够显示消息的基本信息,像名称、队列长度等,但是无法将消息具体数据类型反序列化出来,所以想查看消息队列中的一条消息的具体元素值时,需要重新编写消息定订阅者代码并编译,非常麻烦。


技术实现要素:

5.本发明的目的在于提供一种基于iros的消息可视化方法,通过加载存放消息队列的本地化文件,并根据消息类型从iros目录中搜索相应包含序列化和反序列化函数的动态库并加载至内存,最终以图形化的方式展示给用户,并提供发布功能,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种基于iros的消息可视化方法,该方法包括以下步骤:
7.基于iros的消息可视化工具topicshow向iros用户提供了iros本地消息可视化以及消息快捷发布的功能;
8.解析不同队列的消息类型,然后再根据消息类型去iros目录下寻找匹配的消息类型定义和包含有该消息类型序列化和反序列化函数的动态库;
9.将消息队列中的二进制数据通过反序列化函数转化为数据实体,最终将反序列化的数据实体通过qt等可视化框架展示给用户;
10.向用户提供了消息编辑窗口,用户可以在此窗口向消息队列发送数据。
11.优选的,在iros中,各个消息队列会持久化保持于用户的本地文件中。
12.优选的,topicshow是以iros所保存的消息队列文件为基础,在正确加载消息队列文件后,解析每个消息队列的数据,包括消息名称、消息类型、消息数据实体。
13.优选的,topicshow在解析出话题类型后,在iros目录下寻找该消息类型的相关文件,包括消息定义文件以及包含该消息类型序列化和反序列化函数的动态库,topicshow在正确加载动态库之后,调用反序列化函数将消息队列中的数据转换成c 数据结构,方便下一步进行数据显示;同时,序列化函数也向用户提供了界面输入实现消息发布的条件。
14.优选的,在成功加载用户的本地消息文件和相关类型的动态库之后,topicshow将
这些数据通过qt等可视化工具展示给用户,用户直观的查看所有的消息队列及消息的具体元素值,并向用户提供了消息发布接口,用户通过可以在此界面上轻松地编辑和发布消息。
15.一种基于iros的消息可视化系统,该系统由显示页面设计模块、解析模块、数据处理模块以及编辑模块构成;
16.显示页面设计模块,基于iros的消息可视化工具topicshow向iros用户提供了iros本地消息可视化以及消息快捷发布的功能;
17.解析模块,用于解析不同队列的消息类型,然后再根据消息类型去iros目录下寻找匹配的消息类型定义和包含有该消息类型序列化和反序列化函数的动态库;
18.数据处理模块,用于将消息队列中的二进制数据通过反序列化函数转化为数据实体,最终将反序列化的数据实体通过qt等可视化框架展示给用户;
19.编辑模块,用于向用户提供了消息编辑窗口,用户可以在此窗口向消息队列发送数据。
20.优选的,所述显示页面设计模块中,在iros中,各个消息队列会持久化保持于用户的本地文件中。
21.优选的,所述解析模块中,topicshow是以iros所保存的消息队列文件为基础,在正确加载消息队列文件后,解析每个消息队列的数据,包括消息名称、消息类型、消息数据实体。
22.优选的,所述数据处理模块中,topicshow在解析出话题类型后,在iros目录下寻找该消息类型的相关文件,包括消息定义文件以及包含该消息类型序列化和反序列化函数的动态库,topicshow在正确加载动态库之后,调用反序列化函数将消息队列中的数据转换成c 数据结构,方便下一步进行数据显示;同时,序列化函数也向用户提供了界面输入实现消息发布的条件。
23.优选的,所述编辑模块中,在成功加载用户的本地消息文件和相关类型的动态库之后,topicshow将这些数据通过qt等可视化工具展示给用户,用户直观的查看所有的消息队列及消息的具体元素值,并向用户提供了消息发布接口,用户通过可以在此界面上轻松地编辑和发布消息。
24.与现有技术相比,本发明的有益效果是:
25.本发明提出的基于iros的消息可视化方法基于iros的消息可视化工具topicshow可以直观的显示iros的消息队列数据,帮助iros测试及开发人员分析历史消息数据,同时能够方便的进行消息发布,有效的提高了iros开发和测试人员的工作效率。
附图说明
26.图1为本发明topicshow显示界面示意图;
27.图2为本发明topicshow的功能流程图。
具体实施方式
28.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本
发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.实施例一
30.本发明提供一种技术方案:一种基于iros的消息可视化方法,该方法包括以下步骤:
31.基于iros的消息可视化工具topicshow向iros用户提供了iros本地消息可视化以及消息快捷发布的功能;在iros中,各个消息队列会持久化保持于用户的本地文件中;
32.解析不同队列的消息类型,然后再根据消息类型去iros目录下寻找匹配的消息类型定义和包含有该消息类型序列化和反序列化函数的动态库;topicshow是以iros所保存的消息队列文件为基础,在正确加载消息队列文件后,解析每个消息队列的数据,包括消息名称、消息类型、消息数据实体;
33.将消息队列中的二进制数据通过反序列化函数转化为数据实体,最终将反序列化的数据实体通过qt等可视化框架展示给用户;topicshow在解析出话题类型后,在iros目录下寻找该消息类型的相关文件,包括消息定义文件以及包含该消息类型序列化和反序列化函数的动态库,topicshow在正确加载动态库之后,调用反序列化函数将消息队列中的数据转换成c 数据结构,方便下一步进行数据显示;同时,序列化函数也向用户提供了界面输入实现消息发布的条件;
34.向用户提供了消息编辑窗口,用户可以在此窗口向消息队列发送数据;在成功加载用户的本地消息文件和相关类型的动态库之后,topicshow将这些数据通过qt等可视化工具展示给用户,用户直观的查看所有的消息队列及消息的具体元素值,并向用户提供了消息发布接口,用户通过可以在此界面上轻松地编辑和发布消息。
35.实施例二
36.在实施例一的基础上,首先设计了topicshow的显示界面,主界面包含显示和发布两个部分。显示部分一方面会显示从本地文件中读取的消息队列列表,包含消息队列名称、消息类型、消息数量以及消息创建时间等每个消息队列的基本信息,如图1左上角所示,另一方面会显示每个消息队列的消息数据实体信息,如图1左侧所示。发布部分包含消息编辑框和发布按钮,在输入指定的消息名称后,自动填充消息类型,并列出消息数据实体的元素,并放开给用户编辑,点击发布按钮,将数据发送至指定消息队列中。
37.消息队列列表的数据来自于iros所保存的消息队列文件,topicshow启动时会在iros安装目录下搜索该文件并加载至内存,然后调用iros的接口将各个字段解析出来,并显示在界面上。
38.消息数据也来自于消息队列文件,在被解析之后,还需要通过对应类型的反序列化函数将数据转化成具体的数据类型,而这个函数需要加载对应类型的动态库获得,所以topicshow会搜索iros目录,找到并加载至内存,从而获得反序列化函数。
39.数据发布部分会根据用户输入的消息名称自动补全消息类型,该对应关系来源于消息队列文件的解析结果。另外在用户将具体的数据值写入对话框并点击发送后,topicshow会根据具体的消息类型通过对应的消息序列化函数进行序列化,最终通过iros接口发送至指定消息队列中去。
40.实施例三
41.在实施例二的基础上,如图2所示,该工具首先会根据环境变量去iros地安装目录下寻找存放了消息队列的本地文件并加载至内存,然后通过iros所放开的接口解析文件,包括消息队列个数,各个消息队列的名称、类型、队列长度以及创建时间等基本信息,并将每个消息数据实体加载至内存。
42.针对每个类型的消息,topicshow会在iros目录下寻找匹配的消息类型文件,包括消息定义文件、含有序列化和反序列化的动态库等,随后将动态库加载至内存,调用反序列化函数将对应的消息数据实体转化为具体的c 数据结构,方便后续进行显示。
43.在消息数据被正确反序列化之后,消息队列列表,每个队列的详细信息以及最重要的消息元素均会以列表的方式展示在一个界面上,iros用户可以方便的进行数据分析。另外,为了提高软件的实用性,还向用户提供给了发布功能,用户可以在界面上手动编辑消息,并通过发送按钮一键发送至指定话题,从而避免了再去手动编写发布节点,省去了编码及编译的时间。
44.实施例四
45.一种基于iros的消息可视化系统,该系统由显示页面设计模块、解析模块、数据处理模块以及编辑模块构成;
46.显示页面设计模块,基于iros的消息可视化工具topicshow向iros用户提供了iros本地消息可视化以及消息快捷发布的功能;在iros中,各个消息队列会持久化保持于用户的本地文件中;
47.解析模块,用于解析不同队列的消息类型,然后再根据消息类型去iros目录下寻找匹配的消息类型定义和包含有该消息类型序列化和反序列化函数的动态库;topicshow是以iros所保存的消息队列文件为基础,在正确加载消息队列文件后,解析每个消息队列的数据,包括消息名称、消息类型、消息数据实体;
48.数据处理模块,用于将消息队列中的二进制数据通过反序列化函数转化为数据实体,最终将反序列化的数据实体通过qt等可视化框架展示给用户;topicshow在解析出话题类型后,在iros目录下寻找该消息类型的相关文件,包括消息定义文件以及包含该消息类型序列化和反序列化函数的动态库,topicshow在正确加载动态库之后,调用反序列化函数将消息队列中的数据转换成c 数据结构,方便下一步进行数据显示;同时,序列化函数也向用户提供了界面输入实现消息发布的条件;
49.编辑模块,用于向用户提供了消息编辑窗口,用户可以在此窗口向消息队列发送数据;在成功加载用户的本地消息文件和相关类型的动态库之后,topicshow将这些数据通过qt等可视化工具展示给用户,用户直观的查看所有的消息队列及消息的具体元素值,并向用户提供了消息发布接口,用户通过可以在此界面上轻松地编辑和发布消息。
50.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献