package cn.gistack.sm.hk.controller;
|
|
import cn.gistack.sm.hk.constant.HkConstant;
|
import cn.gistack.sm.hk.constant.ProtocolConstant;
|
import cn.gistack.sm.hk.vo.HkVO;
|
import com.alibaba.fastjson.JSONObject;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import static cn.gistack.sm.hk.util.GetCameraPreviewURL.*;
|
|
/**
|
* @author zhongrj
|
* @Description: 海康设备控制层
|
* @date 2023-03-30
|
*/
|
@Slf4j
|
@Api(tags = "海康设备")
|
@RestController
|
@RequestMapping("/hk/hk")
|
@AllArgsConstructor
|
public class HkController {
|
|
/**
|
* 分页列表查询
|
* @param query 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "海康设备-分页列表查询", notes = "海康设备-分页列表查询")
|
@GetMapping(value = "/queryHkList")
|
public R queryHkList(Query query) {
|
String result = GetCameraResourcePage(query.getCurrent(), query.getSize(), HkConstant.cameras);
|
JSONObject jsonObject1 = JSONObject.parseObject(result);
|
// 查询海康设备列表并返回
|
return R.data(jsonObject1);
|
}
|
|
/**
|
* 海康播放url查询(ws)
|
* @param hk 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "海康设备-海康播放url查询(ws)", notes = "海康设备-海康播放url查询(ws)")
|
@GetMapping(value = "/queryHkPreviewUrl")
|
public R queryHkPreviewUrl(HkVO hk) {
|
String url = "";
|
// 获取海康播放url
|
String result = GetCameraPreviewURL(HkConstant.previewURLs, hk.getCameraIndexCode(), ProtocolConstant.HLS);
|
if (null!=result) {
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
Map map = (Map) jsonObject.get("data");
|
url = map.get("url").toString();
|
}
|
// 查询海康设备列表并返回
|
return R.data(url);
|
}
|
|
/**
|
* 海康摄像头云台的控制(摄像头左右旋转画面)
|
* @param hk 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "海康设备-海康摄像头云台的控制", notes = "海康设备-海康摄像头云台的控制")
|
@GetMapping(value = "/handleCameraPosition")
|
public R handleCameraPosition(HkVO hk) {
|
// 获取海康播放url
|
String result = controlling(HkConstant.controllingURLs,
|
hk.getCameraIndexCode(),hk.getAction(),hk.getCommand(),hk.getSpeed(),null);
|
// 返回
|
return R.data(result);
|
}
|
|
/**
|
* 海康摄像头电子放大
|
* @param hk 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "海康设备-海康摄像头电子放大", notes = "海康设备-海康摄像头电子放大")
|
@GetMapping(value = "/selZoom")
|
public R selZoom(HkVO hk) {
|
// 获取海康播放url
|
String result = selZoomURLs(HkConstant.selZoomURLs,
|
hk.getCameraIndexCode(),hk.getStartX(),hk.getStartY(),hk.getEndX(),hk.getEndY());
|
// 返回
|
return R.data(result);
|
}
|
|
/**
|
* 抓图
|
* @param hk 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "海康设备-抓图", notes = "海康设备-抓图")
|
@GetMapping(value = "/manualCapture")
|
public R manualCapture(HkVO hk) {
|
// 获取海康播放url
|
String result = manualCaptureUrls(HkConstant.manualCaptureUrls,
|
hk.getCameraIndexCode());
|
// 返回
|
return R.data(result);
|
}
|
|
}
|