8 changed files with 213 additions and 120 deletions
@ -1,6 +1,8 @@ |
|||
package com.galaxis.rcs.ptr; |
|||
|
|||
import com.galaxis.rcs.common.enums.LCCDirection; |
|||
|
|||
public record PosDirection(int logicX, |
|||
int logicY, |
|||
short direction) { |
|||
LCCDirection direction) { |
|||
} |
|||
|
|||
@ -0,0 +1,104 @@ |
|||
package com.yvan.event; |
|||
|
|||
import com.galaxis.rcs.common.entity.RcsTaskPlan; |
|||
import com.galaxis.rcs.common.enums.LCCDirection; |
|||
import com.galaxis.rcs.plan.PlanTaskSequence; |
|||
import com.galaxis.rcs.ptr.AmrTaskMode; |
|||
import com.galaxis.rcs.ptr.PosDirection; |
|||
import com.galaxis.rcs.ptr.PtrAgvDeviceTask; |
|||
import com.yvan.logisticsModel.ExecutorItem; |
|||
|
|||
import java.util.Set; |
|||
import java.util.concurrent.CopyOnWriteArraySet; |
|||
|
|||
public class AgvEventManager { |
|||
|
|||
private final Set<AgvEventListener> eventListeners = new CopyOnWriteArraySet<>(); |
|||
|
|||
private void fireEvent(AgvEventType type, Object... args) { |
|||
for (AgvEventListener listener : eventListeners) { |
|||
listener.onEvent(type, args); |
|||
} |
|||
} |
|||
|
|||
// 事件监听管理
|
|||
public void subscribe(AgvEventListener listener) { |
|||
eventListeners.add(listener); |
|||
} |
|||
|
|||
public void unsubscribe(AgvEventListener listener) { |
|||
eventListeners.remove(listener); |
|||
} |
|||
|
|||
public void fireOfflineEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.OFFLINE, sender); |
|||
} |
|||
|
|||
public void fireOnlineEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.ONLINE, sender); |
|||
} |
|||
|
|||
public void fireBlockedEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.BLOCKED, sender); |
|||
} |
|||
|
|||
public void fireBlockedRecoverEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.BLOCKED_RECOVER, sender); |
|||
} |
|||
|
|||
public void fireFreeEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.FREE, sender); |
|||
} |
|||
|
|||
public void firePlanTaskSequenceCompleteEvent(ExecutorItem sender, PlanTaskSequence taskSequence) { |
|||
fireEvent(AgvEventType.PLAN_TASK_SEQUENCE_COMPLETE, sender, taskSequence); |
|||
} |
|||
|
|||
public void firePlanTaskCompleteEvent(ExecutorItem sender, PlanTaskSequence taskSequence, RcsTaskPlan taskPlan) { |
|||
fireEvent(AgvEventType.PLAN_TASK_COMPLETE, sender, taskSequence, taskPlan); |
|||
} |
|||
|
|||
public void firePlanTaskExceptionEvent(ExecutorItem sender, PlanTaskSequence taskSequence, RcsTaskPlan taskPlan, Object exception) { |
|||
fireEvent(AgvEventType.PLAN_TASK_EXCEPTION, sender, taskSequence, exception); |
|||
} |
|||
|
|||
public void firePlanTaskSequenceAcceptEvent(ExecutorItem sender, PlanTaskSequence taskSequence) { |
|||
fireEvent(AgvEventType.PLAN_TASK_SEQUENCE_ACCEPT, sender, taskSequence); |
|||
} |
|||
|
|||
public void firePlanTaskSequenceCancelEvent(ExecutorItem sender, PlanTaskSequence taskSequence) { |
|||
fireEvent(AgvEventType.PLAN_TASK_SEQUENCE_CANCEL, sender, taskSequence); |
|||
} |
|||
|
|||
public void firePlanTaskSequencePauseEvent(ExecutorItem sender, PlanTaskSequence taskSequence) { |
|||
fireEvent(AgvEventType.PLAN_TASK_SEQUENCE_PAUSE, sender, taskSequence); |
|||
} |
|||
|
|||
public void firePlanTaskSequenceResumeEvent(ExecutorItem sender, PlanTaskSequence taskSequence) { |
|||
fireEvent(AgvEventType.PLAN_TASK_SEQUENCE_RESUME, sender, taskSequence); |
|||
} |
|||
|
|||
public void fireDeviceTaskCompleteEvent(ExecutorItem sender, PtrAgvDeviceTask deviceTask) { |
|||
fireEvent(AgvEventType.DEVICE_TASK_COMPLETE, sender, deviceTask); |
|||
} |
|||
|
|||
public void fireDeviceTaskExceptionEvent(ExecutorItem sender, PtrAgvDeviceTask deviceTask, Object exception) { |
|||
fireEvent(AgvEventType.DEVICE_TASK_EXCEPTION, sender, deviceTask, exception); |
|||
} |
|||
|
|||
public void firePosChangedEvent(ExecutorItem sender, PosDirection newPosDirection, PosDirection originPosDirection) { |
|||
fireEvent(AgvEventType.POS_CHANGED, sender, newPosDirection, originPosDirection); |
|||
} |
|||
|
|||
public void fireDirectionChangedEvent(ExecutorItem sender, LCCDirection direction, LCCDirection originDirection) { |
|||
fireEvent(AgvEventType.DIRECTION_CHANGED, sender, direction, originDirection); |
|||
} |
|||
|
|||
public void fireLowBatteryEvent(ExecutorItem sender) { |
|||
fireEvent(AgvEventType.LOW_BATTERY, sender); |
|||
} |
|||
|
|||
public void fireModeChangeEvent(ExecutorItem sender, AmrTaskMode mode, AmrTaskMode originMode) { |
|||
fireEvent(AgvEventType.MODE_CHANGED, sender, mode, originMode); |
|||
} |
|||
} |
|||
@ -1,24 +0,0 @@ |
|||
package com.yvan.event; |
|||
|
|||
import java.util.Set; |
|||
import java.util.concurrent.CopyOnWriteArraySet; |
|||
|
|||
public class EventManager { |
|||
|
|||
private final Set<AgvEventListener> eventListeners = new CopyOnWriteArraySet<>(); |
|||
|
|||
public void fireEvent(AgvEventType type, Object... args) { |
|||
for (AgvEventListener listener : eventListeners) { |
|||
listener.onEvent(type, args); |
|||
} |
|||
} |
|||
|
|||
// 事件监听管理
|
|||
public void subscribe(AgvEventListener listener) { |
|||
eventListeners.add(listener); |
|||
} |
|||
|
|||
public void unsubscribe(AgvEventListener listener) { |
|||
eventListeners.remove(listener); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue