camera_merge
王一鸣 5 years ago
parent 4e0ef0482a
commit 3a459cfb72

@ -5,6 +5,8 @@ import com.zhehekeji.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.lib.PtzControlModule;
import com.zhehekeji.web.pojo.camera.CameraIOPtz;
import com.zhehekeji.web.pojo.camera.CameraSearchReq;
import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.service.CameraService;
@ -85,4 +87,20 @@ public class CameraController {
cameraService.delIO(id);
return Result.success();
}
@PostMapping("/io/ptz")
@ApiOperation(value = "球机IO配置")
public Result ptz(@RequestBody CameraIOPtz req) {
validatorUtil.validate(req);
cameraService.ptz(req.getCameraIOId(),req.getCameraId());
return Result.success();
}
@PostMapping("/io/toPtz")
@ApiOperation(value = "转至球机IO配置点")
public Result toPtz(@RequestBody CameraIOPtz req) {
validatorUtil.validate(req);
PtzControlModule.toPtz(req.getCameraIOId(),req.getCameraId());
return Result.success();
}
}

@ -3,6 +3,7 @@ package com.zhehekeji.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ -27,13 +28,16 @@ public class Camera {
private String rtsp;
private String position;
// private String position;
//
// private String focusing;
//
// private String aperture;
//
// private BigDecimal multiple;
private String focusing;
private String aperture;
private BigDecimal multiple;
@ApiModelProperty(value = "预置点 增长值",hidden = true)
private Integer ptzId;
private LocalDateTime updateTime;
}

@ -20,5 +20,13 @@ public class CameraIO {
private Integer ptzId;
private String position;
private String focusing;
private String aperture;
private String multiple;
private LocalDateTime updateTime;
}

@ -2,7 +2,9 @@ package com.zhehekeji.web.lib;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.common.ErrorCode;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime;
import java.util.UUID;
@ -11,6 +13,7 @@ import java.util.UUID;
*
*
*/
@Slf4j
public class PtzControlModule {
private static CallBack.Mp4ReceiveCB mp4ReceiveCB = new CallBack.Mp4ReceiveCB();
@ -256,6 +259,39 @@ public class PtzControlModule {
}
}
/**
*
* @param ioId ID,ID,
* @param name
* @param cameraId ID,
*/
public static void ptz(Integer ioId,String name,Integer cameraId){
int dwzCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
int nPressetIndex = ioId;
Boolean ok = ptzControler(dwzCommand,0,nPressetIndex,0,0,ToolKits.GetGBKStringToPointer(name),CameraConnMap.getConnId(cameraId));
Assert.isTrue(ok,"设置失败");
}
public static Boolean ptzControler(int dwPTZCOmmand, int lParam1, int lParam2, int lParam3, int dwStop, Pointer pointer, NetSDKLib.LLong loginId){
return LoginModule.netsdk.CLIENT_DHPTZControlEx2(loginId,0,dwPTZCOmmand,lParam1,lParam2,lParam3,dwStop,pointer);
}
/**
*
* @param ioId
* @param cameraId
*/
public static void toPtz(Integer ioId,Integer cameraId){
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
int nPresetIndex = ioId;
Boolean ok = ptzControler(dwPTZCommand, 0, nPresetIndex, 0, 0, null,CameraConnMap.getConnId(cameraId));
if(!ok ){
log.error("转至预置点 失败 cameraId:{},ioId:{}",cameraId,ioId);
}
}

@ -0,0 +1,15 @@
package com.zhehekeji.web.pojo.camera;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class CameraIOPtz {
@NotNull(message = "cameraId不能为空")
private Integer cameraId;
@NotNull(message = "球机IO id不能为空")
private Integer cameraIOId;
}

@ -4,9 +4,11 @@ import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.lib.PtzControlModule;
import com.zhehekeji.web.mapper.CameraIOMapper;
import com.zhehekeji.web.mapper.CameraMapper;
import com.zhehekeji.web.mapper.StreetMapper;
@ -60,6 +62,7 @@ public class CameraService {
public void edit(Camera camera){
camera.setUpdateTime(LocalDateTime.now());
camera.setPtzId(null);
try {
cameraMapper.updateById(camera);
}catch (DuplicateKeyException e){
@ -85,6 +88,7 @@ public class CameraService {
public Integer addIO(CameraIO cameraIO){
cameraIO.setUpdateTime(LocalDateTime.now());
cameraIO.setPtzId(0);
ioMapper.insert(cameraIO);
return cameraIO.getId();
}
@ -104,5 +108,13 @@ public class CameraService {
ioMapper.deleteById(id);
}
public void ptz(Integer IOId,Integer cameraId){
CameraIO cameraIO = ioMapper.selectById(IOId);
Assert.notNull(cameraIO,"IO不存在");
PtzControlModule.ptz(IOId,cameraIO.getName(),cameraId);
log.info("设置 预置点 球机ID:{},预置点ID:{}",cameraId, IOId);
}
}

Loading…
Cancel
Save