Browse Source

复杂路径思路梳理

main
maochaoying 2 years ago
parent
commit
ae79b71501
  1. 9
      src/main/java/com/iflytop/nuclear/controller/PathController.java
  2. 28
      src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java
  3. 1
      src/main/java/com/iflytop/nuclear/websocket/WebSocketServer.java

9
src/main/java/com/iflytop/nuclear/controller/PathController.java

@ -1,6 +1,7 @@
package com.iflytop.nuclear.controller; package com.iflytop.nuclear.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iflytop.nuclear.model.Path; import com.iflytop.nuclear.model.Path;
import com.iflytop.nuclear.model.Task; import com.iflytop.nuclear.model.Task;
import com.iflytop.nuclear.service.PathService; import com.iflytop.nuclear.service.PathService;
@ -47,4 +48,12 @@ public class PathController {
jsonObject.put("result", b); jsonObject.put("result", b);
return ResponseData.success(jsonObject); return ResponseData.success(jsonObject);
} }
@GetMapping("/list/{id}")
public ResponseData list(@PathVariable(name = "id") int taskId) {
QueryWrapper<Path> pathQueryWrapper = new QueryWrapper<>();
pathQueryWrapper.eq("task_id", taskId);
List<Path> list = pathService.list(pathQueryWrapper);
return ResponseData.success(list);
}
} }

28
src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java

@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.iflytop.nuclear.entity.CheckInfo; import com.iflytop.nuclear.entity.CheckInfo;
import com.iflytop.nuclear.entity.CheckResult; import com.iflytop.nuclear.entity.CheckResult;
import com.iflytop.nuclear.entity.DetectionMessage; import com.iflytop.nuclear.entity.DetectionMessage;
import com.iflytop.nuclear.model.Path;
import com.iflytop.nuclear.model.Task; import com.iflytop.nuclear.model.Task;
import com.iflytop.nuclear.service.CheckService; import com.iflytop.nuclear.service.CheckService;
import com.iflytop.nuclear.service.PathService;
import com.iflytop.nuclear.service.TaskService; import com.iflytop.nuclear.service.TaskService;
import com.iflytop.nuclear.websocket.SocketClient; import com.iflytop.nuclear.websocket.SocketClient;
import com.iflytop.nuclear.websocket.WebSocketServer; import com.iflytop.nuclear.websocket.WebSocketServer;
@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author cool * @author cool
@ -30,6 +33,8 @@ public class CheckServiceImpl implements CheckService {
WebSocketServer webSocketServer; WebSocketServer webSocketServer;
@Autowired @Autowired
SocketClient socketClient; SocketClient socketClient;
@Autowired
PathService pathService;
private static boolean messageReceived = false; private static boolean messageReceived = false;
@ -197,6 +202,29 @@ public class CheckServiceImpl implements CheckService {
}else { }else {
nextCoord = this.continueCheck(taskId, order); nextCoord = this.continueCheck(taskId, order);
} }
}else {
// 复杂路径
// 首先先获取当前task的startIndex 当前startIndex所对应的path = order_number 等于查询数据列表长度时说明当前复杂路径结束
QueryWrapper<Path> pathQueryWrapper = new QueryWrapper<>();
pathQueryWrapper.eq("task_id", taskId);
List<Path> pathList = pathService.list(pathQueryWrapper);
pathQueryWrapper.eq("coord", startIndex);
Path currentPath = pathService.getOne(pathQueryWrapper);
int orderNumber = currentPath.getOrderNumber();
int size = pathList.size();
// 逻辑理顺后 将该处转换为while循环形成路径
if (orderNumber == size) {
// 检测到最后一项
}else {
// 如果未结束 则使用order_numer + 1获取下一次的坐标移动机械臂到此位置进行处理
// 下一坐标的order_number order_numer + 1
int nextOrderNumber = orderNumber + 1;
QueryWrapper<Path> pathQueryWrapper1 = new QueryWrapper<>();
pathQueryWrapper1.eq("order_number", nextOrderNumber).eq("task_id", taskId);
Path nextPath = pathService.getOne(pathQueryWrapper1);
String coord = nextPath.getCoord();
// 将该coord转换为机械臂的x y坐标移动
}
} }
CheckResult checkResult = new CheckResult(); CheckResult checkResult = new CheckResult();
checkResult.setCurrentTestCoord(nextCoord); checkResult.setCurrentTestCoord(nextCoord);

1
src/main/java/com/iflytop/nuclear/websocket/WebSocketServer.java

@ -101,6 +101,7 @@ public class WebSocketServer {
@OnMessage @OnMessage
public void onMessage(String message, Session session) throws IOException { public void onMessage(String message, Session session) throws IOException {
// 不对用户消息做处理仅仅用来推送消息给客户端 // 不对用户消息做处理仅仅用来推送消息给客户端
System.out.println(message);
} }
/** /**

Loading…
Cancel
Save