This commit is contained in:
xuzhiheng
2025-07-03 13:50:22 +08:00
parent f2241efc68
commit c07ca22d29
5 changed files with 74 additions and 22 deletions

View File

@@ -296,6 +296,19 @@ public class V1RequestHandler
// return jsonBinder.toJson("");
}
// private Object handlePostAgvTaskWithdrawal(Request request, Response response)
// throws KernelRuntimeException {
//
// response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
//
// //可能会有动作阻塞,所以需要初始化动作状态
// vehicleHandler.initActionStatus(request.params(":NAME"));
// //重新路由需要清理车辆映射订单ID
// ExecuteMove.resetOrder(request.params(":NAME"));
//
// return jsonBinder.toJson("");
// }
private Object handlePostDispatcherTrigger(Request request, Response response)
throws KernelRuntimeException {
response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
@@ -452,8 +465,7 @@ public class V1RequestHandler
private Object handlePostWithdrawalByVehicle(Request request, Response response)
throws ObjectUnknownException {
//初始化动作状态
//初始化动作执行状态
vehicleHandler.initActionStatus(request.params(":NAME"));
//根据车辆撤销任务
@@ -463,7 +475,7 @@ public class V1RequestHandler
disableVehicle(request)
);
response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
return "";
return jsonBinder.toJson("");
}
private Object handlePostPeripheralJobWithdrawal(Request request, Response response)
@@ -475,19 +487,13 @@ public class V1RequestHandler
private Object handlePostVehicleRerouteRequest(Request request, Response response)
throws ObjectUnknownException {
//清理车辆映射订单ID
ExecuteMove.resetOrder(request.params(":NAME"));
//可能会有动作阻塞,所以需要初始化动作状态
//初始化动作执行状态
vehicleHandler.initActionStatus(request.params(":NAME"));
//撤销订单 todo 订单撤销后可能会有延时继续运动,所以应该考虑是否需要等待订单撤销成功
// ExecuteOperation.cancelOrder(request.params(":NAME"));
//立即重新路由
orderDispatcherHandler.reroute(request.params(":NAME"), forced(request));
response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
return "";
return jsonBinder.toJson("");
}
private Object handleGetTransportOrders(Request request, Response response) {

View File

@@ -15,6 +15,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.opentcs.communication.http.service.ExecuteOperation;
import org.opentcs.components.kernel.services.RouterService;
import org.opentcs.components.kernel.services.VehicleService;
import org.opentcs.data.ObjectUnknownException;
@@ -109,14 +110,37 @@ public class VehicleHandler {
AgvInfo agvInfo = AdapterManage.setAdapterVehicleModel(name, jsonStr);
vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvInfo);
} else if (type == 5) { //上报动作完成
//动作完成上报
//动作完成,初始化动作状态
initActionStatus(name);
// AgvActionStatus agvActionStatus = new AgvActionStatus();
// agvActionStatus.setStatus(true);
// vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvActionStatus);
} else if (type == 6) { //撤销任务
//可能会卡动作,先初始化动作
initActionStatus(name);
//撤销agv控制器中的运动订单
ExecuteOperation.cancelOrder(name);
}
}
// /**
// * 撤销已下发的AGV任务
// */
// public void postAgvTaskWithdrawal(Object data) {
// String jsonStr;
// try {
// jsonStr = data.toString().split("=", 2)[1];
// } catch (Exception e) {
// jsonStr = data.toString();
// }
// JSONObject jsonObject = JSON.parseObject(jsonStr);
// String name = jsonObject.getString("vehicle_name");
// Integer type = jsonObject.getInteger("type");
//
// //可能会卡动作,先初始化动作
// initActionStatus(name);
//
// //撤销agv控制器中的运动订单
// ExecuteOperation.cancelOrder(name);
// }
/**
* 初始化动作完成状态
* @param name 车辆名称