xushiting 3 年之前
父节点
当前提交
c80916ca79

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/domain/po/MetaDataFramePO.java

@@ -8,7 +8,7 @@ import lombok.Data;
 public class MetaDataFramePO {
 public class MetaDataFramePO {
     private String[] traceIds;
     private String[] traceIds;
     private String vehicle = null;
     private String vehicle = null;
-    private JSONArray newUserStates;
+    private UserState[] newUserStates;
     private JSONArray actionResponses;
     private JSONArray actionResponses;
     private int getStateType = 0;
     private int getStateType = 0;
     private int code = 0;
     private int code = 0;

+ 80 - 22
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -106,7 +106,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     }
     }
 
 
     @Override
     @Override
-    public void init(InitRequest request, StreamObserver<NormalReply> responseObserver)   {
+    public void init(InitRequest request, StreamObserver<CommonReply> responseObserver)   {
 
 
     	try {
     	try {
     		String user_id = request.getUserId();
     		String user_id = request.getUserId();
@@ -151,16 +151,32 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 			//redis中写入用户状态信息
 			//redis中写入用户状态信息
 			redisCache.setCacheObject("UserState:"+userEntity.getUserId(),myState);
 			redisCache.setCacheObject("UserState:"+userEntity.getUserId(),myState);
 
 
+			MetaDataFramePO metaDataFramePO = createDefaultFrameMetadata(userEntity);
 			//返回
 			//返回
-			NormalReply.Builder builder = NormalReply.newBuilder();
-			builder.setCode(200);
+			CommonReply.Builder builder = CommonReply.newBuilder();
+			String[] traceIds = metaDataFramePO.getTraceIds();
+			for(int i=0;i<traceIds.length;++i){
+				builder.addTraceIds(traceIds[i]);
+			}
+
+			builder.setVehicle(metaDataFramePO.getVehicle());
+
+			UserState[] userStates = metaDataFramePO.getNewUserStates();
+			for(int i=0;i<userStates.length;++i){
+				builder.addNewUserStates(userStates[i]);
+			}
+
+			builder.setGetStateType(metaDataFramePO.getGetStateType());
+			builder.setCode(metaDataFramePO.getCode());
+			builder.setMsg(metaDataFramePO.getMsg());
+
 			responseObserver.onNext(builder.build());
 			responseObserver.onNext(builder.build());
 			responseObserver.onCompleted();
 			responseObserver.onCompleted();
 		}
 		}
     	catch(Exception e) {
     	catch(Exception e) {
-    		e.printStackTrace();
-			responseObserver.onNext(NormalReply.newBuilder().setCode(500).build());
-			responseObserver.onCompleted();
+//    		e.printStackTrace();
+//			responseObserver.onNext(NormalReply.newBuilder().setCode(500).build());
+//			responseObserver.onCompleted();
 			log.error("initException{}",e.getMessage());
 			log.error("initException{}",e.getMessage());
     	}
     	}
     }
     }
@@ -438,24 +454,27 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             UserEntity userEntity = userService.findUserId(user_id);
             UserEntity userEntity = userService.findUserId(user_id);
             List<BreakpointsEntity> allList = breakpointsService.findByAppId(userEntity.getAppId());
             List<BreakpointsEntity> allList = breakpointsService.findByAppId(userEntity.getAppId());
 
 
-            Point[] nps=null;
-            BreakPointReply res = BreakPointReply.newBuilder()
-     				.setActionType(action_type)
-     				.setPointType(100)
-     				.setExtra("")
-     				.setTraceId(trace_id)
-     				.setPacketId("")
-     				//.setNps(nps)
-     				.setPeopleNum(0)
-     				.setZoneId("")
-     				.setEchoMsg("")
-     				.setReserveDetail(null)
+            BreakPointReply.Builder res = BreakPointReply.newBuilder();
+			res.setActionType(action_type);
+			res.setPointType(100);
+			res.setExtra("");
+			res.setTraceId(trace_id);
+			res.setPacketId("");
+			for(int i=0;i<allList.size();++i){
+				BreakpointsEntity breakpointsEntity = allList.get(i);
+				PointPO breakpointsEntityPosition = breakpointsEntity.getPosition();
+				Point nps = Point.newBuilder().setX(String.valueOf(breakpointsEntityPosition.getX())).setY(String.valueOf(breakpointsEntityPosition.getY())).setZ(String.valueOf(breakpointsEntityPosition.getZ())).build();
+				res.addNps(nps);
+			}
+			res.setPeopleNum(0);
+			res.setZoneId("");
+			res.setEchoMsg("");
+			res.setReserveDetail(null);
      				//.setUserWithAvatarList()
      				//.setUserWithAvatarList()
      				//.setNewUserStates()
      				//.setNewUserStates()
-     				.setCode(200)
-     				.setMsg("")
-     				.build();
-            responseObserver.onNext(res);
+			res.setCode(200);
+			res.setMsg("");
+            responseObserver.onNext(res.build());
             responseObserver.onCompleted();
             responseObserver.onCompleted();
             log.info("回复{}",res);
             log.info("回复{}",res);
     	}
     	}
@@ -575,4 +594,43 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 			log.info("exitException{}",e.getMessage());
 			log.info("exitException{}",e.getMessage());
         }
         }
     }
     }
