【技术实现步骤摘要】
一种基于IROS异步调用服务接口的方法、设备及介质
[0001]本专利技术涉及IROS
,具体涉及一种基于IROS异步调用服务接口的方法、设备及介质。
技术介绍
[0002]在ros中服务的调用都是同步进行的。但是存在如下问题,第一,同步调用会使客户端在等待服务端响应时被阻塞,在此期间无法执行其他操作,不适用需要高度并发性能或实时性要求较高的系统;第二,由于同步调用需要等待服务端的响应,所以响应时间取决于服务端的处理速度,其响应速度是不确定的;第三,同步调用通常是一种紧耦合的通信方式,客户端需要等待服务端的响应才能继续执行,这就限制了系统的灵活性和可扩展性;第四,在同步调用中,一旦服务端出现故障或崩溃,客户端将无法收到响应并一直处于阻塞状态,除非设置超时机制。然而,超时机制也可能引入新的问题,例如设置过短的超时时间可能导致误报故障。
技术实现思路
[0003]本专利技术为了克服以上技术的不足,提供了一种通过事件机制实现异步通知,解决客户端无法异步调用问题的方法、设备及介质。
[0004]本专利技 ...
【技术保护点】
【技术特征摘要】
1.一种基于IROS异步调用服务接口的方法,其特征在于,包括:将服务转化为请求topic话题和响应topic话题;将客户端与服务端进行topic的名称和类型的匹配;客户端通过请求的topic将数据发布给服务端,并将请求时间添加到事件循环中;服务端订阅请求的topic,产生响应事件并添加到事件循环中;服务端接收客户端发布的请求数据,触发事件循环,执行响应事件得到结果后将结果通过响应topic发布出去;客户端订阅响应topic,处理响应。2.根据权利要求1所述的基于IROS异步调用服务接口的方法,其特征在于,将服务转化为话题的方法为:将服务的名称转化为请求topic话题名称和响应topic话题名称;将服务的请求类型的名称转化为请求topic类型的名称;将服务响应的类型名称转换为响应topic类型的名称;将服务端的回调函数转换为订阅请求topic的回调函数;将客户端注册的回调转化为订阅响应topic的回调函数。3.根据权利要求1所述的基于IROS异步调用服务接口的方法,其特征在于,客户端与服务端进行行topic的名称和类型匹配的方法为:S01.服务端向rmaster节点注册请求topic,包括:指定请求topic的参数类型、标注topic类型为服务、指定匹配的回调函数;S02.服务端向rmaster节点注册响应topic,包括:指定响应topic的参数类型、响应topic类型为服务、指定匹配的回调函数、产生响应事件;S03.客户端向rmaster节点注册请求topic,包括:指定请求topic的参数类型、标注topic类型为服务、指定匹配的回调函数;S04.客户端向rmaster节点注册响应topic,包括:指定响应topic的参数类型、响应topic类型为服务、指定匹配的回调函数;S05.rmaster节点检测到匹配的名称和类型后调用服务端的回调和客户端的回调;S06.客户端检测请求topic和响应topic回调函数是否全部被调用;S07.如果全部被调用,则建立链接完成,如果没有全部被调用则返回执行步骤S06。4.根据权利要求1所述的基于IROS异步调用服务接口的方法,其特征在于,客户端通过请求的topic将数据发布给服务端,并将请求时间添加到事件循环中的方法为:客户端与服务端建立链接后...
【专利技术属性】
技术研发人员:蔡萌萌,李朝铭,刘鹏,赵洪宇,刘来波,
申请(专利权)人:山东新一代信息产业技术研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。