| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.genersoft.iot.vmp.web.gb28181;
- 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.*;
- /**
- * 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("模拟接口> 设备云台控制 API调用,deviceId:{} ,channelId:{} ,command:{} ,speed:{} ",
- serial, code, command, speed);
- }
- if (channel == null) {channel = 0;}
- if (speed == null) {speed = 0;}
- Device device = storager.queryVideoDevice(serial);
- if (device == null) {
- JSONObject result = new JSONObject();
- result.put("error","device[ " + serial + " ]未找到");
- return result;
- }
- int cmdCode = 0;
- switch (command){
- case "left":
- cmdCode = 2;
- break;
- case "right":
- cmdCode = 1;
- break;
- case "up":
- cmdCode = 8;
- break;
- case "down":
- cmdCode = 4;
- break;
- case "upleft":
- cmdCode = 10;
- break;
- case "upright":
- cmdCode = 9;
- break;
- case "downleft":
- cmdCode = 6;
- break;
- case "downright":
- cmdCode = 5;
- break;
- case "zoomin":
- cmdCode = 16;
- break;
- case "zoomout":
- cmdCode = 32;
- break;
- case "stop":
- cmdCode = 0;
- break;
- default:
- break;
- }
- // 默认值 50
- cmder.frontEndCmd(device, code, cmdCode, speed, speed, speed);
- return null;
- }
- }
|