From faf85b3634ef67a1e79342703e0d912a073e7a0f Mon Sep 17 00:00:00 2001 From: stream Date: Tue, 26 Aug 2025 10:48:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=BA=E6=A2=B0=E8=87=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/EdgeBioHeadController.java | 35 +- .../api/EdgeHumanoidRobotController.java | 27 + .../client/manage/GrpcServiceManager.java | 2 + .../model/{biohead => }/EdgeCommonVO.java | 2 +- .../model/biohead/EdgeFacialExpressionVO.java | 1 + .../client/model/humanoid/EdgeMoveJVO.java | 29 + .../client/service/EdgeBioHeadService.java | 2 +- .../service/EdgeHumanoidRobotService.java | 14 + .../service/impl/EdgeBioHeadServiceImpl.java | 2 +- .../service/impl/EdgeCameraServiceImpl.java | 31 +- .../impl/EdgeHumanoidRobotServiceImpl.java | 48 + .../impl/EdgeMicrophoneServiceImpl.java | 29 +- .../service/impl/EdgeSpeakerServiceImpl.java | 29 +- .../src/main/java/cmvr/api/HumanoidRobot.java | 2977 +++++++++++++++++ .../cmvr/api/HumanoidRobotServiceGrpc.java | 424 +++ .../main/proto/cmvr/api/humanoid_robot.proto | 32 + 16 files changed, 3584 insertions(+), 100 deletions(-) create mode 100644 cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeHumanoidRobotController.java rename cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/{biohead => }/EdgeCommonVO.java (80%) create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/humanoid/EdgeMoveJVO.java create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeHumanoidRobotService.java create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeHumanoidRobotServiceImpl.java create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobot.java create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobotServiceGrpc.java create mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/humanoid_robot.proto diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeBioHeadController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeBioHeadController.java index 5ca3ac5..d531de5 100644 --- a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeBioHeadController.java +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeBioHeadController.java @@ -2,7 +2,7 @@ package com.cmvr.web.controller.api; import com.cmvr.common.core.controller.BaseController; import com.cmvr.common.core.domain.AjaxResult; -import com.cmvr.edge.client.model.biohead.EdgeCommonVO; +import com.cmvr.edge.client.model.EdgeCommonVO; import com.cmvr.edge.client.model.biohead.EdgeFacialExpressionVO; import com.cmvr.edge.client.service.EdgeBioHeadService; import io.swagger.annotations.Api; @@ -24,39 +24,6 @@ public class EdgeBioHeadController extends BaseController { @ApiOperation("设置面部表情") @PostMapping("/expression") public AjaxResult expression(@RequestBody EdgeFacialExpressionVO facialExpressionVo) { - /*// 构建面部表情参数 - EdgeFacialExpressionVo expression = EdgeFacialExpressionVo.builder() - .eyebrow(EdgeFacialExpressionVo.Eyebrow.builder() - .leftOutsideY(1f) - .leftInsideY(0.4f) - .rightOutsideY(0.2f) - .rightInsideY(0.2f) - .build()) - .eyelid(EdgeFacialExpressionVo.Eyelid.builder() - .leftUpperY(0.4f) - .leftLowerY(0.4f) - .rightUpperY(0.4f) - .rightLowerY(0.5f) - .build()) - .eyeball(EdgeFacialExpressionVo.Eyeball.builder() - .leftX(0.2f) - .leftY(0.3f) - .rightX(0.4f) - .rightY(0.5f) - .build()) - .mouth(EdgeFacialExpressionVo.Mouth.builder() - .upperLipY(0.3f) - .lowerLipY(-0.3f) - .build()) - .nose(EdgeFacialExpressionVo.Nose.builder() - .leftY(0f) - .rightY(0f) - .build()) - .jaw(EdgeFacialExpressionVo.Jaw.builder() - .x(0f) - .y(0f) - .build()) - .build();*/ return success(edgeBioHeadService.setExpression(facialExpressionVo)); } diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeHumanoidRobotController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeHumanoidRobotController.java new file mode 100644 index 0000000..c066b1b --- /dev/null +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/api/EdgeHumanoidRobotController.java @@ -0,0 +1,27 @@ +package com.cmvr.web.controller.api; + +import com.cmvr.common.core.domain.AjaxResult; +import com.cmvr.edge.client.model.humanoid.EdgeMoveJVO; +import com.cmvr.edge.client.service.EdgeHumanoidRobotService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "机械臂") +@RestController +@RequestMapping("/api/humanoid") +@RequiredArgsConstructor +public class EdgeHumanoidRobotController { + + private final EdgeHumanoidRobotService edgeHumanoidRobotService; + + @ApiOperation("设置面部表情") + @PostMapping("/moveJ") + public AjaxResult expression(@RequestBody EdgeMoveJVO moveJVO) { + return AjaxResult.ok(edgeHumanoidRobotService.moveJ(moveJVO)); + } +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java index d95242f..ee4474d 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java @@ -54,6 +54,8 @@ public class GrpcServiceManager { // 注册机器人灵巧手服务的 Stub clientFactories.put(DexHandServiceGrpc.DexHandServiceBlockingStub.class, new GrpcClientFactory<>(DexHandServiceGrpc::newBlockingStub)); clientFactories.put(DexHandServiceGrpc.DexHandServiceStub.class, new GrpcClientFactory<>(DexHandServiceGrpc::newStub)); + // 注册机械臂服务的stub + clientFactories.put(HumanoidRobotServiceGrpc.HumanoidRobotServiceBlockingStub.class, new GrpcClientFactory<>(HumanoidRobotServiceGrpc::newBlockingStub)); } diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeCommonVO.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/EdgeCommonVO.java similarity index 80% rename from cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeCommonVO.java rename to cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/EdgeCommonVO.java index 7ed86c8..e76642b 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeCommonVO.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/EdgeCommonVO.java @@ -1,4 +1,4 @@ -package com.cmvr.edge.client.model.biohead; +package com.cmvr.edge.client.model; import lombok.Data; diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeFacialExpressionVO.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeFacialExpressionVO.java index bebe6bc..90249be 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeFacialExpressionVO.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/biohead/EdgeFacialExpressionVO.java @@ -1,6 +1,7 @@ package com.cmvr.edge.client.model.biohead; +import com.cmvr.edge.client.model.EdgeCommonVO; import lombok.Data; diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/humanoid/EdgeMoveJVO.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/humanoid/EdgeMoveJVO.java new file mode 100644 index 0000000..b137194 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/model/humanoid/EdgeMoveJVO.java @@ -0,0 +1,29 @@ +package com.cmvr.edge.client.model.humanoid; + +import cmvr.api.HumanoidRobot; +import com.cmvr.edge.client.model.EdgeCommonVO; +import lombok.Data; + +import java.util.List; + +@Data +public class EdgeMoveJVO extends EdgeCommonVO { + /** 全局关节角速度 (rad/s) */ + private double vel; + + /** 机械臂整体加速度 (rad/s^2) */ + private double acc; + + /** 关节命令列表 */ + private List cmds; + + /** + * 内部类:关节命令 + */ + @Data + public static class JointCmd { + private String jointName; // 关节名称 + private double rad; // 弧度 + private double vel; // 角速度,rad/s + } +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeBioHeadService.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeBioHeadService.java index 01e60ae..ef3a779 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeBioHeadService.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeBioHeadService.java @@ -1,6 +1,6 @@ package com.cmvr.edge.client.service; -import com.cmvr.edge.client.model.biohead.EdgeCommonVO; +import com.cmvr.edge.client.model.EdgeCommonVO; import com.cmvr.edge.client.model.biohead.EdgeFacialExpressionVO; /** diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeHumanoidRobotService.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeHumanoidRobotService.java new file mode 100644 index 0000000..5493d20 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/EdgeHumanoidRobotService.java @@ -0,0 +1,14 @@ +package com.cmvr.edge.client.service; + +import com.cmvr.edge.client.model.humanoid.EdgeMoveJVO; + +/** + * 边缘系统机械臂服务 + */ +public interface EdgeHumanoidRobotService { + /** + * 移动机械臂 + */ + public String moveJ(EdgeMoveJVO vo); + +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeBioHeadServiceImpl.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeBioHeadServiceImpl.java index e61bad8..5a57ace 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeBioHeadServiceImpl.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeBioHeadServiceImpl.java @@ -5,7 +5,7 @@ import cmvr.api.BioheadCommand; import cmvr.api.Common; import com.alibaba.fastjson2.JSON; import com.cmvr.edge.client.manage.GrpcServiceManager; -import com.cmvr.edge.client.model.biohead.EdgeCommonVO; +import com.cmvr.edge.client.model.EdgeCommonVO; import com.cmvr.edge.client.model.biohead.EdgeFacialExpressionVO; import com.cmvr.edge.client.service.EdgeBioHeadService; import com.cmvr.edge.client.utils.EdgeCommonUtil; diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeCameraServiceImpl.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeCameraServiceImpl.java index 52aa16d..db33813 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeCameraServiceImpl.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeCameraServiceImpl.java @@ -12,11 +12,11 @@ import com.cmvr.edge.client.file.ByteArrayMultipartFile; import com.cmvr.edge.client.manage.GrpcServiceManager; import com.cmvr.edge.client.service.EdgeCameraService; import com.cmvr.edge.client.service.EdgeStreamService; +import com.cmvr.edge.client.utils.EdgeCommonUtil; import com.cmvr.edge.client.utils.H265DecoderUtil; import com.cmvr.framework.websocket.service.MessagePushService; import com.cmvr.system.service.ISysFileService; import com.google.protobuf.ByteString; -import com.google.protobuf.Timestamp; import io.grpc.stub.StreamObserver; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -59,7 +59,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi public CameraCommand.CameraState status(String terminalId, String deviceId) { CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.GetCameraStateCommand.Request request = CameraCommand.GetCameraStateCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); return executeGrpcCall(() -> stub.getStatus(request)).getState(); } @@ -77,7 +77,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi public String start(String terminalId, String deviceId) { CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.StartCameraCommand.Request request = CameraCommand.StartCameraCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); Common.CommandHeader.Feedback header = executeGrpcCall(() -> stub.startCamera(request)).getHeader(); return JSON.toJSONString(header); @@ -87,7 +87,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi public String stop(String terminalId, String deviceId) { CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.StopCameraCommand.Request request = CameraCommand.StopCameraCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); Common.CommandHeader.Feedback header = executeGrpcCall(() -> stub.stopCamera(request)).getHeader(); return JSON.toJSONString(header); @@ -101,7 +101,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi } CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.GetRGBImageCommand.Request request = CameraCommand.GetRGBImageCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); CameraCommand.GetRGBImageCommand.Feedback feedback = executeGrpcCall(() -> stub.getRGBImage(request)); CameraCommand.FrameData frame = feedback.getColorFrame(); @@ -130,7 +130,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi String videoPath = StrUtil.format("{}/{}_{}.mp4", "/home/share/assets/video", deviceId, System.currentTimeMillis()); CameraCommand.StartCameraRecordingCommand.Request request = CameraCommand.StartCameraRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setVideoPath(videoPath) .build(); executeGrpcCall(() -> stub.startRecording(request)); @@ -141,7 +141,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi public String stopRecording(String terminalId, String deviceId) { CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.StopCameraRecordingCommand.Request request = CameraCommand.StopCameraRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); Common.CommandHeader.Feedback header = executeGrpcCall(() -> stub.stopRecording(request)).getHeader(); return JSON.toJSONString(header); @@ -155,11 +155,11 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi CameraServiceGrpc.CameraServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, CameraServiceGrpc.CameraServiceBlockingStub.class); CameraCommand.GetRGBDImagesCommand.Request request = CameraCommand.GetRGBDImagesCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); CameraCommand.GetRGBDImagesCommand.Feedback feedback = executeGrpcCall(() -> stub.getRGBDImages(request)); - return JSON.toJSONString(feedback); + return JSON.toJSONString(feedback); } // 缓冲区和收集状态 @@ -222,7 +222,7 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi // 构建请求并发送 CameraCommand.GetRGBImageStreamCommand.Request request = CameraCommand.GetRGBImageStreamCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setEof(false) .build(); @@ -241,17 +241,6 @@ public class EdgeCameraServiceImpl implements EdgeCameraService, EdgeStreamServi } - private static Common.CommandHeader.Request buildRequest(String deviceId) { - return Common.CommandHeader.Request.newBuilder() - .setDeviceId(deviceId) - .setTimestamp( - Timestamp.newBuilder() - .setSeconds(System.currentTimeMillis() / 1000) - .build() - ) - .build(); - } - @FunctionalInterface private interface GrpcCall { T call() throws Exception; diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeHumanoidRobotServiceImpl.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeHumanoidRobotServiceImpl.java new file mode 100644 index 0000000..bcbe058 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeHumanoidRobotServiceImpl.java @@ -0,0 +1,48 @@ +package com.cmvr.edge.client.service.impl; + +import cmvr.api.Common; +import cmvr.api.HumanoidRobot; +import cmvr.api.HumanoidRobotServiceGrpc; +import com.alibaba.fastjson2.JSON; +import com.cmvr.edge.client.manage.GrpcServiceManager; +import com.cmvr.edge.client.model.humanoid.EdgeMoveJVO; +import com.cmvr.edge.client.service.EdgeHumanoidRobotService; +import com.cmvr.edge.client.utils.EdgeCommonUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class EdgeHumanoidRobotServiceImpl implements EdgeHumanoidRobotService { + + private final GrpcServiceManager grpcServiceManager; + + @Override + public String moveJ(EdgeMoveJVO vo) { + HumanoidRobotServiceGrpc.HumanoidRobotServiceBlockingStub stub = + grpcServiceManager.getGrpcClient(vo.getTerminalId(), + HumanoidRobotServiceGrpc.HumanoidRobotServiceBlockingStub.class); + + Common.CommandHeader.Request header = EdgeCommonUtil.buildRequest(vo.getDeviceId()); + + HumanoidRobot.MoveJ.Request.Builder builder = HumanoidRobot.MoveJ.Request.newBuilder() + .setHeader(header) + .setVel(vo.getVel()) + .setAcc(vo.getAcc()); + + if (vo.getCmds() != null) { + for (EdgeMoveJVO.JointCmd j : vo.getCmds()) { + builder.addCmds(HumanoidRobot.JointCmd.newBuilder() + .setJointName(j.getJointName()) + .setRad(j.getRad()) + .setVel(j.getVel()) + .build()); + } + } + + HumanoidRobot.MoveJ.Response response = stub.moveJ(builder.build()); + return JSON.toJSONString(response.getHeader()); + } +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeMicrophoneServiceImpl.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeMicrophoneServiceImpl.java index 1ef979b..1619481 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeMicrophoneServiceImpl.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeMicrophoneServiceImpl.java @@ -5,6 +5,7 @@ import cmvr.api.MicrophoneCommand; import cmvr.api.MicPhoneServiceGrpc; import com.cmvr.edge.client.manage.GrpcServiceManager; import com.cmvr.edge.client.service.EdgeMicrophoneService; +import com.cmvr.edge.client.utils.EdgeCommonUtil; import io.grpc.ManagedChannel; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -32,20 +33,6 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { */ private final GrpcServiceManager grpcServiceManager; - /** - * 构建请求头 - */ - private static Common.CommandHeader.Request buildRequest(String deviceId) { - return Common.CommandHeader.Request.newBuilder() - .setDeviceId(deviceId) - .setTimestamp( - Timestamp.newBuilder() - .setSeconds(System.currentTimeMillis() / 1000) - .build() - ) - .build(); - } - /** * 获取麦克风当前状态 * 通过gRPC调用获取麦克风的运行状态,包括是否正在录音、音量等信息 @@ -60,7 +47,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { try { MicPhoneServiceGrpc.MicPhoneServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, MicPhoneServiceGrpc.MicPhoneServiceBlockingStub.class); MicrophoneCommand.GetMicStateCommand.Request request = MicrophoneCommand.GetMicStateCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 直接返回完整的 Feedback return stub.getStatus(request); @@ -87,7 +74,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.StartMicRecordingCommand.Request request = MicrophoneCommand.StartMicRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setFilePath(filePath) .build(); @@ -115,7 +102,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.StopMicRecordingCommand.Request request = MicrophoneCommand.StopMicRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -142,7 +129,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.PauseMicRecordingCommand.Request request = MicrophoneCommand.PauseMicRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -169,7 +156,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.ResumeMicRecordingCommand.Request request = MicrophoneCommand.ResumeMicRecordingCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -197,7 +184,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.SetMicPhoneVolumeCommand.Request request = MicrophoneCommand.SetMicPhoneVolumeCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setVolume(volume) .build(); @@ -226,7 +213,7 @@ public class EdgeMicrophoneServiceImpl implements EdgeMicrophoneService { // 构建请求消息 MicrophoneCommand.GetMicPhoneVolumeCommand.Request request = MicrophoneCommand.GetMicPhoneVolumeCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求并获取响应 diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeSpeakerServiceImpl.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeSpeakerServiceImpl.java index 05f2508..7d5e44c 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeSpeakerServiceImpl.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/impl/EdgeSpeakerServiceImpl.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.cmvr.edge.client.manage.GrpcServiceManager; import com.cmvr.edge.client.service.EdgeSpeakerService; +import com.cmvr.edge.client.utils.EdgeCommonUtil; import com.google.protobuf.Timestamp; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -37,20 +38,6 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { */ private final GrpcServiceManager grpcServiceManager; - /** - * 构建请求头 - */ - private static Common.CommandHeader.Request buildRequest(String deviceId) { - return Common.CommandHeader.Request.newBuilder() - .setDeviceId(deviceId) - .setTimestamp( - Timestamp.newBuilder() - .setSeconds(System.currentTimeMillis() / 1000) - .build() - ) - .build(); - } - /** * 获取扬声器当前状态 * 通过gRPC调用获取扬声器的运行状态,包括是否正在播放、音量等信息 @@ -65,7 +52,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { try { SpeakerServiceGrpc.SpeakerServiceBlockingStub stub = grpcServiceManager.getGrpcClient(terminalId, SpeakerServiceGrpc.SpeakerServiceBlockingStub.class); SpeakerCommand.GetSpeakerStateCommand.Request request = SpeakerCommand.GetSpeakerStateCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 直接返回完整的 Feedback return stub.getStatus(request); @@ -92,7 +79,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.PlayAudioCommand.Request request = SpeakerCommand.PlayAudioCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setAudioPath(audioPath) .build(); @@ -123,7 +110,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.StopSpeakerCommand.Request request = SpeakerCommand.StopSpeakerCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -150,7 +137,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.PauseSpeakerCommand.Request request = SpeakerCommand.PauseSpeakerCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -177,7 +164,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.ResumeSpeakerCommand.Request request = SpeakerCommand.ResumeSpeakerCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求 @@ -205,7 +192,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.SetSpeakerVolumeCommand.Request request = SpeakerCommand.SetSpeakerVolumeCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .setVolume(volume) .build(); @@ -234,7 +221,7 @@ public class EdgeSpeakerServiceImpl implements EdgeSpeakerService { // 构建请求消息 SpeakerCommand.GetSpeakerVolumeCommand.Request request = SpeakerCommand.GetSpeakerVolumeCommand.Request.newBuilder() - .setHeader(buildRequest(deviceId)) + .setHeader(EdgeCommonUtil.buildRequest(deviceId)) .build(); // 发送请求并获取响应 diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobot.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobot.java new file mode 100644 index 0000000..04fece7 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobot.java @@ -0,0 +1,2977 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: cmvr/api/humanoid_robot.proto + +package cmvr.api; + +public final class HumanoidRobot { + private HumanoidRobot() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface JointCmdOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.JointCmd) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * 关节名称
+     * 
+ * + * string joint_name = 1; + * @return The jointName. + */ + java.lang.String getJointName(); + /** + *
+     * 关节名称
+     * 
+ * + * string joint_name = 1; + * @return The bytes for jointName. + */ + com.google.protobuf.ByteString + getJointNameBytes(); + + /** + *
+     * 弧度
+     * 
+ * + * double rad = 2; + * @return The rad. + */ + double getRad(); + + /** + *
+     * 角速度,rad/s
+     * 
+ * + * double vel = 3; + * @return The vel. + */ + double getVel(); + } + /** + * Protobuf type {@code cmvr.api.JointCmd} + */ + public static final class JointCmd extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.JointCmd) + JointCmdOrBuilder { + private static final long serialVersionUID = 0L; + // Use JointCmd.newBuilder() to construct. + private JointCmd(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private JointCmd() { + jointName_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new JointCmd(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_JointCmd_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_JointCmd_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.JointCmd.class, cmvr.api.HumanoidRobot.JointCmd.Builder.class); + } + + public static final int JOINT_NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object jointName_; + /** + *
+     * 关节名称
+     * 
+ * + * string joint_name = 1; + * @return The jointName. + */ + @java.lang.Override + public java.lang.String getJointName() { + java.lang.Object ref = jointName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + jointName_ = s; + return s; + } + } + /** + *
+     * 关节名称
+     * 
+ * + * string joint_name = 1; + * @return The bytes for jointName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getJointNameBytes() { + java.lang.Object ref = jointName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + jointName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RAD_FIELD_NUMBER = 2; + private double rad_; + /** + *
+     * 弧度
+     * 
+ * + * double rad = 2; + * @return The rad. + */ + @java.lang.Override + public double getRad() { + return rad_; + } + + public static final int VEL_FIELD_NUMBER = 3; + private double vel_; + /** + *
+     * 角速度,rad/s
+     * 
+ * + * double vel = 3; + * @return The vel. + */ + @java.lang.Override + public double getVel() { + return vel_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jointName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, jointName_); + } + if (java.lang.Double.doubleToRawLongBits(rad_) != 0) { + output.writeDouble(2, rad_); + } + if (java.lang.Double.doubleToRawLongBits(vel_) != 0) { + output.writeDouble(3, vel_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jointName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, jointName_); + } + if (java.lang.Double.doubleToRawLongBits(rad_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(2, rad_); + } + if (java.lang.Double.doubleToRawLongBits(vel_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(3, vel_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.HumanoidRobot.JointCmd)) { + return super.equals(obj); + } + cmvr.api.HumanoidRobot.JointCmd other = (cmvr.api.HumanoidRobot.JointCmd) obj; + + if (!getJointName() + .equals(other.getJointName())) return false; + if (java.lang.Double.doubleToLongBits(getRad()) + != java.lang.Double.doubleToLongBits( + other.getRad())) return false; + if (java.lang.Double.doubleToLongBits(getVel()) + != java.lang.Double.doubleToLongBits( + other.getVel())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + JOINT_NAME_FIELD_NUMBER; + hash = (53 * hash) + getJointName().hashCode(); + hash = (37 * hash) + RAD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getRad())); + hash = (37 * hash) + VEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getVel())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.JointCmd parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.JointCmd parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.JointCmd parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.HumanoidRobot.JointCmd prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code cmvr.api.JointCmd} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.JointCmd) + cmvr.api.HumanoidRobot.JointCmdOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_JointCmd_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_JointCmd_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.JointCmd.class, cmvr.api.HumanoidRobot.JointCmd.Builder.class); + } + + // Construct using cmvr.api.HumanoidRobot.JointCmd.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + jointName_ = ""; + + rad_ = 0D; + + vel_ = 0D; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_JointCmd_descriptor; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmd getDefaultInstanceForType() { + return cmvr.api.HumanoidRobot.JointCmd.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmd build() { + cmvr.api.HumanoidRobot.JointCmd result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmd buildPartial() { + cmvr.api.HumanoidRobot.JointCmd result = new cmvr.api.HumanoidRobot.JointCmd(this); + result.jointName_ = jointName_; + result.rad_ = rad_; + result.vel_ = vel_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.HumanoidRobot.JointCmd) { + return mergeFrom((cmvr.api.HumanoidRobot.JointCmd)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.HumanoidRobot.JointCmd other) { + if (other == cmvr.api.HumanoidRobot.JointCmd.getDefaultInstance()) return this; + if (!other.getJointName().isEmpty()) { + jointName_ = other.jointName_; + onChanged(); + } + if (other.getRad() != 0D) { + setRad(other.getRad()); + } + if (other.getVel() != 0D) { + setVel(other.getVel()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + jointName_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 17: { + rad_ = input.readDouble(); + + break; + } // case 17 + case 25: { + vel_ = input.readDouble(); + + break; + } // case 25 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private java.lang.Object jointName_ = ""; + /** + *
+       * 关节名称
+       * 
+ * + * string joint_name = 1; + * @return The jointName. + */ + public java.lang.String getJointName() { + java.lang.Object ref = jointName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + jointName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * 关节名称
+       * 
+ * + * string joint_name = 1; + * @return The bytes for jointName. + */ + public com.google.protobuf.ByteString + getJointNameBytes() { + java.lang.Object ref = jointName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + jointName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * 关节名称
+       * 
+ * + * string joint_name = 1; + * @param value The jointName to set. + * @return This builder for chaining. + */ + public Builder setJointName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + jointName_ = value; + onChanged(); + return this; + } + /** + *
+       * 关节名称
+       * 
+ * + * string joint_name = 1; + * @return This builder for chaining. + */ + public Builder clearJointName() { + + jointName_ = getDefaultInstance().getJointName(); + onChanged(); + return this; + } + /** + *
+       * 关节名称
+       * 
+ * + * string joint_name = 1; + * @param value The bytes for jointName to set. + * @return This builder for chaining. + */ + public Builder setJointNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + jointName_ = value; + onChanged(); + return this; + } + + private double rad_ ; + /** + *
+       * 弧度
+       * 
+ * + * double rad = 2; + * @return The rad. + */ + @java.lang.Override + public double getRad() { + return rad_; + } + /** + *
+       * 弧度
+       * 
+ * + * double rad = 2; + * @param value The rad to set. + * @return This builder for chaining. + */ + public Builder setRad(double value) { + + rad_ = value; + onChanged(); + return this; + } + /** + *
+       * 弧度
+       * 
+ * + * double rad = 2; + * @return This builder for chaining. + */ + public Builder clearRad() { + + rad_ = 0D; + onChanged(); + return this; + } + + private double vel_ ; + /** + *
+       * 角速度,rad/s
+       * 
+ * + * double vel = 3; + * @return The vel. + */ + @java.lang.Override + public double getVel() { + return vel_; + } + /** + *
+       * 角速度,rad/s
+       * 
+ * + * double vel = 3; + * @param value The vel to set. + * @return This builder for chaining. + */ + public Builder setVel(double value) { + + vel_ = value; + onChanged(); + return this; + } + /** + *
+       * 角速度,rad/s
+       * 
+ * + * double vel = 3; + * @return This builder for chaining. + */ + public Builder clearVel() { + + vel_ = 0D; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.JointCmd) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.JointCmd) + private static final cmvr.api.HumanoidRobot.JointCmd DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.HumanoidRobot.JointCmd(); + } + + public static cmvr.api.HumanoidRobot.JointCmd getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public JointCmd parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmd getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MoveJOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code cmvr.api.MoveJ} + */ + public static final class MoveJ extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ) + MoveJOrBuilder { + private static final long serialVersionUID = 0L; + // Use MoveJ.newBuilder() to construct. + private MoveJ(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MoveJ() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MoveJ(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.class, cmvr.api.HumanoidRobot.MoveJ.Builder.class); + } + + public interface RequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ.Request) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Request getHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); + + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + java.util.List + getCmdsList(); + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + cmvr.api.HumanoidRobot.JointCmd getCmds(int index); + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + int getCmdsCount(); + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + java.util.List + getCmdsOrBuilderList(); + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + cmvr.api.HumanoidRobot.JointCmdOrBuilder getCmdsOrBuilder( + int index); + + /** + * double vel = 3; + * @return The vel. + */ + double getVel(); + + /** + * double acc = 4; + * @return The acc. + */ + double getAcc(); + } + /** + * Protobuf type {@code cmvr.api.MoveJ.Request} + */ + public static final class Request extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ.Request) + RequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use Request.newBuilder() to construct. + private Request(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Request() { + cmds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Request(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.Request.class, cmvr.api.HumanoidRobot.MoveJ.Request.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Request header_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Request getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + public static final int CMDS_FIELD_NUMBER = 2; + private java.util.List cmds_; + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + @java.lang.Override + public java.util.List getCmdsList() { + return cmds_; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + @java.lang.Override + public java.util.List + getCmdsOrBuilderList() { + return cmds_; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + @java.lang.Override + public int getCmdsCount() { + return cmds_.size(); + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmd getCmds(int index) { + return cmds_.get(index); + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + @java.lang.Override + public cmvr.api.HumanoidRobot.JointCmdOrBuilder getCmdsOrBuilder( + int index) { + return cmds_.get(index); + } + + public static final int VEL_FIELD_NUMBER = 3; + private double vel_; + /** + * double vel = 3; + * @return The vel. + */ + @java.lang.Override + public double getVel() { + return vel_; + } + + public static final int ACC_FIELD_NUMBER = 4; + private double acc_; + /** + * double acc = 4; + * @return The acc. + */ + @java.lang.Override + public double getAcc() { + return acc_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + for (int i = 0; i < cmds_.size(); i++) { + output.writeMessage(2, cmds_.get(i)); + } + if (java.lang.Double.doubleToRawLongBits(vel_) != 0) { + output.writeDouble(3, vel_); + } + if (java.lang.Double.doubleToRawLongBits(acc_) != 0) { + output.writeDouble(4, acc_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + for (int i = 0; i < cmds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, cmds_.get(i)); + } + if (java.lang.Double.doubleToRawLongBits(vel_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(3, vel_); + } + if (java.lang.Double.doubleToRawLongBits(acc_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(4, acc_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.HumanoidRobot.MoveJ.Request)) { + return super.equals(obj); + } + cmvr.api.HumanoidRobot.MoveJ.Request other = (cmvr.api.HumanoidRobot.MoveJ.Request) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (!getCmdsList() + .equals(other.getCmdsList())) return false; + if (java.lang.Double.doubleToLongBits(getVel()) + != java.lang.Double.doubleToLongBits( + other.getVel())) return false; + if (java.lang.Double.doubleToLongBits(getAcc()) + != java.lang.Double.doubleToLongBits( + other.getAcc())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + if (getCmdsCount() > 0) { + hash = (37 * hash) + CMDS_FIELD_NUMBER; + hash = (53 * hash) + getCmdsList().hashCode(); + } + hash = (37 * hash) + VEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getVel())); + hash = (37 * hash) + ACC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getAcc())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Request parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.HumanoidRobot.MoveJ.Request prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code cmvr.api.MoveJ.Request} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ.Request) + cmvr.api.HumanoidRobot.MoveJ.RequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.Request.class, cmvr.api.HumanoidRobot.MoveJ.Request.Builder.class); + } + + // Construct using cmvr.api.HumanoidRobot.MoveJ.Request.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + if (cmdsBuilder_ == null) { + cmds_ = java.util.Collections.emptyList(); + } else { + cmds_ = null; + cmdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + vel_ = 0D; + + acc_ = 0D; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Request_descriptor; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Request getDefaultInstanceForType() { + return cmvr.api.HumanoidRobot.MoveJ.Request.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Request build() { + cmvr.api.HumanoidRobot.MoveJ.Request result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Request buildPartial() { + cmvr.api.HumanoidRobot.MoveJ.Request result = new cmvr.api.HumanoidRobot.MoveJ.Request(this); + int from_bitField0_ = bitField0_; + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + if (cmdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + cmds_ = java.util.Collections.unmodifiableList(cmds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.cmds_ = cmds_; + } else { + result.cmds_ = cmdsBuilder_.build(); + } + result.vel_ = vel_; + result.acc_ = acc_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.HumanoidRobot.MoveJ.Request) { + return mergeFrom((cmvr.api.HumanoidRobot.MoveJ.Request)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.HumanoidRobot.MoveJ.Request other) { + if (other == cmvr.api.HumanoidRobot.MoveJ.Request.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + if (cmdsBuilder_ == null) { + if (!other.cmds_.isEmpty()) { + if (cmds_.isEmpty()) { + cmds_ = other.cmds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureCmdsIsMutable(); + cmds_.addAll(other.cmds_); + } + onChanged(); + } + } else { + if (!other.cmds_.isEmpty()) { + if (cmdsBuilder_.isEmpty()) { + cmdsBuilder_.dispose(); + cmdsBuilder_ = null; + cmds_ = other.cmds_; + bitField0_ = (bitField0_ & ~0x00000001); + cmdsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getCmdsFieldBuilder() : null; + } else { + cmdsBuilder_.addAllMessages(other.cmds_); + } + } + } + if (other.getVel() != 0D) { + setVel(other.getVel()); + } + if (other.getAcc() != 0D) { + setAcc(other.getAcc()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + case 18: { + cmvr.api.HumanoidRobot.JointCmd m = + input.readMessage( + cmvr.api.HumanoidRobot.JointCmd.parser(), + extensionRegistry); + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + cmds_.add(m); + } else { + cmdsBuilder_.addMessage(m); + } + break; + } // case 18 + case 25: { + vel_ = input.readDouble(); + + break; + } // case 25 + case 33: { + acc_ = input.readDouble(); + + break; + } // case 33 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private cmvr.api.Common.CommandHeader.Request header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Request getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Request.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + + private java.util.List cmds_ = + java.util.Collections.emptyList(); + private void ensureCmdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + cmds_ = new java.util.ArrayList(cmds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + cmvr.api.HumanoidRobot.JointCmd, cmvr.api.HumanoidRobot.JointCmd.Builder, cmvr.api.HumanoidRobot.JointCmdOrBuilder> cmdsBuilder_; + + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public java.util.List getCmdsList() { + if (cmdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(cmds_); + } else { + return cmdsBuilder_.getMessageList(); + } + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public int getCmdsCount() { + if (cmdsBuilder_ == null) { + return cmds_.size(); + } else { + return cmdsBuilder_.getCount(); + } + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public cmvr.api.HumanoidRobot.JointCmd getCmds(int index) { + if (cmdsBuilder_ == null) { + return cmds_.get(index); + } else { + return cmdsBuilder_.getMessage(index); + } + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder setCmds( + int index, cmvr.api.HumanoidRobot.JointCmd value) { + if (cmdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCmdsIsMutable(); + cmds_.set(index, value); + onChanged(); + } else { + cmdsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder setCmds( + int index, cmvr.api.HumanoidRobot.JointCmd.Builder builderForValue) { + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + cmds_.set(index, builderForValue.build()); + onChanged(); + } else { + cmdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder addCmds(cmvr.api.HumanoidRobot.JointCmd value) { + if (cmdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCmdsIsMutable(); + cmds_.add(value); + onChanged(); + } else { + cmdsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder addCmds( + int index, cmvr.api.HumanoidRobot.JointCmd value) { + if (cmdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCmdsIsMutable(); + cmds_.add(index, value); + onChanged(); + } else { + cmdsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder addCmds( + cmvr.api.HumanoidRobot.JointCmd.Builder builderForValue) { + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + cmds_.add(builderForValue.build()); + onChanged(); + } else { + cmdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder addCmds( + int index, cmvr.api.HumanoidRobot.JointCmd.Builder builderForValue) { + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + cmds_.add(index, builderForValue.build()); + onChanged(); + } else { + cmdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder addAllCmds( + java.lang.Iterable values) { + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, cmds_); + onChanged(); + } else { + cmdsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder clearCmds() { + if (cmdsBuilder_ == null) { + cmds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + cmdsBuilder_.clear(); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public Builder removeCmds(int index) { + if (cmdsBuilder_ == null) { + ensureCmdsIsMutable(); + cmds_.remove(index); + onChanged(); + } else { + cmdsBuilder_.remove(index); + } + return this; + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public cmvr.api.HumanoidRobot.JointCmd.Builder getCmdsBuilder( + int index) { + return getCmdsFieldBuilder().getBuilder(index); + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public cmvr.api.HumanoidRobot.JointCmdOrBuilder getCmdsOrBuilder( + int index) { + if (cmdsBuilder_ == null) { + return cmds_.get(index); } else { + return cmdsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public java.util.List + getCmdsOrBuilderList() { + if (cmdsBuilder_ != null) { + return cmdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(cmds_); + } + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public cmvr.api.HumanoidRobot.JointCmd.Builder addCmdsBuilder() { + return getCmdsFieldBuilder().addBuilder( + cmvr.api.HumanoidRobot.JointCmd.getDefaultInstance()); + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public cmvr.api.HumanoidRobot.JointCmd.Builder addCmdsBuilder( + int index) { + return getCmdsFieldBuilder().addBuilder( + index, cmvr.api.HumanoidRobot.JointCmd.getDefaultInstance()); + } + /** + * repeated .cmvr.api.JointCmd cmds = 2; + */ + public java.util.List + getCmdsBuilderList() { + return getCmdsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + cmvr.api.HumanoidRobot.JointCmd, cmvr.api.HumanoidRobot.JointCmd.Builder, cmvr.api.HumanoidRobot.JointCmdOrBuilder> + getCmdsFieldBuilder() { + if (cmdsBuilder_ == null) { + cmdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + cmvr.api.HumanoidRobot.JointCmd, cmvr.api.HumanoidRobot.JointCmd.Builder, cmvr.api.HumanoidRobot.JointCmdOrBuilder>( + cmds_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + cmds_ = null; + } + return cmdsBuilder_; + } + + private double vel_ ; + /** + * double vel = 3; + * @return The vel. + */ + @java.lang.Override + public double getVel() { + return vel_; + } + /** + * double vel = 3; + * @param value The vel to set. + * @return This builder for chaining. + */ + public Builder setVel(double value) { + + vel_ = value; + onChanged(); + return this; + } + /** + * double vel = 3; + * @return This builder for chaining. + */ + public Builder clearVel() { + + vel_ = 0D; + onChanged(); + return this; + } + + private double acc_ ; + /** + * double acc = 4; + * @return The acc. + */ + @java.lang.Override + public double getAcc() { + return acc_; + } + /** + * double acc = 4; + * @param value The acc to set. + * @return This builder for chaining. + */ + public Builder setAcc(double value) { + + acc_ = value; + onChanged(); + return this; + } + /** + * double acc = 4; + * @return This builder for chaining. + */ + public Builder clearAcc() { + + acc_ = 0D; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ.Request) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ.Request) + private static final cmvr.api.HumanoidRobot.MoveJ.Request DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.HumanoidRobot.MoveJ.Request(); + } + + public static cmvr.api.HumanoidRobot.MoveJ.Request getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Request parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Request getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ.Response) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Feedback getHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); + } + /** + * Protobuf type {@code cmvr.api.MoveJ.Response} + */ + public static final class Response extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ.Response) + ResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use Response.newBuilder() to construct. + private Response(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Response() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Response(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Response_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.Response.class, cmvr.api.HumanoidRobot.MoveJ.Response.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Feedback header_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.HumanoidRobot.MoveJ.Response)) { + return super.equals(obj); + } + cmvr.api.HumanoidRobot.MoveJ.Response other = (cmvr.api.HumanoidRobot.MoveJ.Response) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ.Response parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.HumanoidRobot.MoveJ.Response prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code cmvr.api.MoveJ.Response} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ.Response) + cmvr.api.HumanoidRobot.MoveJ.ResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Response_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.Response.class, cmvr.api.HumanoidRobot.MoveJ.Response.Builder.class); + } + + // Construct using cmvr.api.HumanoidRobot.MoveJ.Response.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_Response_descriptor; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Response getDefaultInstanceForType() { + return cmvr.api.HumanoidRobot.MoveJ.Response.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Response build() { + cmvr.api.HumanoidRobot.MoveJ.Response result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Response buildPartial() { + cmvr.api.HumanoidRobot.MoveJ.Response result = new cmvr.api.HumanoidRobot.MoveJ.Response(this); + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.HumanoidRobot.MoveJ.Response) { + return mergeFrom((cmvr.api.HumanoidRobot.MoveJ.Response)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.HumanoidRobot.MoveJ.Response other) { + if (other == cmvr.api.HumanoidRobot.MoveJ.Response.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private cmvr.api.Common.CommandHeader.Feedback header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ.Response) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ.Response) + private static final cmvr.api.HumanoidRobot.MoveJ.Response DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.HumanoidRobot.MoveJ.Response(); + } + + public static cmvr.api.HumanoidRobot.MoveJ.Response getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Response parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ.Response getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.HumanoidRobot.MoveJ)) { + return super.equals(obj); + } + cmvr.api.HumanoidRobot.MoveJ other = (cmvr.api.HumanoidRobot.MoveJ) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.HumanoidRobot.MoveJ parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.HumanoidRobot.MoveJ prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code cmvr.api.MoveJ} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ) + cmvr.api.HumanoidRobot.MoveJOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.HumanoidRobot.MoveJ.class, cmvr.api.HumanoidRobot.MoveJ.Builder.class); + } + + // Construct using cmvr.api.HumanoidRobot.MoveJ.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.HumanoidRobot.internal_static_cmvr_api_MoveJ_descriptor; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ getDefaultInstanceForType() { + return cmvr.api.HumanoidRobot.MoveJ.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ build() { + cmvr.api.HumanoidRobot.MoveJ result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ buildPartial() { + cmvr.api.HumanoidRobot.MoveJ result = new cmvr.api.HumanoidRobot.MoveJ(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.HumanoidRobot.MoveJ) { + return mergeFrom((cmvr.api.HumanoidRobot.MoveJ)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.HumanoidRobot.MoveJ other) { + if (other == cmvr.api.HumanoidRobot.MoveJ.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ) + private static final cmvr.api.HumanoidRobot.MoveJ DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.HumanoidRobot.MoveJ(); + } + + public static cmvr.api.HumanoidRobot.MoveJ getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MoveJ parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.HumanoidRobot.MoveJ getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_JointCmd_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_JointCmd_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_MoveJ_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_MoveJ_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_MoveJ_Request_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_MoveJ_Response_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\035cmvr/api/humanoid_robot.proto\022\010cmvr.ap" + + "i\032\025cmvr/api/common.proto\"8\n\010JointCmd\022\022\n\n" + + "joint_name\030\001 \001(\t\022\013\n\003rad\030\002 \001(\001\022\013\n\003vel\030\003 \001" + + "(\001\"\275\001\n\005MoveJ\032v\n\007Request\022/\n\006header\030\001 \001(\0132" + + "\037.cmvr.api.CommandHeader.Request\022 \n\004cmds" + + "\030\002 \003(\0132\022.cmvr.api.JointCmd\022\013\n\003vel\030\003 \001(\001\022" + + "\013\n\003acc\030\004 \001(\001\032<\n\010Response\0220\n\006header\030\001 \001(\013" + + "2 .cmvr.api.CommandHeader.Feedback2\361\001\n\024H" + + "umanoidRobotService\022N\n\ttorqueOff\022\037.cmvr." + + "api.CommandHeader.Request\032 .cmvr.api.Com" + + "mandHeader.Feedback\022M\n\010torqueOn\022\037.cmvr.a" + + "pi.CommandHeader.Request\032 .cmvr.api.Comm" + + "andHeader.Feedback\022:\n\005moveJ\022\027.cmvr.api.M" + + "oveJ.Request\032\030.cmvr.api.MoveJ.Responseb\006" + + "proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + cmvr.api.Common.getDescriptor(), + }); + internal_static_cmvr_api_JointCmd_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_cmvr_api_JointCmd_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_JointCmd_descriptor, + new java.lang.String[] { "JointName", "Rad", "Vel", }); + internal_static_cmvr_api_MoveJ_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_cmvr_api_MoveJ_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_MoveJ_descriptor, + new java.lang.String[] { }); + internal_static_cmvr_api_MoveJ_Request_descriptor = + internal_static_cmvr_api_MoveJ_descriptor.getNestedTypes().get(0); + internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_MoveJ_Request_descriptor, + new java.lang.String[] { "Header", "Cmds", "Vel", "Acc", }); + internal_static_cmvr_api_MoveJ_Response_descriptor = + internal_static_cmvr_api_MoveJ_descriptor.getNestedTypes().get(1); + internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_MoveJ_Response_descriptor, + new java.lang.String[] { "Header", }); + cmvr.api.Common.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobotServiceGrpc.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobotServiceGrpc.java new file mode 100644 index 0000000..3d82121 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/HumanoidRobotServiceGrpc.java @@ -0,0 +1,424 @@ +package cmvr.api; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.52.0)", + comments = "Source: cmvr/api/humanoid_robot.proto") +@io.grpc.stub.annotations.GrpcGenerated +public final class HumanoidRobotServiceGrpc { + + private HumanoidRobotServiceGrpc() {} + + public static final String SERVICE_NAME = "cmvr.api.HumanoidRobotService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getTorqueOffMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "torqueOff", + requestType = cmvr.api.Common.CommandHeader.Request.class, + responseType = cmvr.api.Common.CommandHeader.Feedback.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getTorqueOffMethod() { + io.grpc.MethodDescriptor getTorqueOffMethod; + if ((getTorqueOffMethod = HumanoidRobotServiceGrpc.getTorqueOffMethod) == null) { + synchronized (HumanoidRobotServiceGrpc.class) { + if ((getTorqueOffMethod = HumanoidRobotServiceGrpc.getTorqueOffMethod) == null) { + HumanoidRobotServiceGrpc.getTorqueOffMethod = getTorqueOffMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "torqueOff")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.Common.CommandHeader.Request.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance())) + .setSchemaDescriptor(new HumanoidRobotServiceMethodDescriptorSupplier("torqueOff")) + .build(); + } + } + } + return getTorqueOffMethod; + } + + private static volatile io.grpc.MethodDescriptor getTorqueOnMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "torqueOn", + requestType = cmvr.api.Common.CommandHeader.Request.class, + responseType = cmvr.api.Common.CommandHeader.Feedback.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getTorqueOnMethod() { + io.grpc.MethodDescriptor getTorqueOnMethod; + if ((getTorqueOnMethod = HumanoidRobotServiceGrpc.getTorqueOnMethod) == null) { + synchronized (HumanoidRobotServiceGrpc.class) { + if ((getTorqueOnMethod = HumanoidRobotServiceGrpc.getTorqueOnMethod) == null) { + HumanoidRobotServiceGrpc.getTorqueOnMethod = getTorqueOnMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "torqueOn")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.Common.CommandHeader.Request.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance())) + .setSchemaDescriptor(new HumanoidRobotServiceMethodDescriptorSupplier("torqueOn")) + .build(); + } + } + } + return getTorqueOnMethod; + } + + private static volatile io.grpc.MethodDescriptor getMoveJMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "moveJ", + requestType = cmvr.api.HumanoidRobot.MoveJ.Request.class, + responseType = cmvr.api.HumanoidRobot.MoveJ.Response.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getMoveJMethod() { + io.grpc.MethodDescriptor getMoveJMethod; + if ((getMoveJMethod = HumanoidRobotServiceGrpc.getMoveJMethod) == null) { + synchronized (HumanoidRobotServiceGrpc.class) { + if ((getMoveJMethod = HumanoidRobotServiceGrpc.getMoveJMethod) == null) { + HumanoidRobotServiceGrpc.getMoveJMethod = getMoveJMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "moveJ")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.HumanoidRobot.MoveJ.Request.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.HumanoidRobot.MoveJ.Response.getDefaultInstance())) + .setSchemaDescriptor(new HumanoidRobotServiceMethodDescriptorSupplier("moveJ")) + .build(); + } + } + } + return getMoveJMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static HumanoidRobotServiceStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public HumanoidRobotServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceStub(channel, callOptions); + } + }; + return HumanoidRobotServiceStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static HumanoidRobotServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public HumanoidRobotServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceBlockingStub(channel, callOptions); + } + }; + return HumanoidRobotServiceBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static HumanoidRobotServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public HumanoidRobotServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceFutureStub(channel, callOptions); + } + }; + return HumanoidRobotServiceFutureStub.newStub(factory, channel); + } + + /** + */ + public static abstract class HumanoidRobotServiceImplBase implements io.grpc.BindableService { + + /** + */ + public void torqueOff(cmvr.api.Common.CommandHeader.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTorqueOffMethod(), responseObserver); + } + + /** + */ + public void torqueOn(cmvr.api.Common.CommandHeader.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTorqueOnMethod(), responseObserver); + } + + /** + */ + public void moveJ(cmvr.api.HumanoidRobot.MoveJ.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMoveJMethod(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getTorqueOffMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + cmvr.api.Common.CommandHeader.Request, + cmvr.api.Common.CommandHeader.Feedback>( + this, METHODID_TORQUE_OFF))) + .addMethod( + getTorqueOnMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + cmvr.api.Common.CommandHeader.Request, + cmvr.api.Common.CommandHeader.Feedback>( + this, METHODID_TORQUE_ON))) + .addMethod( + getMoveJMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + cmvr.api.HumanoidRobot.MoveJ.Request, + cmvr.api.HumanoidRobot.MoveJ.Response>( + this, METHODID_MOVE_J))) + .build(); + } + } + + /** + */ + public static final class HumanoidRobotServiceStub extends io.grpc.stub.AbstractAsyncStub { + private HumanoidRobotServiceStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected HumanoidRobotServiceStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceStub(channel, callOptions); + } + + /** + */ + public void torqueOff(cmvr.api.Common.CommandHeader.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getTorqueOffMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void torqueOn(cmvr.api.Common.CommandHeader.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getTorqueOnMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void moveJ(cmvr.api.HumanoidRobot.MoveJ.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getMoveJMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + */ + public static final class HumanoidRobotServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub { + private HumanoidRobotServiceBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected HumanoidRobotServiceBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceBlockingStub(channel, callOptions); + } + + /** + */ + public cmvr.api.Common.CommandHeader.Feedback torqueOff(cmvr.api.Common.CommandHeader.Request request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getTorqueOffMethod(), getCallOptions(), request); + } + + /** + */ + public cmvr.api.Common.CommandHeader.Feedback torqueOn(cmvr.api.Common.CommandHeader.Request request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getTorqueOnMethod(), getCallOptions(), request); + } + + /** + */ + public cmvr.api.HumanoidRobot.MoveJ.Response moveJ(cmvr.api.HumanoidRobot.MoveJ.Request request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getMoveJMethod(), getCallOptions(), request); + } + } + + /** + */ + public static final class HumanoidRobotServiceFutureStub extends io.grpc.stub.AbstractFutureStub { + private HumanoidRobotServiceFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected HumanoidRobotServiceFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new HumanoidRobotServiceFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture torqueOff( + cmvr.api.Common.CommandHeader.Request request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getTorqueOffMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture torqueOn( + cmvr.api.Common.CommandHeader.Request request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getTorqueOnMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture moveJ( + cmvr.api.HumanoidRobot.MoveJ.Request request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getMoveJMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_TORQUE_OFF = 0; + private static final int METHODID_TORQUE_ON = 1; + private static final int METHODID_MOVE_J = 2; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final HumanoidRobotServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(HumanoidRobotServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_TORQUE_OFF: + serviceImpl.torqueOff((cmvr.api.Common.CommandHeader.Request) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_TORQUE_ON: + serviceImpl.torqueOn((cmvr.api.Common.CommandHeader.Request) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_MOVE_J: + serviceImpl.moveJ((cmvr.api.HumanoidRobot.MoveJ.Request) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class HumanoidRobotServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + HumanoidRobotServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return cmvr.api.HumanoidRobot.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("HumanoidRobotService"); + } + } + + private static final class HumanoidRobotServiceFileDescriptorSupplier + extends HumanoidRobotServiceBaseDescriptorSupplier { + HumanoidRobotServiceFileDescriptorSupplier() {} + } + + private static final class HumanoidRobotServiceMethodDescriptorSupplier + extends HumanoidRobotServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + HumanoidRobotServiceMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (HumanoidRobotServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new HumanoidRobotServiceFileDescriptorSupplier()) + .addMethod(getTorqueOffMethod()) + .addMethod(getTorqueOnMethod()) + .addMethod(getMoveJMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/humanoid_robot.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/humanoid_robot.proto new file mode 100644 index 0000000..e922115 --- /dev/null +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/humanoid_robot.proto @@ -0,0 +1,32 @@ + + +syntax = "proto3"; +package cmvr.api; +import "cmvr/api/common.proto"; + +message JointCmd { + string joint_name = 1; // 关节名称 + double rad = 2; // 弧度 + double vel = 3; // 角速度,rad/s +} + + +message MoveJ{ + message Request{ + CommandHeader.Request header = 1; + repeated JointCmd cmds = 2; + double vel = 3; + double acc = 4; + } + + message Response{ + CommandHeader.Feedback header= 1; + } + +} + +service HumanoidRobotService{ + rpc torqueOff(CommandHeader.Request) returns (CommandHeader.Feedback); + rpc torqueOn(CommandHeader.Request) returns (CommandHeader.Feedback); + rpc moveJ(MoveJ.Request) returns (MoveJ.Response); +} \ No newline at end of file