wvp-gb28181-project/src/main/java/com/genersoft/iot/vmp/web/ApiControlController.java
2021-02-05 15:15:39 +08:00

94 lines
2.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.genersoft.iot.vmp.web;
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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 兼容LiveGBS的API设备控制
*/
@CrossOrigin
@RestController
@RequestMapping(value = "/api/v1/control")
public class ApiControlController {
private final static Logger logger = LoggerFactory.getLogger(ApiControlController.class);
@Autowired
private SIPCommander cmder;
@Autowired
private IVideoManagerStorager storager;
/**
* 设备控制 - 云台控制
* @param serial 设备编号
* @param command 控制指令 允许值: left, right, up, down, upleft, upright, downleft, downright, zoomin, zoomout, stop
* @param channel 通道序号
* @param code 通道编号
* @param speed 速度(0~255) 默认值: 129
* @return
*/
@RequestMapping(value = "/ptz")
private JSONObject list(String serial,String command,
@RequestParam(required = false)Integer channel,
@RequestParam(required = false)String code,
@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));
}
Device device = storager.queryVideoDevice(serial);
int leftRight = 0;
int upDown = 0;
int inOut = 0;
switch (command) {
case "left":
leftRight = 1;
break;
case "right":
leftRight = 2;
break;
case "up":
upDown = 1;
break;
case "down":
upDown = 2;
break;
case "upleft":
upDown = 1;
leftRight = 1;
case "upright":
upDown = 1;
leftRight = 2;
break;
case "downleft":
upDown = 2;
leftRight = 1;
break;
case "downright":
upDown = 2;
leftRight = 2;
break;
case "zoomin":
inOut = 2;
break;
case "zoomout":
inOut = 1;
break;
case "stop":
break;
}
// 默认值 50
cmder.ptzCmd(device, code, leftRight, upDown, inOut, speed==0 ? 129 : speed, 50);
return null;
}
}