opentcs
opentcs copied to clipboard
TranportOder status change failed error
Affected version
OpenTcs: release 5.10.0 Used adapter: Custumed NeNa adapter from here for connecting to ROS2 humble.
...
Steps to reproduce
How can the incorrect behaviour be reproduced?
- create orders which have two random transport points with load cargo and unload cargo operation
- repeat sending orders through WebAPI times.
- Sometimes, it occurred the problem that, the status of the operation stayed at "TRAVELLING" even when the vehicle finished its action.
Expected behaviour
Q1: For the problem, failed to change the status of operations, which part of the program should I check,? (Kenerl, OperationsDesk or Adapter ...)
Q2: where will the status of operations be changed in the program when the vehicle begins and finishes the operation process?
Q3: Does the behaviour to change the status of operations in the program use the "firePropertyChange" function?
...
Additional information
the screenshot of the problem:
the code when the operations actually done:
/* --------------- 3a: Handle load cargo feedback ---------------*/
public void onExecuteLoadCargoFeedback(@Nonnull String feedback) {
if (this.excutingOperation.equals(OperationConstants.LOAD_CARGO)){
System.out.println("onOperationLoadCargoFeedback: " + feedback);
if (feedback.startsWith("FINISH")) {
System.out.println("onExecuteLoadCargoFeedback() -> Success");
this.processModel.setVehicleLoadHandlingDevices(Collections.singletonList(new LoadHandlingDevice(LOAD_HANDLING_DEVICE_NAME, true)));
onOperationExecutionFinished(); // Fake that the operation was successful.
}
}
}
/* --------------- 3b: Handle unload cargo feedback ---------------*/
public void onExecuteUnloadCargoFeedback(@Nonnull String feedback) {
if (this.excutingOperation.equals(OperationConstants.UNLOAD_CARGO)) {
System.out.println("onOperationUnLoadCargoFeedback: " + feedback);
if (feedback.startsWith("FINISH")) {
System.out.println("onExecuteUnloadCargoFeedback() -> Success");
this.processModel.setVehicleLoadHandlingDevices(Collections.singletonList(new LoadHandlingDevice(LOAD_HANDLING_DEVICE_NAME, false)));
onOperationExecutionFinished(); // Fake that the operation was successful.
}
}
}
- Operating system and version: Windows 7,
- Java distribution version: java 13.0.2 2020-01-14 (build 13.0.2+8)
- ...
Any suggestions or hints, I'd appreciate it!