648540858
2022-09-09 221f99c764b51c3cd284c6e5a41492c26c5c7ffc
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiControlController.java
@@ -3,7 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +23,7 @@
    private SIPCommander cmder;
    @Autowired
    private IVideoManagerStorager storager;
    private IVideoManagerStorage storager;
    /**
     * 设备控制 - 云台控制
@@ -41,53 +41,57 @@
                            @RequestParam(required = false)Integer speed){
        if (logger.isDebugEnabled()) {
            logger.debug(String.format("模拟接口> 设备云台控制 API调用,deviceId:%s ,channelId:%s ,command:%d ,speed:%d ",
                    serial, code, command, speed));
            logger.debug("模拟接口> 设备云台控制 API调用,deviceId:{} ,channelId:{} ,command:{} ,speed:{} ",
                    serial, code, command, speed);
        }
        if (channel == null) {channel = 0;}
        if (speed == null) {speed = 0;}
        Device device = storager.queryVideoDevice(serial);
        int leftRight = 0;
        int upDown = 0;
        int inOut = 0;
        switch (command) {
        if (device == null) {
            JSONObject result = new JSONObject();
            result.put("error","device[ " + serial + " ]未找到");
            return result;
        }
        int cmdCode = 0;
        switch (command){
            case "left":
                leftRight = 1;
                cmdCode = 2;
                break;
            case "right":
                leftRight = 2;
                cmdCode = 1;
                break;
            case "up":
                upDown = 1;
                cmdCode = 8;
                break;
            case "down":
                upDown = 2;
                cmdCode = 4;
                break;
            case "upleft":
                upDown = 1;
                leftRight = 1;
                cmdCode = 10;
                break;
            case "upright":
                upDown = 1;
                leftRight = 2;
                cmdCode = 9;
                break;
            case "downleft":
                upDown = 2;
                leftRight = 1;
                cmdCode = 6;
                break;
            case "downright":
                upDown = 2;
                leftRight = 2;
                cmdCode = 5;
                break;
            case "zoomin":
                inOut = 2;
                cmdCode = 16;
                break;
            case "zoomout":
                inOut = 1;
                cmdCode = 32;
                break;
            case "stop":
                cmdCode = 0;
                break;
            default:
                break;
        }
        // 默认值 50
        cmder.ptzCmd(device, code, leftRight, upDown, inOut, speed==0 ? 129 : speed, 50);
        cmder.frontEndCmd(device, code, cmdCode, speed, speed, speed);
        return null;
    }
}