update
This commit is contained in:
parent
ec7e0fc699
commit
e6818275ab
@ -46,7 +46,7 @@ public class HttpClient {
|
|||||||
try (Response response = client.newCall(request).execute()) {
|
try (Response response = client.newCall(request).execute()) {
|
||||||
return response.body().string();
|
return response.body().string();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException("POST Request Failed", e);
|
throw new RuntimeException("HTTP POST Request Failed", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,9 +181,7 @@ public class ExecuteMove extends BaseService {
|
|||||||
*/
|
*/
|
||||||
public static boolean resetOrder(String vehicleName) {
|
public static boolean resetOrder(String vehicleName) {
|
||||||
|
|
||||||
if (orderInfoMap.containsKey(vehicleName)) {
|
orderInfoMap.remove(vehicleName);
|
||||||
orderInfoMap.remove(vehicleName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,10 @@ public class ExecuteOperation extends BaseService{
|
|||||||
//获取订单ID
|
//获取订单ID
|
||||||
Integer orderId = ExecuteMove.getOrderID(vehicleName);
|
Integer orderId = ExecuteMove.getOrderID(vehicleName);
|
||||||
|
|
||||||
|
if (orderId == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
RequestB2 b2 = new RequestB2();
|
RequestB2 b2 = new RequestB2();
|
||||||
|
|
||||||
b2.setAction_parallel_manner(2);
|
b2.setAction_parallel_manner(2);
|
||||||
|
@ -91,6 +91,9 @@ public class TransportOrderHandler {
|
|||||||
//构建订单对象
|
//构建订单对象
|
||||||
PostTransportOrderRequestTO postTransportOrderRequestTO = new PostTransportOrderRequestTO();
|
PostTransportOrderRequestTO postTransportOrderRequestTO = new PostTransportOrderRequestTO();
|
||||||
postTransportOrderRequestTO.setIncompleteName(true);
|
postTransportOrderRequestTO.setIncompleteName(true);
|
||||||
|
if (intendedVehicle != null) {
|
||||||
|
postTransportOrderRequestTO.setIntendedVehicle(intendedVehicle);
|
||||||
|
}
|
||||||
postTransportOrderRequestTO.setDispensable(dispensable);
|
postTransportOrderRequestTO.setDispensable(dispensable);
|
||||||
postTransportOrderRequestTO.setDeadline(Instant.now());
|
postTransportOrderRequestTO.setDeadline(Instant.now());
|
||||||
postTransportOrderRequestTO.setWrappingSequence(orderSequence.getName());
|
postTransportOrderRequestTO.setWrappingSequence(orderSequence.getName());
|
||||||
|
@ -8,6 +8,8 @@ import jakarta.inject.Inject;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import org.opentcs.access.KernelRuntimeException;
|
import org.opentcs.access.KernelRuntimeException;
|
||||||
|
import org.opentcs.communication.http.service.ExecuteMove;
|
||||||
|
import org.opentcs.communication.http.service.ExecuteOperation;
|
||||||
import org.opentcs.data.ObjectExistsException;
|
import org.opentcs.data.ObjectExistsException;
|
||||||
import org.opentcs.data.ObjectUnknownException;
|
import org.opentcs.data.ObjectUnknownException;
|
||||||
import org.opentcs.kernel.extensions.servicewebapi.HttpConstants;
|
import org.opentcs.kernel.extensions.servicewebapi.HttpConstants;
|
||||||
@ -450,6 +452,11 @@ public class V1RequestHandler
|
|||||||
|
|
||||||
private Object handlePostWithdrawalByVehicle(Request request, Response response)
|
private Object handlePostWithdrawalByVehicle(Request request, Response response)
|
||||||
throws ObjectUnknownException {
|
throws ObjectUnknownException {
|
||||||
|
|
||||||
|
//初始化动作状态
|
||||||
|
vehicleHandler.initActionStatus(request.params(":NAME"));
|
||||||
|
|
||||||
|
//根据车辆撤销任务
|
||||||
orderDispatcherHandler.withdrawByVehicle(
|
orderDispatcherHandler.withdrawByVehicle(
|
||||||
request.params(":NAME"),
|
request.params(":NAME"),
|
||||||
immediate(request),
|
immediate(request),
|
||||||
@ -468,6 +475,16 @@ public class V1RequestHandler
|
|||||||
|
|
||||||
private Object handlePostVehicleRerouteRequest(Request request, Response response)
|
private Object handlePostVehicleRerouteRequest(Request request, Response response)
|
||||||
throws ObjectUnknownException {
|
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));
|
orderDispatcherHandler.reroute(request.params(":NAME"), forced(request));
|
||||||
response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
|
response.type(HttpConstants.CONTENT_TYPE_TEXT_PLAIN_UTF8);
|
||||||
return "";
|
return "";
|
||||||
|
@ -110,77 +110,24 @@ public class VehicleHandler {
|
|||||||
vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvInfo);
|
vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvInfo);
|
||||||
} else if (type == 5) { //上报动作完成
|
} else if (type == 5) { //上报动作完成
|
||||||
//动作完成上报
|
//动作完成上报
|
||||||
AgvActionStatus agvActionStatus = new AgvActionStatus();
|
initActionStatus(name);
|
||||||
agvActionStatus.setStatus(true);
|
// AgvActionStatus agvActionStatus = new AgvActionStatus();
|
||||||
vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvActionStatus);
|
// agvActionStatus.setStatus(true);
|
||||||
|
// vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvActionStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 获取执行成本最低车辆
|
* 初始化动作完成状态
|
||||||
// * @param destinationPoint 目标点
|
* @param name 车辆名称
|
||||||
// * @return 车辆名称
|
*/
|
||||||
// */
|
public void initActionStatus(String name) {
|
||||||
// public String getExecuteVehicle(String destinationPoint) {
|
Vehicle vehicle = vehicleService.fetchObject(Vehicle.class, name);
|
||||||
//
|
AgvActionStatus agvActionStatus = new AgvActionStatus();
|
||||||
// //获取所有车辆
|
agvActionStatus.setStatus(true);
|
||||||
// Set<Vehicle> vehicles = vehicleService.fetchObjects(Vehicle.class);
|
vehicleService.sendCommAdapterMessage(vehicle.getReference(), agvActionStatus);
|
||||||
// //设置终点
|
}
|
||||||
// List<String> destinationPointList = List.of(destinationPoint);
|
|
||||||
// //记录最低路由成本
|
|
||||||
// long costs = 0;
|
|
||||||
// //返回的车辆名称
|
|
||||||
// String vehicleName = null;
|
|
||||||
//
|
|
||||||
// for (Vehicle vehicle : vehicles) {
|
|
||||||
// VehicleProcessModelTO vehicleProcessModelTO = vehicleService.fetchProcessModel(vehicle.getReference());
|
|
||||||
// boolean commAdapterEnabled = vehicleProcessModelTO.isCommAdapterEnabled();
|
|
||||||
//
|
|
||||||
// //校验车辆:通讯适配器状态、车辆状态、集成级别、订单
|
|
||||||
// if (
|
|
||||||
// !commAdapterEnabled ||
|
|
||||||
// vehicle.getState() != Vehicle.State.IDLE ||
|
|
||||||
// vehicle.getIntegrationLevel() != Vehicle.IntegrationLevel.TO_BE_UTILIZED ||
|
|
||||||
// vehicle.getTransportOrder() != null
|
|
||||||
// ) {
|
|
||||||
// //车辆不能执行任务直接获取下台车辆
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //获取车辆当前位置设置为起点
|
|
||||||
// String sourcePoint = vehicle.getCurrentPosition().getName();
|
|
||||||
//
|
|
||||||
// PostVehicleRoutesRequestTO postVehicleRoutesRequestTO = new PostVehicleRoutesRequestTO(destinationPointList);
|
|
||||||
// postVehicleRoutesRequestTO.setSourcePoint(sourcePoint);
|
|
||||||
// Map<TCSObjectReference<Point>, Route> vehicleRoutes = this.getVehicleRoutes(vehicle.getName(), postVehicleRoutesRequestTO);
|
|
||||||
//
|
|
||||||
// for (Map.Entry<TCSObjectReference<Point>, Route> entry : vehicleRoutes.entrySet()) {
|
|
||||||
//// TCSObjectReference<Point> key = entry.getKey();
|
|
||||||
// Route value = entry.getValue();
|
|
||||||
//
|
|
||||||
// //判断成本值是否合规(为空或小于0不合规)
|
|
||||||
// if (value == null || value.getCosts() < 0) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //比较成本,取成本低车辆名称
|
|
||||||
// if (vehicleName == null || costs > value.getCosts()) {
|
|
||||||
// //记录数据
|
|
||||||
// costs = value.getCosts();
|
|
||||||
// vehicleName = vehicle.getName();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// if (vehicleName == null) {
|
|
||||||
// //无空闲车辆需要创建订单无意向车辆订单
|
|
||||||
//// throw new IllegalArgumentException("无可用车辆");
|
|
||||||
// return "";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return vehicleName;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find all vehicles orders and filters depending on the given parameters.
|
* Find all vehicles orders and filters depending on the given parameters.
|
||||||
|
@ -14,7 +14,8 @@ kernelapp.rerouteOnDriveOrderFinished = false
|
|||||||
kernelapp.vehicleResourceManagementType = LENGTH_RESPECTED
|
kernelapp.vehicleResourceManagementType = LENGTH_RESPECTED
|
||||||
|
|
||||||
orderpool.sweepInterval = 60000
|
orderpool.sweepInterval = 60000
|
||||||
orderpool.sweepAge = 86400000
|
orderpool.sweepAge = 60000
|
||||||
|
#orderpool.sweepAge = 86400000
|
||||||
|
|
||||||
rmikernelinterface.enable = true
|
rmikernelinterface.enable = true
|
||||||
rmikernelinterface.useSsl = false
|
rmikernelinterface.useSsl = false
|
||||||
|
Loading…
Reference in New Issue
Block a user