自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-09-26 64da17c397d02f8b1d19b9c46134eb8469957c46
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
@@ -11,12 +12,15 @@
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.SteTaskModeType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.DevpThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -29,6 +33,7 @@
 * 输送设备接口
 * Created by vincent on 2020-06-01
 */
@Slf4j
@RestController
@RequestMapping("/site")
public class SiteController {
@@ -67,8 +72,20 @@
    @ManagerAuth(memo = "充电控制")
    public R ioModeAction(@RequestParam("floor") Integer floor, @RequestParam("charge") Boolean charge){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 输送线充电命令下发区 --------------------------------------------------------------------------
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            boolean res = devpThread.charge(floor - 1, charge);
            if (!charge && res) {
                // 穿梭车充电命令下发区 --------------------------------------------------------------------------
                int steNo = floor;
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(steNo); // 穿梭车编号
                steCommand.setTaskNo(9999); // 工作号
                steCommand.setTaskMode(SteTaskModeType.CLOSE_CHARGE);
                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                    log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
                }
            }
            return res?R.ok():R.error();
        }
        return R.ok();