+
+	private MetaDataFramePO createDefaultFrameMetadata(UserEntity user){
+		String[] traceIds = new String[1];
+		traceIds[0] = "";
+		JSONArray actionResponses = new JSONArray();
+
+		RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
+		PointPO playerPosition = user.getPlayerPosition();
+		Point playerPt = Point.newBuilder().setX(String.valueOf(playerPosition.getX())).setY(String.valueOf(playerPosition.getY())).setZ(String.valueOf(playerPosition.getZ())).build();
+		AnglePO playerAngle = user.getPlayerAngle();
+		AngleUe4 playerAg =AngleUe4.newBuilder().setPitch(playerAngle.getPitch()).setYaw(playerAngle.getYaw()).setRoll(playerAngle.getRoll()).build();
+		Space player = sceneGrpcService.createSpace(playerPt,playerAg);
+
+		PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
+		Point cameraPosition = sceneGrpcService.createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
+		AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
+		AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
+		Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
+
+		MetaDataFramePO metaDataFramePO = new MetaDataFramePO();
+		metaDataFramePO.setTraceIds(traceIds);
+		metaDataFramePO.setVehicle(null);
+		State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
+
+		RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
+		UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
+
+		//newUserStates
+		UserState[] newUserStates = new UserState[1];
+		//JSONArray newUserStates = new JSONArray();
+		newUserStates[0] = userState;
+		metaDataFramePO.setNewUserStates(newUserStates);
+		metaDataFramePO.setActionResponses(actionResponses);
+		metaDataFramePO.setGetStateType(0);
+		metaDataFramePO.setCode(0);
+		metaDataFramePO.setMsg("");
+		return metaDataFramePO;
+		//redisCache.setCacheObject("updateFrameMetadata:"+user.getUserId(),metaDataFramePO);
+	}
 }
 }

+ 10 - 6
src/main/java/com/fdkk/fdkkmeta/task/UpdateFrameMetaTask.java

@@ -243,8 +243,8 @@ public class UpdateFrameMetaTask {
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
 
 
         //newUserStates
         //newUserStates
-        JSONArray newUserStates = new JSONArray();
-        newUserStates.add(userState);
+        UserState[] newUserStates = new UserState[1];
+        newUserStates[0] = userState;
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setGetStateType(0);
         metaDataFramePO.setGetStateType(0);
@@ -281,8 +281,10 @@ public class UpdateFrameMetaTask {
         UserState userState = sceneGrpcService.createUserState( user_id, playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user_id, playerState, renderInfo, null);
 
 
         //newUserStates
         //newUserStates
-        JSONArray newUserStates = new JSONArray();
-        newUserStates.add(userState);
+//        JSONArray newUserStates = new JSONArray();
+//        newUserStates.add(userState);
+        UserState[] newUserStates = new UserState[1];
+        newUserStates[0] = userState;
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setGetStateType(0);
         metaDataFramePO.setGetStateType(0);
@@ -331,8 +333,10 @@ public class UpdateFrameMetaTask {
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
 
 
         //newUserStates
         //newUserStates
-        JSONArray newUserStates = new JSONArray();
-        newUserStates.add(userState);
+//        JSONArray newUserStates = new JSONArray();
+////        newUserStates.add(userState);
+        UserState[] newUserStates = new UserState[1];
+        newUserStates[0] = userState;
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setNewUserStates(newUserStates);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setActionResponses(actionResponses);
         metaDataFramePO.setGetStateType(0);
         metaDataFramePO.setGetStateType(0);

+ 10 - 11
src/main/proto/scene.proto

@@ -8,7 +8,7 @@ option java_package = "com.fdkk.fdkkmeta.grpc";
 // grpc的方法
 // grpc的方法
 service SceneGrpcService {
 service SceneGrpcService {
   rpc getRoute (RouteRequest) returns (RouteReply){}
   rpc getRoute (RouteRequest) returns (RouteReply){}
-  rpc init (InitRequest) returns (NormalReply){}
+  rpc init (InitRequest) returns (CommonReply){}
   rpc rotate (RotateRequest) returns (NormalReply){}
   rpc rotate (RotateRequest) returns (NormalReply){}
   rpc move (MoveRequest) returns (NormalReply){}
   rpc move (MoveRequest) returns (NormalReply){}
 //  rpc moveStart (StartMoveRequest) returns (MoveReply){}
 //  rpc moveStart (StartMoveRequest) returns (MoveReply){}
@@ -219,16 +219,15 @@ message RotateRequest {
 }
 }
 /**********************************************************/
 /**********************************************************/
 //正常的反馈
 //正常的反馈
-//message NormalReply {
-//   repeated string traceIds=1;
-//   string vehicle=2;
-//   repeated UserState newUserStates=3;
-//   repeated int32 actionResponses=4;
-//   int32 getStateType=5;
-//   int32 code=6;
-//   string msg=7;
-//   string frameSrc=8;              //视频路径
-//}
+message CommonReply {
+   repeated string traceIds=1;
+   string vehicle=2;
+   repeated UserState newUserStates=3;
+   repeated int32 actionResponses=4;
+   int32 getStateType=5;
+   int32 code=6;
+   string msg=7;
+}
 
 
 /**********************************************************/
 /**********************************************************/
 //
 //