From a0b49b0d11220c7fefcbe0ca0e938827c16edae4 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 02 四月 2026 19:09:18 +0800
Subject: [PATCH] #预调度堆垛机2
---
/dev/null | 397 -------------------------------------------------
src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java | 2
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java | 26 ++-
3 files changed, 17 insertions(+), 408 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java b/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
index 0018484..4c09b6b 100644
--- a/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
+++ b/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
@@ -105,7 +105,7 @@
// 鍚屽爢鍨涙満娌℃湁闇�瑕佸弬涓庡綋鍓嶈皟搴﹀垽鏂殑鍑哄簱浠诲姟鏃讹紝浼樺厛鐩存帴鍒板綋鍓嶅叆搴撲换鍔″彇璐т綅绛夊緟銆�
if (!hasBlockingOutboundTask(crnNo)) {
- boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo);
+ boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo, true);
if (dispatched) {
News.info("妫�娴嬪埌浠呮湁鍏ュ簱浠诲姟锛屽凡瑙﹀彂鍫嗗灈鏈虹洿鎺ョЩ鍔ㄥ埌鍏ュ簱浠诲姟鍙栬揣浣嶇瓑寰咃紝宸ヤ綔鍙�={}锛屽爢鍨涙満鍙�={}锛屽彇璐т綅={}",
wrkMast.getWrkNo(), crnNo, inboundPickupLocNo);
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index 32caee7..889589e 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -1122,6 +1122,10 @@
//璋冨害鍫嗗灈鏈虹Щ鍔�
public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo) {
+ return dispatchCrnMove(crnNo, targetLocNo, false);
+ }
+
+ public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo, boolean allowQueueWhenBusy) {
if (crnNo == null || Cools.isEmpty(targetLocNo)) {
return false;
}
@@ -1156,16 +1160,18 @@
return false;
}
- long runningCount = wrkMastService.count(new QueryWrapper<WrkMast>()
- .eq("crn_no", crnNo)
- .in("wrk_sts",
- WrkStsType.INBOUND_RUN.sts,
- WrkStsType.OUTBOUND_RUN.sts,
- WrkStsType.LOC_MOVE_RUN.sts,
- WrkStsType.CRN_MOVE_RUN.sts));
- if (runningCount > 0) {
- News.info("鍫嗗灈鏈�:{} 瀛樺湪鎵ц涓殑浠诲姟锛屾殏涓嶇敓鎴愮Щ鍔ㄤ换鍔�", crnNo);
- return false;
+ if (!allowQueueWhenBusy) {
+ long runningCount = wrkMastService.count(new QueryWrapper<WrkMast>()
+ .eq("crn_no", crnNo)
+ .in("wrk_sts",
+ WrkStsType.INBOUND_RUN.sts,
+ WrkStsType.OUTBOUND_RUN.sts,
+ WrkStsType.LOC_MOVE_RUN.sts,
+ WrkStsType.CRN_MOVE_RUN.sts));
+ if (runningCount > 0) {
+ News.info("鍫嗗灈鏈�:{} 瀛樺湪鎵ц涓殑浠诲姟锛屾殏涓嶇敓鎴愮Щ鍔ㄤ换鍔�", crnNo);
+ return false;
+ }
}
WrkMast activeTask = wrkMastService.getOne(new QueryWrapper<WrkMast>()
diff --git a/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java b/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java
deleted file mode 100644
index 3fab458..0000000
--- a/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java
+++ /dev/null
@@ -1,397 +0,0 @@
-package com.zy.core.utils;
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkAnalysisService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.utils.NotifyUtils;
-import com.zy.common.service.CommonService;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.CrnModeType;
-import com.zy.core.enums.CrnStatusType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.WrkIoType;
-import com.zy.core.enums.WrkStsType;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.thread.CrnThread;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
-import org.springframework.test.util.ReflectionTestUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-class CrnOperateProcessUtilsTest {
-
- @AfterEach
- void tearDown() {
- safeClearQueue(1);
- safeClearQueue(2);
- SlaveConnection.remove(SlaveType.Crn, 1);
- SlaveConnection.remove(SlaveType.Crn, 2);
- SlaveConnection.remove(SlaveType.Devp, 101);
- }
-
- @Test
- void dispatchCrnMove_createsFormalTaskOnly() {
- CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
- WrkMastService wrkMastService = mock(WrkMastService.class);
- CommonService commonService = mock(CommonService.class);
- WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
- CrnThread crnThread = mock(CrnThread.class);
-
- ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
- ReflectionTestUtils.setField(utils, "commonService", commonService);
- ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
- when(wrkMastService.count(any())).thenReturn(0L);
- when(wrkMastService.getOne(any())).thenReturn(null);
- when(commonService.getWorkNo(WrkIoType.CRN_MOVE.id)).thenReturn(30001);
- AtomicReference<WrkMast> savedSnapshot = new AtomicReference<>();
- when(wrkMastService.save(any(WrkMast.class))).thenAnswer(invocation -> {
- WrkMast source = invocation.getArgument(0);
- WrkMast snapshot = new WrkMast();
- snapshot.setWrkNo(source.getWrkNo());
- snapshot.setIoType(source.getIoType());
- snapshot.setWrkSts(source.getWrkSts());
- snapshot.setLocNo(source.getLocNo());
- snapshot.setCrnNo(source.getCrnNo());
- savedSnapshot.set(snapshot);
- return true;
- });
-
- MessageQueue.init(SlaveType.Crn, 1);
- CrnProtocol protocol = buildProtocol(1, CrnStatusType.IDLE.id, 0);
- protocol.setBay(8);
- protocol.setLevel(3);
- when(crnThread.getStatus()).thenReturn(protocol);
- SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
- boolean dispatched = utils.dispatchCrnMove(1, "2-1-1");
-
- assertTrue(dispatched);
-
- verify(wrkMastService).save(any(WrkMast.class));
- WrkMast saved = savedSnapshot.get();
- assertNotNull(saved);
- assertEquals(30001, saved.getWrkNo());
- assertEquals(WrkIoType.CRN_MOVE.id, saved.getIoType());
- assertEquals(WrkStsType.NEW_CRN_MOVE.sts, saved.getWrkSts());
- assertEquals("2-1-1", saved.getLocNo());
- assertEquals(1, saved.getCrnNo());
-
- verify(wrkMastService, never()).updateById(any(WrkMast.class));
- verify(wrkAnalysisService, never()).markCraneStart(any(WrkMast.class), any());
- assertNull(MessageQueue.peek(SlaveType.Crn, 1));
- }
-
- @Test
- void dispatchCrnMove_returnsFalseWhenOtherTaskRunning() {
- CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
- WrkMastService wrkMastService = mock(WrkMastService.class);
- CommonService commonService = mock(CommonService.class);
- WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-
- ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
- ReflectionTestUtils.setField(utils, "commonService", commonService);
- ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
- when(wrkMastService.count(any())).thenReturn(1L);
- when(wrkMastService.getOne(any())).thenReturn(null);
- when(wrkMastService.save(any(WrkMast.class))).thenReturn(true);
- when(commonService.getWorkNo(WrkIoType.CRN_MOVE.id)).thenReturn(30001);
-
- boolean dispatched = utils.dispatchCrnMove(1, "2-1-1");
-
- assertFalse(dispatched);
- verify(wrkMastService, never()).save(any(WrkMast.class));
- verify(commonService, never()).getWorkNo(anyInt());
- verify(wrkAnalysisService, never()).initForTask(any(WrkMast.class));
- }
-
- @Test
- void crnIoExecuteNormal_prioritizesCrnMoveTask() {
- CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
- BasCrnpService basCrnpService = mock(BasCrnpService.class);
- WrkMastService wrkMastService = mock(WrkMastService.class);
- RedisUtil redisUtil = mock(RedisUtil.class);
- LocMastService locMastService = mock(LocMastService.class);
- NotifyUtils notifyUtils = mock(NotifyUtils.class);
- WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
- CrnThread crnThread = mock(CrnThread.class);
-
- ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
- ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
- ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
- ReflectionTestUtils.setField(utils, "locMastService", locMastService);
- ReflectionTestUtils.setField(utils, "notifyUtils", notifyUtils);
- ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
- when(basCrnpService.list(anyWrapper())).thenReturn(List.of(buildBasCrnp(1, "[[2,3]]", "[2]")));
- when(redisUtil.get(anyString())).thenReturn(null);
- when(wrkMastService.count(any())).thenReturn(0L);
- when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
- WrkMast crnMoveTask = new WrkMast();
- crnMoveTask.setWrkNo(30001);
- crnMoveTask.setCrnNo(1);
- crnMoveTask.setIoType(WrkIoType.CRN_MOVE.id);
- crnMoveTask.setWrkSts(WrkStsType.NEW_CRN_MOVE.sts);
- crnMoveTask.setLocNo("2-1-1");
- crnMoveTask.setIoPri(999D);
-
- WrkMast locMoveTask = new WrkMast();
- locMoveTask.setWrkNo(20001);
- locMoveTask.setCrnNo(1);
- locMoveTask.setIoType(WrkIoType.LOC_MOVE.id);
- locMoveTask.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts);
- locMoveTask.setSourceLocNo("3-1-1");
- locMoveTask.setLocNo("4-1-1");
- locMoveTask.setIoPri(1D);
-
- when(wrkMastService.list(anyWrapper()))
- .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
- .thenReturn(new ArrayList<>(List.of(locMoveTask, crnMoveTask)));
-
- LocMast sourceLoc = new LocMast();
- sourceLoc.setLocNo("3-1-1");
- sourceLoc.setLocSts("R");
- LocMast targetLoc = new LocMast();
- targetLoc.setLocNo("4-1-1");
- targetLoc.setLocSts("S");
- when(locMastService.getById("3-1-1")).thenReturn(sourceLoc);
- when(locMastService.getById("4-1-1")).thenReturn(targetLoc);
-
- CrnProtocol protocol = buildProtocol(1, CrnStatusType.IDLE.id, 0);
- protocol.setBay(1);
- protocol.setLevel(1);
- when(crnThread.getStatus()).thenReturn(protocol);
-
- CrnCommand moveCommand = new CrnCommand();
- moveCommand.setCrnNo(1);
- moveCommand.setTaskNo(30001);
- when(crnThread.getMoveCommand("2-1-1", 30001, 1)).thenReturn(moveCommand);
-
- CrnCommand locMoveCommand = new CrnCommand();
- locMoveCommand.setCrnNo(1);
- locMoveCommand.setTaskNo(20001);
- when(crnThread.getPickAndPutCommand("3-1-1", "4-1-1", 20001, 1)).thenReturn(locMoveCommand);
-
- MessageQueue.init(SlaveType.Crn, 1);
- SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
- utils.crnIoExecuteNormal();
-
- ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
- verify(wrkMastService).updateById(updateCaptor.capture());
- assertEquals(30001, updateCaptor.getValue().getWrkNo());
- assertEquals(WrkStsType.CRN_MOVE_RUN.sts, updateCaptor.getValue().getWrkSts());
- verify(wrkAnalysisService).markCraneStart(any(WrkMast.class), any());
-
- Task task = MessageQueue.peek(SlaveType.Crn, 1);
- assertNotNull(task);
- assertSame(moveCommand, task.getData());
- }
-
- @Test
- void crnIoExecuteNormal_allowsOtherCraneToRunWhenOneCraneHasMoveTask() {
- CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
- BasCrnpService basCrnpService = mock(BasCrnpService.class);
- WrkMastService wrkMastService = mock(WrkMastService.class);
- RedisUtil redisUtil = mock(RedisUtil.class);
- LocMastService locMastService = mock(LocMastService.class);
- NotifyUtils notifyUtils = mock(NotifyUtils.class);
- WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
- CrnThread crnThread1 = mock(CrnThread.class);
- CrnThread crnThread2 = mock(CrnThread.class);
-
- ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
- ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
- ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
- ReflectionTestUtils.setField(utils, "locMastService", locMastService);
- ReflectionTestUtils.setField(utils, "notifyUtils", notifyUtils);
- ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
- when(basCrnpService.list(anyWrapper())).thenReturn(List.of(
- buildBasCrnp(1, "[[2,3]]", "[2]"),
- buildBasCrnp(2, "[[4,5]]", "[4]")
- ));
- when(redisUtil.get(anyString())).thenReturn(null);
- when(wrkMastService.count(any())).thenReturn(0L);
- when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
- WrkMast crnMoveTask = new WrkMast();
- crnMoveTask.setWrkNo(30001);
- crnMoveTask.setCrnNo(1);
- crnMoveTask.setIoType(WrkIoType.CRN_MOVE.id);
- crnMoveTask.setWrkSts(WrkStsType.NEW_CRN_MOVE.sts);
- crnMoveTask.setLocNo("2-1-1");
-
- WrkMast locMoveTask = new WrkMast();
- locMoveTask.setWrkNo(20002);
- locMoveTask.setCrnNo(2);
- locMoveTask.setIoType(WrkIoType.LOC_MOVE.id);
- locMoveTask.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts);
- locMoveTask.setSourceLocNo("4-1-1");
- locMoveTask.setLocNo("5-1-1");
- locMoveTask.setIoPri(1D);
-
- when(wrkMastService.list(anyWrapper()))
- .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
- .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
- .thenReturn(new ArrayList<>(List.of(locMoveTask)));
-
- LocMast sourceLoc = new LocMast();
- sourceLoc.setLocNo("4-1-1");
- sourceLoc.setLocSts("R");
- LocMast targetLoc = new LocMast();
- targetLoc.setLocNo("5-1-1");
- targetLoc.setLocSts("S");
- when(locMastService.getById("4-1-1")).thenReturn(sourceLoc);
- when(locMastService.getById("5-1-1")).thenReturn(targetLoc);
-
- CrnProtocol protocol1 = buildProtocol(1, CrnStatusType.IDLE.id, 0);
- when(crnThread1.getStatus()).thenReturn(protocol1);
- CrnProtocol protocol2 = buildProtocol(2, CrnStatusType.IDLE.id, 0);
- when(crnThread2.getStatus()).thenReturn(protocol2);
-
- CrnCommand moveCommand = new CrnCommand();
- moveCommand.setCrnNo(1);
- moveCommand.setTaskNo(30001);
- when(crnThread1.getMoveCommand("2-1-1", 30001, 1)).thenReturn(moveCommand);
-
- CrnCommand locMoveCommand = new CrnCommand();
- locMoveCommand.setCrnNo(2);
- locMoveCommand.setTaskNo(20002);
- when(crnThread2.getPickAndPutCommand("4-1-1", "5-1-1", 20002, 2)).thenReturn(locMoveCommand);
-
- MessageQueue.init(SlaveType.Crn, 1);
- MessageQueue.init(SlaveType.Crn, 2);
- SlaveConnection.put(SlaveType.Crn, 1, crnThread1);
- SlaveConnection.put(SlaveType.Crn, 2, crnThread2);
-
- utils.crnIoExecuteNormal();
-
- ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
- verify(wrkMastService, times(2)).updateById(updateCaptor.capture());
- List<WrkMast> updatedList = updateCaptor.getAllValues();
- assertEquals(30001, updatedList.get(0).getWrkNo());
- assertEquals(WrkStsType.CRN_MOVE_RUN.sts, updatedList.get(0).getWrkSts());
- assertEquals(20002, updatedList.get(1).getWrkNo());
- assertEquals(WrkStsType.LOC_MOVE_RUN.sts, updatedList.get(1).getWrkSts());
-
- Task task1 = MessageQueue.peek(SlaveType.Crn, 1);
- assertNotNull(task1);
- assertSame(moveCommand, task1.getData());
-
- Task task2 = MessageQueue.peek(SlaveType.Crn, 2);
- assertNotNull(task2);
- assertSame(locMoveCommand, task2.getData());
- }
-
- @Test
- void crnIoExecuteFinish_marksCrnMoveTaskComplete() {
- CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
- BasCrnpService basCrnpService = mock(BasCrnpService.class);
- WrkMastService wrkMastService = mock(WrkMastService.class);
- RedisUtil redisUtil = mock(RedisUtil.class);
- WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
- CrnThread crnThread = mock(CrnThread.class);
-
- ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
- ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
- ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
- ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
- when(basCrnpService.list(anyWrapper())).thenReturn(List.of(buildBasCrnp(1, "[[2,3]]", "[2]")));
- when(redisUtil.get(anyString())).thenReturn(null);
- when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
- CrnProtocol protocol = buildProtocol(1, CrnStatusType.WAITING.id, 30001);
- when(crnThread.getStatus()).thenReturn(protocol);
-
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(30001);
- wrkMast.setIoType(WrkIoType.CRN_MOVE.id);
- wrkMast.setWrkSts(WrkStsType.CRN_MOVE_RUN.sts);
- wrkMast.setCrnNo(1);
- when(wrkMastService.selectByWorkNo(30001)).thenReturn(wrkMast);
-
- CrnCommand resetCommand = new CrnCommand();
- resetCommand.setCrnNo(1);
- resetCommand.setTaskNo(30001);
- when(crnThread.getResetCommand(30001, 1)).thenReturn(resetCommand);
-
- MessageQueue.init(SlaveType.Crn, 1);
- SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
- utils.crnIoExecuteFinish();
-
- ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
- verify(wrkMastService, times(1)).updateById(updateCaptor.capture());
- assertEquals(WrkStsType.COMPLETE_CRN_MOVE.sts, updateCaptor.getValue().getWrkSts());
- verify(wrkAnalysisService).markCraneComplete(any(WrkMast.class), any(), eq(WrkStsType.COMPLETE_CRN_MOVE.sts));
-
- Task task = MessageQueue.peek(SlaveType.Crn, 1);
- assertNotNull(task);
- assertSame(resetCommand, task.getData());
- }
-
- private BasCrnp buildBasCrnp(int crnNo, String controlRows, String deepRows) {
- BasCrnp basCrnp = new BasCrnp();
- basCrnp.setCrnNo(crnNo);
- basCrnp.setControlRows(controlRows);
- basCrnp.setDeepRows(deepRows);
- return basCrnp;
- }
-
- private CrnProtocol buildProtocol(int crnNo, int status, int taskNo) {
- CrnProtocol protocol = new CrnProtocol();
- protocol.setCrnNo(crnNo);
- protocol.setMode(CrnModeType.AUTO.id);
- protocol.setTaskNo(taskNo);
- protocol.setStatus(status);
- protocol.setLoaded(0);
- protocol.setForkPos(0);
- protocol.setAlarm(0);
- return protocol;
- }
-
- private void safeClearQueue(int crnNo) {
- try {
- MessageQueue.clear(SlaveType.Crn, crnNo);
- } catch (Exception ignore) {
- }
- }
-
- @SuppressWarnings("unchecked")
- private <T> Wrapper<T> anyWrapper() {
- return any(Wrapper.class);
- }
-}
--
Gitblit v1.9.1