Junjie
2025-11-19 40d95599c1ac6ef89d465e031132d9c627a7f0bc
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -24,15 +24,14 @@
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.Slave;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LedSlave;
import com.zy.core.model.RgvSlave;
import com.zy.core.model.*;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.LiftProtocol;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
@@ -410,4 +409,46 @@
        return R.ok();
    }
    @GetMapping("/getIoMode")
    public R getIoMode() {
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        if (devpThread == null) {
            return R.error("线程不存在");
        }
        LiftProtocol liftProtocol = devpThread.getLiftStatus();
        if (liftProtocol == null) {
            return R.error("线程不存在");
        }
        return R.ok().add(liftProtocol.getIoMode());
    }
    @PostMapping("/switchIoMode")
    public R switchIoMode() {
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        if (devpThread == null) {
            return R.error("线程不存在");
        }
        LiftProtocol liftProtocol = devpThread.getLiftStatus();
        if (liftProtocol == null) {
            return R.error("线程不存在");
        }
        //检测是否还有任务没做完
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>());
        if (!wrkMasts.isEmpty()) {
            return R.error("系统任务未完成,请完成后再切换模式");
        }
        int switchIoMode = 1;
        if (liftProtocol.getIoMode() == 1) {
            switchIoMode = 2;
        }
        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, switchIoMode));
        return R.ok();
    }
}