ROS源码学习 十二、Servicej

本文详细解析ROS Java中Service的相关接口和类,包括ServiceServer、ServiceServerListener、ServiceResponseBuilder和服务客户端的实现,阐述了服务节点的注册、监听、响应构建以及连接操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021SC@SDUSC

一、写在前面

        通过对ROS Java文件结构的分析,我发现名为Service的包其实有两个,一个包的路径为rosjava.src.main.java.org.ros.node.service,另一个包的路径为rosjava.src.main.java.org.ros.internal.node.service,而且这两个包内的代码并不相同.

       之前我们提到过,控制ROS作为一个操作系统运行的是其Master节点,而其它的功能以外围节点的形式接入以提供服务.而为了使得逻辑统一,Master自身的功能也是以node的格式编写的.因此,外围的node就是我们提到的第一个包,其中都是接口形式的代码,规定了node的编写规范;而internal包下的node中均为Java类,因此是可以直接运行的,用于构建Master节点,并能够在节点按照外部包编程时继承一部分内部包的内容.在本节我们将首先讲解外部的service包.

二、代码分析

       在service包中,包含8个文件,以接口的形式规定了提供service类型功能的节点需要实现的各种动作.

public interface ServiceServer<T, S> {

  GraphName getName();

  URI getUri();

  void shutdown();


  void addListener(ServiceServerListener<T, S> listener);
}

        ServiceServer为一个接口,需要提供四个方法.getName返回该节点的名称、getURI返回节点的统一资源标识符、shutdown关闭该service服务的运行,adListener为该service服务添加一个监听器.

public interface ServiceServerListener<T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值