| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- package com.fdkk.fdkkmeta.grpcService;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.ArrayUtil;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.fdkk.fdkkmeta.config.MetaConfig;
- import com.fdkk.fdkkmeta.domain.dto.RouteDto;
- import com.fdkk.fdkkmeta.domain.po.PointPO;
- import com.fdkk.fdkkmeta.grpc.*;
- import com.fdkk.fdkkmeta.util.ProtoJsonUtils;
- import com.fdkk.fdkkmeta.util.kesar.GetRoute;
- import com.google.protobuf.Message;
- import com.googlecode.protobuf.format.JsonFormat;
- import io.grpc.stub.StreamObserver;
- import lombok.extern.slf4j.Slf4j;
- import net.devh.boot.grpc.server.service.GrpcService;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import java.io.File;
- import java.io.IOException;
- /**
- * @author Xiewj
- * @date 2022/5/9
- */
- @GrpcService
- @Slf4j
- public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBase {
- @Autowired
- MetaConfig metaConfig;
- /***
- * 回复 案例
- * SceneReply res = SceneReply.newBuilder().setRes(id+","+name).build();
- * responseObserver.onNext(res);
- */
- @Override
- public void getRoute(RouteRequest request, StreamObserver<RouteReply> responseObserver) {
- // grpc服务端获取调用端请求参数
- String sceneCode = request.getSceneCode();
- Point sLocation = request.getSLocation();
- Point eLocation = request.getELocation();
- RouteDto po=new RouteDto();
- PointPO s=new PointPO();
- s.setX(Double.parseDouble(sLocation.getX()));
- s.setY(Double.parseDouble(sLocation.getY()));
- s.setZ(Double.parseDouble(sLocation.getY()));
- PointPO e=new PointPO();
- e.setX(Double.parseDouble(eLocation.getX()));
- e.setY(Double.parseDouble(eLocation.getY()));
- e.setZ(Double.parseDouble(eLocation.getY()));
- po.setE_location(e);
- po.setS_location(s);
- po.setSceneCode(sceneCode);
- JSONArray maps = GetRoute.getRoute(metaConfig.getFreespacePath()+ File.separator +"target_freespace.json", po);
- // 这里可以有自己的业务代码,只需要按照porto中的返回类型返回参数即可
- RouteReply.Builder builder = RouteReply.newBuilder();
- if (ArrayUtil.isNotEmpty(maps)) {
- for (int i = 0; i < maps.size(); i++) {
- RouteArray.Builder addInBuilder = builder.addInBuilder();
- ProtoJsonUtils.toProtoBean(addInBuilder, maps.get(i).toString());
- }
- }
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
- @Override
- public void init(InitRequest request, StreamObserver<NormalReply> responseObserver) {
- try {
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void rotate(RotateRequest request, StreamObserver<NormalReply> responseObserver) {
- try {
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void moveStart(StartMoveRequest request, StreamObserver<NormalReply> responseObserver) {
- try {
- /*
- * 1.从user表里获得当前人物所在的breakPoint_id
- * 2.根据breakPoint_id,从breakpoints表里获得对应的起始坐标
- * 3.根据request中的clicking_action里的clicking_point(目的地)以及当前起始坐标计算出路径
- * 4.返回整个路径的一段
- *
- * */
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void moveProcess(MoveNextNeighborRequest request, StreamObserver<MoveReply> responseObserver) {
- try {
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void getBreakPoint(BreakPointRequest request, StreamObserver<BreakPointReply> responseObserver) {
- try {
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- //操作杆
- @Override
- public void joystick(JoystickRequest request, StreamObserver<NormalReply> responseObserver) {
- try {
- log.info("进入{}",request);
- // responseObserver.onNext(res);
- // responseObserver.onCompleted();
- // log.info("回复{}",res);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
|