基础版 优化

merge-requests/3/head
qiushui 4 years ago
parent 55deeedf78
commit 7ad7f21a26

@ -7,15 +7,27 @@ import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;
import java.util.UUID;
@Slf4j
public class PathUtil {
public static String createFileName(String fileType) {
private static String getRandomString(int length){
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<length;i++){
int number=random.nextInt(10);
sb.append(str.charAt(number));
}
return sb.toString();
}
public static String createFileName(String fileType,Integer cameraId) {
LocalDateTime now = LocalDateTime.now();
String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/HH"));
return time + "/" + now.format(DateTimeFormatter.ofPattern("mmss"))+UUID.randomUUID() + "."+fileType;
String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/HH")) + "/camera"+cameraId;
return time + "/" + now.format(DateTimeFormatter.ofPattern("mmss-"))+getRandomString(10) + "."+fileType;
}
/**

@ -5,7 +5,9 @@ import com.google.common.cache.CacheBuilder;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCache;
import org.springframework.cache.concurrent.ConcurrentMapCache;
import org.springframework.cache.jcache.JCacheCache;
import org.springframework.cache.support.SimpleCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -25,6 +27,8 @@ public class CacheConfig {
List<Cache> caches = new ArrayList<Cache>();
caches.add(new ConcurrentMapCache("street"));
caches.add(new ConcurrentMapCache("ptz"));
caches.add(new ConcurrentMapCache("streetByPlc"));
caches.add(new ConcurrentMapCache("getStreetCount"));
simpleCacheManager.setCaches(caches);
//把各个cache注册到cacheManager中GuavaCache实现了org.springframework.cache.Cache接口
// CacheBuilder cacheBuilder = CacheBuilder.newBuilder();

@ -24,7 +24,10 @@ public class CameraControlController {
@Resource
private CameraMapper cameraMapper;
private Integer cameraType;
@Resource
private CameraControlModule cameraControlModule;
@Resource
private CameraControlLoginModule loginControlModule;
@PostMapping("/{id}")
@ApiOperation(value = "球机登录")
@ -37,16 +40,7 @@ public class CameraControlController {
log.info("相机登录 cameraId:{}",cameraId);
Camera camera = cameraMapper.selectById(cameraId);
Assert.notNull(camera,"球机不存在");
NetSDKLib.LLong lLong = null;
if(cameraType == 0){
lLong = JoywareLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword(),cameraId);
Assert.isTrue(lLong.longValue() > 0,"登陆失败");
}else if(cameraType == 1){
int userId = HikLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword());
Assert.isTrue(userId>=0,"登陆失败");
lLong = new NetSDKLib.LLong(userId);
}
HikLoginModule.CameraConnMap.conn(cameraId,lLong);
NetSDKLib.LLong lLong = loginControlModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword());
return lLong;
}
@ -55,11 +49,7 @@ public class CameraControlController {
public Result up(@PathVariable Integer id) {
log.debug("球机控制向上");
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlUpStart(id,0,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlUpStart(id, 1, HCNetSDK.TILT_UP,0);
}
cameraControlModule.ptzControlUpStart(id,0,0,1);
return Result.success();
}
@ -68,12 +58,7 @@ public class CameraControlController {
public Result upStop(@PathVariable Integer id) {
log.debug("球机控制向上 停止");
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlUpEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlUpEnd(id, 1, HCNetSDK.TILT_UP, 1);
}
cameraControlModule.ptzControlUpEnd(id,0);
return Result.success();
}
@ -81,11 +66,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向下")
public Result down(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlDownStart(id,0,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlDownStart(id , 1,HCNetSDK.TILT_DOWN,0);
}
cameraControlModule.ptzControlDownStart(id,0,0,1);
log.debug("球机控制向下");
return Result.success();
}
@ -94,11 +75,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向下-停止")
public Result downStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlDownEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlDownEnd(id, 1, HCNetSDK.TILT_DOWN, 1);
}
cameraControlModule.ptzControlDownEnd(id,0);
log.debug("球机控制向下 停止");
return Result.success();
}
@ -107,11 +84,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向左")
public Result left(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftStart(id,0,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftStart(id, 1,HCNetSDK.PAN_LEFT,0);
}
cameraControlModule.ptzControlLeftStart(id,0,0,1);
log.debug("球机控制向左");
return Result.success();
}
@ -120,11 +93,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制左-停止")
public Result leftStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftEnd(id, 1, HCNetSDK.PAN_LEFT, 1);
}
cameraControlModule.ptzControlLeftEnd(id,0);
log.debug("球机控制向左 -停止");
return Result.success();
}
@ -134,12 +103,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向左上")
public Result leftUp(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftUpStart(id,0,1,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftUpStart(id, 1,HCNetSDK.UP_LEFT,0);
}
cameraControlModule.ptzControlLeftUpStart(id,0,1,1);
log.debug("球机控制向上");
return Result.success();
}
@ -148,12 +112,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制左上-停止")
public Result leftUpStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftUpEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftUpEnd(id, 1, HCNetSDK.UP_LEFT, 1);
}
cameraControlModule.ptzControlLeftUpEnd(id,0);
log.debug("球机控制向上 停止");
return Result.success();
}
@ -162,11 +121,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向左下")
public Result leftDown(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftDownStart(id,0,1,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftDownStart(id, 1, HCNetSDK.DOWN_LEFT, 0);
}
cameraControlModule.ptzControlLeftDownStart(id,0,1,1);
log.debug("球机控制左下");
return Result.success();
}
@ -175,11 +130,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制左下-停止")
public Result leftDownStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlLeftDownEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlLeftDownEnd(id, 1, HCNetSDK.DOWN_LEFT, 1);
}
cameraControlModule.ptzControlLeftDownEnd(id,0);
log.debug("球机控制左下 停止");
return Result.success();
@ -189,12 +140,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向右")
public Result right(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightStart(id,0,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightStart(id, 1,HCNetSDK.PAN_RIGHT,0);
}
cameraControlModule.ptzControlRightStart(id,0,0,1);
log.debug("球机控制右");
return Result.success();
}
@ -203,12 +149,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制右-停止")
public Result rightStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightEnd(id, 1, HCNetSDK.PAN_RIGHT, 1);
}
cameraControlModule.ptzControlRightEnd(id,0);
log.debug("球机控制右 停止");
return Result.success();
}
@ -218,12 +159,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向右上")
public Result rightUp(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightUpStart(id,0,1,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightUpStart(id, 1,HCNetSDK.UP_RIGHT,0);
}
cameraControlModule.ptzControlRightUpStart(id,0,1,1);
log.debug("球机控制右上");
return Result.success();
}
@ -232,12 +168,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制右上-停止")
public Result rightUpStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightUpEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightUpEnd(id, 1, HCNetSDK.UP_RIGHT, 1);
}
cameraControlModule.ptzControlRightUpEnd(id,0);
log.debug("球机控制右上 -停止");
return Result.success();
}
@ -246,11 +177,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制向右下")
public Result rightDown(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightDownStart(id,0,1,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightDownStart(id, 1,HCNetSDK.DOWN_RIGHT,0);
}
cameraControlModule.ptzControlRightDownStart(id,0,1,1);
log.debug("球机控制右下");
return Result.success();
}
@ -259,12 +186,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制右下-停止")
public Result rightDownStop(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlRightDownEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlRightDownEnd(id, 1, HCNetSDK.DOWN_RIGHT, 1);
}
cameraControlModule.ptzControlRightDownEnd(id,0);
log.debug("球机控制右下 -停止");
return Result.success();
}
@ -273,11 +195,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变倍+")
public Result ZoomAddStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlZoomAddStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlZoomAddStart(id, 1,HCNetSDK.ZOOM_IN, 0);
}
cameraControlModule.ptzControlZoomAddStart(id,0,1);
return Result.success();
}
@ -285,12 +203,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变倍+ 停止")
public Result ZoomAddEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlZoomAddEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlZoomAddEnd(id, 1, HCNetSDK.ZOOM_IN, 1);
}
cameraControlModule.ptzControlZoomAddEnd(id,0);
return Result.success();
}
@ -298,11 +211,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变倍-")
public Result ZoomDecStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlZoomDecStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlZoomDecStart(id, 1,HCNetSDK.ZOOM_OUT, 0);
}
cameraControlModule.ptzControlZoomDecStart(id,0,1);
return Result.success();
}
@ -310,12 +219,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变倍- 停止")
public Result ZoomDecEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlZoomDecEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlZoomDecEnd(id, 1, HCNetSDK.ZOOM_OUT, 0);
}
cameraControlModule.ptzControlZoomDecEnd(id,0);
return Result.success();
}
@ -323,12 +227,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变焦 +")
public Result FocusAddStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlFocusAddStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlFocusAddStart(id, 1,HCNetSDK.FOCUS_NEAR, 0);
}
cameraControlModule.ptzControlFocusAddStart(id,0,1);
return Result.success();
}
@ -336,12 +235,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变焦+ 停止")
public Result focusAddEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlFocusAddEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlFocusAddEnd(id, 1, HCNetSDK.FOCUS_NEAR, 1);
}
cameraControlModule.ptzControlFocusAddEnd(id,0);
return Result.success();
}
@ -349,11 +243,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变焦 -")
public Result FocusDecStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlFocusDecStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlFocusDecStart(id, 1,HCNetSDK.FOCUS_FAR, 0);
}
cameraControlModule.ptzControlFocusDecStart(id,0,1);
return Result.success();
}
@ -361,12 +251,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 变焦- 停止")
public Result focusDecEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlFocusDecEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlFocusDecEnd(id, 1, HCNetSDK.FOCUS_FAR, 1);
}
cameraControlModule.ptzControlFocusDecEnd(id,0);
return Result.success();
}
@ -374,11 +259,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 光圈 +")
public Result irisAddStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlIrisAddStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlIrisAddStart(id, 1,HCNetSDK.IRIS_OPEN, 0);
}
cameraControlModule.ptzControlIrisAddStart(id,0,1);
return Result.success();
}
@ -386,11 +267,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 光圈+ 停止")
public Result irisAddEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlIrisAddEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlIrisAddEnd(id, 1, HCNetSDK.IRIS_OPEN, 1);
}
cameraControlModule.ptzControlIrisAddEnd(id,0);
return Result.success();
}
@ -398,12 +275,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 光圈 -")
public Result irisDecStart(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlIrisDecStart(id,0,1);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlIrisDecStart(id, 1,HCNetSDK.IRIS_CLOSE, 0);
}
cameraControlModule.ptzControlIrisDecStart(id,0,1);
return Result.success();
}
@ -411,12 +283,7 @@ public class CameraControlController {
@ApiOperation(value = "球机控制 光圈- 停止")
public Result irisDecEnd(@PathVariable Integer id) {
checkLogin(id);
if(cameraType == 0){
JoywarePtzControlModule.ptzControlIrisDecEnd(id,0);
}else if(cameraType == 1){
HikPtzControlModule.ptzControlIrisDecEnd(id, 1, HCNetSDK.IRIS_CLOSE, 1);
}
cameraControlModule.ptzControlIrisDecEnd(id,0);
return Result.success();
}
@ -426,12 +293,7 @@ public class CameraControlController {
checkLogin(id);
String path = "D:\\work\\qqq.jpeg";
OrderInfo orderInfo = new OrderInfo(0L,"SRM123","AAA",1,1,"C5",true,1);
if(cameraType == 0){
System.out.println(JoywarePtzControlModule.pic(id,0,path));
}else if(cameraType == 1){
System.out.println(HikPtzControlModule.pic(id,1,path));
}
cameraControlModule.pic(id,0,path);
return Result.success();
}
@ -439,12 +301,12 @@ public class CameraControlController {
@ApiOperation(value = "录像")
public Result MP4(@PathVariable Integer id) {
checkLogin(id);
HikPtzControlModule.downloadMp4(id,"D:\\work\\qqq_1.mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(5));
cameraControlModule.downloadMp4(id,"D:\\work\\qqq_1.mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(5));
return Result.success();
}
private void checkLogin(Integer cameraId){
if(HikLoginModule.CameraConnMap.getConnId(cameraId) == null){
if(CameraConnMap.getConnId(cameraId) == null){
cameraLogin(cameraId);
}
}

@ -6,7 +6,7 @@ import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.entity.CameraIOConfig;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.pojo.camera.CameraConfigSearchReq;
import com.zhehekeji.web.pojo.camera.CameraIOPtz;
import com.zhehekeji.web.pojo.street.StreetSearch;
@ -109,13 +109,16 @@ public class CameraController {
return Result.success(cameraService.getPtzIdByCodeAndCameraId(code,cameraId));
}
@Resource
private CameraControlModule cameraControlModule;
@PostMapping("/io/toPtz")
@ApiOperation(value = "转至球机IO配置点")
public Result toPtz(@RequestBody CameraIOPtz req) {
//todo
//validatorUtil.validate(req);
Integer ptzId = cameraService.getPtzId(req.getCameraIOId());
JoywarePtzControlModule.toPtz(ptzId,req.getCameraId());
cameraControlModule.toPtz(ptzId,req.getCameraId());
return Result.success();
}
}

@ -5,7 +5,6 @@ import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.pojo.stock.CheckByMan;
import com.zhehekeji.web.pojo.stock.StockCheck;
@ -111,12 +110,12 @@ public class StockController {
return Result.success(stockService.checkByMan(checkByMan));
}
@ApiOperation(value = "slow")
@RequestMapping(value = "/slow", method = RequestMethod.GET)
public Result slow(Integer cameraId,Integer x) {
JoywarePtzControlModule.toPtzSlow(cameraId,x);
return Result.success();
}
// @ApiOperation(value = "slow")
// @RequestMapping(value = "/slow", method = RequestMethod.GET)
// public Result slow(Integer cameraId,Integer x) {
// JoywarePtzControlModule.toPtzSlow(cameraId,x);
// return Result.success();
//
// }
}

@ -0,0 +1,49 @@
package com.zhehekeji.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import java.util.HashMap;
import java.util.Map;
/**
* camera login handler
*/
public class CameraConnMap {
/**
* key :cameraId
* value: loginId
*/
public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>();
/**
* key:loginId
* value: cameraId
*/
public static Map<NetSDKLib.LLong,Integer> loginMap = new HashMap<>();
public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){
synchronized (cameraId.toString().intern()){
cameraMap.put(cameraId,handlerId);
loginMap.put(handlerId,cameraId);
}
}
public static void disConn(Integer cameraId){
synchronized (cameraId.toString().intern()){
NetSDKLib.LLong lLong = cameraMap.get(cameraId);
cameraMap.remove(cameraId);
loginMap.remove(lLong);
}
}
public static NetSDKLib.LLong getConnId(Integer cameraId){
return cameraMap.get(cameraId);
}
public static Integer getCameraIdByLoginId(NetSDKLib.LLong lLong){
return loginMap.get(lLong);
}
}

@ -0,0 +1,9 @@
package com.zhehekeji.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
public interface CameraControlLoginModule {
NetSDKLib.LLong login(String ip, int port, String user, String password);
}

@ -0,0 +1,134 @@
package com.zhehekeji.web.lib;
import java.time.LocalDateTime;
public interface CameraControlModule {
/**
*
*/
boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlUpEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlDownEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlLeftEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlRightEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID);
/**
*
*/
boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2);
boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID);
/**
* +
*/
boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID);
/**
* -
*/
boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID);
/**
* +
*/
boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID);
/**
* -
*/
boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID);
/**
* +
*/
boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID);
/**
* -
*/
boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2);
boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID);
boolean pic(Integer cameraId, int channel, String realPath);
void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end);
/**
*
*
* @param ptzId ID
* @param name
* @param cameraId ID,
*/
void ptz(Integer ptzId, String name, Integer cameraId);
/**
*
*
* @param ptzId
* @param cameraId
*/
void toPtz(Integer ptzId, Integer cameraId);
/**
*
*
* @param cameraId
*/
void toPtzSlow(Integer cameraId, Integer x);
}

@ -1,386 +0,0 @@
package com.zhehekeji.web.lib;
import com.sun.jna.ptr.IntByReference;
import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.hik.HCNetSDK;
import com.zhehekeji.web.lib.joyware.NET_IN_PTZ_STATUS_PROC;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime;
/**
*
*
*/
@Slf4j
public class HikPtzControlModule {
/**
*
*/
public static boolean ptzControlUpStart(Integer cameraId, int nChannelID, int dwPTZCommand,int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlUpEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
*
*/
public static boolean ptzControlDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlDownEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
*
*/
public static boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlLeftEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
*
*/
public static boolean ptzControlRightStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlRightEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.PAN_RIGHT, 1);
}
/**
*
*/
public static boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
*
*/
public static boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_RIGHT, 0);
}
public static boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_RIGHT, 1);
}
/**
*
*/
public static boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
*
*/
public static boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* +
*/
public static boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* -
*/
public static boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* +
*/
public static boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* -
*/
public static boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* +
*/
public static boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
/**
* -
*/
public static boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 0);
}
public static boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModule.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, dwPTZCommand, 1);
}
public static boolean pic(Integer cameraId, int nChannelID, String path)
{
PathUtil.checkDirc(path);
int lUserId = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
short wPicSize = 3;
short wPicQuality = 0;
HCNetSDK.NET_DVR_JPEGPARA jpegpara = new HCNetSDK.NET_DVR_JPEGPARA(wPicSize, wPicQuality);
boolean picResult = HikLoginModule.hcNetsdk.NET_DVR_CaptureJPEGPicture(lUserId, nChannelID, jpegpara, path);
if(picResult == false){
int error = HikLoginModule.hcNetsdk.NET_DVR_GetLastError();
log.error("pic error:{}",error);
}
return picResult;
}
/*public static boolean pic(Integer cameraId, int nChannelID, OrderInfo orderInfo) {
Integer cmdSerial = OrderCmdSerial.nextSerial();
OrderCmdSerial.put(cmdSerial, orderInfo);
IntByReference reserved = new IntByReference(0);
HCNetSDK.NET_DVR_JPEGPARA jpegpara = new HCNetSDK.NET_DVR_JPEGPARA();
return true;
// return LoginModule.hcNetsdk.NET_DVR_CaptureJPEGPicture(CameraConnMap.getConnId(cameraId), nChannelID, jpegpara, );
}*/
public static void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
//视频结束时间加上5s
end = end.minusMinutes(1);
//start = end.minusSeconds(60);
PathUtil.checkDirc(path);
//NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME();
//startTime.setTime(start.getYear(), start.getMonthValue(), start.getDayOfMonth(), start.getHour(), start.getMinute(), start.getSecond());
//NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME();
//endTime.setTime(end.getYear(), end.getMonthValue(), end.getDayOfMonth(), end.getHour(), end.getMinute(), end.getSecond());
HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME();
startTime.setTime(start.getYear(), start.getMonthValue(), start.getDayOfMonth(), start.getHour(), start.getMinute(), start.getSecond());
HCNetSDK.NET_DVR_TIME endTime = new HCNetSDK.NET_DVR_TIME();
endTime.setTime(end.getYear(), end.getMonthValue(), end.getDayOfMonth(), end.getHour(), end.getMinute(), end.getSecond());
HCNetSDK.NET_DVR_PLAYCOND struDownloadCond = new HCNetSDK.NET_DVR_PLAYCOND();
struDownloadCond.dwChannel = 1;
struDownloadCond.struStartTime = startTime;
struDownloadCond.struStopTime = endTime;
struDownloadCond.write();
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{}", path, startTime.toString(), endTime.toString(), LocalDateTime.now());
int lUserID = HikLoginModule.CameraConnMap.getConnId(cameraId).intValue();
int result = HikLoginModule.hcNetsdk.NET_DVR_GetFileByTime(lUserID,1,startTime,endTime,path);
//int result = HikLoginModule.hcNetsdk.NET_DVR_GetFileByTime_V40(lUserID, path.getBytes(), struDownloadCond);
if (result < 0) {
//log.error("download error :{}", ToolKits.getErrorCodePrint());
log.error("download error:{}",HikLoginModule.hcNetsdk.NET_DVR_GetLastError());
} else {
Integer process = 0;
IntByReference intByReference = new IntByReference(0);
Boolean ok = HikLoginModule.hcNetsdk.NET_DVR_PlayBackControl(result,HikLoginModule.hcNetsdk.NET_DVR_PLAYSTART,process,null);
if(!ok){
log.error("download error:{}",HikLoginModule.hcNetsdk.NET_DVR_GetLastError());
}
}
}
/**
*
*
* @param ptzId ID
* @param name
* @param cameraId ID,
*/
public static void ptz(Integer ptzId, String name, Integer cameraId)
{
int dwzCommand = HCNetSDK.SET_PRESET;
Boolean ok = HikLoginModule.hcNetsdk.NET_DVR_PTZPreset_Other(HikLoginModule.CameraConnMap.getConnId(cameraId).intValue(), 1, dwzCommand, ptzId.intValue());
Assert.isTrue(ok, "设置失败");
}
/**
*
*
* @param ptzId
* @param cameraId
*/
public static void toPtz(Integer ptzId, Integer cameraId)
{
int dwPTZCommand = HCNetSDK.GOTO_PRESET;
Boolean ok = HikLoginModule.hcNetsdk.NET_DVR_PTZPreset_Other(HikLoginModule.CameraConnMap.getConnId(cameraId).intValue(), 1, dwPTZCommand, ptzId.intValue());
if (!ok) {
log.error("转至预置点 失败 cameraId:{},ptzId:{}", cameraId, ptzId);
}
}
/**
*
*
* @param cameraId
*/
public static void toPtzSlow(Integer cameraId,Integer x) {
int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
absolutely.stuPosition.nPositionX = x;
absolutely.stuPosition.nPositionY = 0;
absolutely.stuSpeed.fPositionX = 0.2f;
absolutely.stuSpeed.fPositionY = 0.2f;
absolutely.write();
//absolutely.stuSpeed.fZoom = 0.5f;
/*Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
0, 0, 0, 0, absolutely.getPointer());*/
Boolean ok = true;
if (!ok) {
log.error("失败 cameraId:{}", cameraId);
}
}
/**
* 360
* @param cameraId
*/
public static void turn360C8(Integer cameraId,Integer ptzId){
/* Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int nType = NetSDKLib.NET_DEVSTATE_PTZ_LOCATION;
NetSDKLib.NET_PTZ_LOCATION_INFO ptzLocationInfo = new NetSDKLib.NET_PTZ_LOCATION_INFO();
IntByReference intRetLen = new IntByReference();
ptzLocationInfo.write();
System.out.println("size:"+ptzLocationInfo.size());
boolean bRet = LoginModule.netsdk.CLIENT_QueryDevState(CameraConnMap.getConnId(cameraId), nType, ptzLocationInfo.getPointer(), ptzLocationInfo.size(), intRetLen, 3000);
ptzLocationInfo.read();
if (bRet) {
log.debug("xParam:{}",ptzLocationInfo.nPTZPan);
int qq = (ptzLocationInfo.nPTZPan + 1799) % 3600;
log.debug("xParam turn to:{}",qq);
toPtzSlow(cameraId,qq);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
qq = (qq + 1799) % 3600;
log.debug("xParam turn to:{}",qq);
toPtzSlow(cameraId,qq);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(ptzId != null){
log.info(" turn C8");
toPtz(ptzId,cameraId);
}
} else {
log.error( " { error code: ( 0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +" ). 参考 LastError.java }");
}
}
});
thread.start();*/
}
}

@ -1,7 +1,5 @@
package com.zhehekeji.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -23,13 +21,6 @@ public class OrderRealtime {
*/
private static Map<Integer, Long> warnIdMap = new ConcurrentHashMap<>();
/**
*
* key:
* value:
*/
private static Map<NetSDKLib.LLong, String> playOrderMap = new ConcurrentHashMap<>();
public static void startOrder(Integer streetId, String orderNum) {
orderMap.put(streetId, orderNum);
}

@ -0,0 +1,321 @@
package com.zhehekeji.web.lib.hik;
import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime;
/**
*
*
*/
@Slf4j
public class HikCameraControlModuleImpl implements CameraControlModule {
/**
*
*/
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int dwPTZCommand,int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.TILT_UP, 0);
}
public boolean ptzControlUpEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.TILT_UP, 1);
}
/**
*
*/
public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.TILT_DOWN, 0);
}
public boolean ptzControlDownEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.TILT_DOWN, 1);
}
/**
*
*/
public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.PAN_LEFT, 0);
}
public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.PAN_LEFT, 1);
}
/**
*
*/
public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.PAN_RIGHT, 0);
}
public boolean ptzControlRightEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.PAN_RIGHT, 1);
}
/**
*
*/
public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_LEFT, 0);
}
public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_LEFT, 1);
}
/**
*
*/
public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_RIGHT, 0);
}
public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.UP_RIGHT, 1);
}
/**
*
*/
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.DOWN_LEFT, 0);
}
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.DOWN_LEFT, 1);
}
/**
*
*/
public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.DOWN_RIGHT, 0);
}
public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.DOWN_RIGHT, 1);
}
/**
* +
*/
public boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.ZOOM_IN, 0);
}
public boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.ZOOM_IN, 1);
}
/**
* -
*/
public boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.ZOOM_OUT, 0);
}
public boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.ZOOM_OUT, 1);
}
/**
* +
*/
public boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.FOCUS_NEAR, 0);
}
public boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.FOCUS_NEAR, 1);
}
/**
* -
*/
public boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.FOCUS_FAR, 0);
}
public boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.FOCUS_FAR, 1);
}
/**
* +
*/
public boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.IRIS_OPEN, 0);
}
public boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.IRIS_OPEN, 1);
}
/**
* -
*/
public boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int dwPTZCommand)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.IRIS_CLOSE, 0);
}
public boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID)
{
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, nChannelID, HCNetSDK.IRIS_CLOSE, 1);
return ok;
}
public boolean pic(Integer cameraId, int nChannelID, String path)
{
PathUtil.checkDirc(path);
int lUserId = CameraConnMap.getConnId(cameraId).intValue();
short wPicSize = 3;
short wPicQuality = 0;
HCNetSDK.NET_DVR_JPEGPARA jpegpara = new HCNetSDK.NET_DVR_JPEGPARA(wPicSize, wPicQuality);
boolean picResult = HikLoginModuleImpl.hcNetsdk.NET_DVR_CaptureJPEGPicture(lUserId, nChannelID, jpegpara, path);
if (!picResult) {
log.error("pic error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
return picResult;
}
public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
PathUtil.checkDirc(path);
HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME();
startTime.setTime(start.getYear(), start.getMonthValue(), start.getDayOfMonth(), start.getHour(), start.getMinute(), start.getSecond());
HCNetSDK.NET_DVR_TIME endTime = new HCNetSDK.NET_DVR_TIME();
endTime.setTime(end.getYear(), end.getMonthValue(), end.getDayOfMonth(), end.getHour(), end.getMinute(), end.getSecond());
HCNetSDK.NET_DVR_PLAYCOND struDownloadCond = new HCNetSDK.NET_DVR_PLAYCOND();
struDownloadCond.dwChannel = 1;
struDownloadCond.struStartTime = startTime;
struDownloadCond.struStopTime = endTime;
struDownloadCond.write();
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{}", path, startTime.toString(), endTime.toString(), LocalDateTime.now());
int lUserID = CameraConnMap.getConnId(cameraId).intValue();
int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime(lUserID,1,startTime,endTime,path);
if (result < 0) {
log.error("downloadMp4 error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
} else {
Integer process = 0;
Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PlayBackControl(result, HikLoginModuleImpl.hcNetsdk.NET_DVR_PLAYSTART,process,null);
if(!ok){
log.error("downloadMp4 error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
}
}
/**
*
*
* @param ptzId ID
* @param name
* @param cameraId ID,
*/
public void ptz(Integer ptzId, String name, Integer cameraId)
{
int dwzCommand = HCNetSDK.SET_PRESET;
Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwzCommand, ptzId.intValue());
if(!ok){
log.error("ptz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
Assert.isTrue(ok, "设置失败");
}
/**
*
*
* @param ptzId
* @param cameraId
*/
public void toPtz(Integer ptzId, Integer cameraId)
{
int dwPTZCommand = HCNetSDK.GOTO_PRESET;
Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwPTZCommand, ptzId.intValue());
if(!ok){
log.error("toPtz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
}
/**
*
*
* @param cameraId
*/
public void toPtzSlow(Integer cameraId,Integer x) {
int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
absolutely.stuPosition.nPositionX = x;
absolutely.stuPosition.nPositionY = 0;
absolutely.stuSpeed.fPositionX = 0.2f;
absolutely.stuSpeed.fPositionY = 0.2f;
absolutely.write();
//absolutely.stuSpeed.fZoom = 0.5f;
Boolean ok = HikLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
0, 0, 0, 0, absolutely.getPointer());
if(!ok){
log.error("toPtzSlow error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
}
}

@ -1,6 +1,7 @@
package com.zhehekeji.web.lib;
package com.zhehekeji.web.lib.hik;
import com.zhehekeji.web.lib.hik.HCNetSDK;
import com.zhehekeji.web.lib.CameraControlLoginModule;
import com.zhehekeji.web.lib.OrderInfo;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import lombok.Data;
@ -11,7 +12,7 @@ import java.util.Map;
*
*
*/
public class HikLoginModule {
public class HikLoginModuleImpl implements CameraControlLoginModule {
public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
@ -30,7 +31,7 @@ public class HikLoginModule {
*
* \endif
*/
public static boolean init() {
public boolean init() {
//public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
bInit = hcNetsdk.NET_DVR_Init();
@ -66,7 +67,7 @@ public class HikLoginModule {
*
* \endif
*/
public static int login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
public NetSDKLib.LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
init();
HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息
HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();//设备信息
@ -85,7 +86,8 @@ public class HikLoginModule {
m_strLoginInfo.bUseAsynLogin = false; //是否异步登录0- 否1- 是
m_strLoginInfo.write();
int m_lUserID = hcNetsdk.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
return m_lUserID;
System.out.println(hcNetsdk.NET_DVR_GetLastError());
return new NetSDKLib.LLong(m_lUserID);
}
/**

@ -1,9 +1,7 @@
package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.HikLoginModule;
import com.zhehekeji.web.lib.JoywareLoginModule;
import com.zhehekeji.web.lib.OrderRealtime;
import com.zhehekeji.web.lib.CameraConnMap;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@ -16,7 +14,7 @@ public class CallBack {
@Override
public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
Integer cameraId = HikLoginModule.CameraConnMap.getCameraIdByLoginId(lLoginID);
Integer cameraId = CameraConnMap.getCameraIdByLoginId(lLoginID);
log.error("球机:{}掉线",cameraId);
//CameraConnMap.disConn(cameraId);
}
@ -30,7 +28,7 @@ public class CallBack {
// @Override
// public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) {
// if(dwDownLoadSize == -1) {
// JoywareLoginModule.netsdk.CLIENT_StopDownload(lPlayHandle);
// JoywareLoginModuleImpl.netsdk.CLIENT_StopDownload(lPlayHandle);
// }
// }
// }

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib;
package com.zhehekeji.web.lib.joyware;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
@ -33,7 +33,7 @@ public class CaptureCmdSerial {
* @param serialId
* @return
*/
public static String getOrderInfo(Integer serialId) {
public static String getPath(Integer serialId) {
String path = captureMap.get(serialId);
captureMap.remove(serialId);
return path;

@ -1,15 +1,10 @@
package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.mapper.OrderMapper;
import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.service.PlcService;
import com.zhehekeji.common.util.PathUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.*;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@ -19,26 +14,61 @@ import java.util.concurrent.TimeUnit;
* @Author wangyiming1031@aliyun.com
* @Date 2020/12/14 16:11
**/
@Component
@Slf4j
public class CaptureReceiveCB implements NetSDKLib.fSnapRev {
@Resource
private ConfigProperties configProperties;
private static String fileType = "jpg";
/**
* 线
*/
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 3, 200,
TimeUnit.MINUTES, new ArrayBlockingQueue<>(10000000));
TimeUnit.MINUTES, new ArrayBlockingQueue<>(1000));
@Override
public void invoke(NetSDKLib.LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) {
CaptureRunnable captureRunnable = new CaptureRunnable(CmdSerial, fileType, RevLen, configProperties.getSavePath().getMediaPath(), pBuf);
String path = CaptureCmdSerial.getPath(CmdSerial);
CaptureRunnable captureRunnable = new CaptureRunnable(pBuf,RevLen,path);
threadPoolExecutor.execute(captureRunnable);
}
class CaptureRunnable implements Runnable {
private Pointer pBuf;
private int revLen;
private String path;
public CaptureRunnable(Pointer pBuf, int revLen, String path){
this.pBuf = pBuf;
this.revLen = revLen;
this.path = path;
}
@Override
public void run() {
savePic(pBuf,revLen,path);
}
}
private void savePic(Pointer pBuf, int RevLen, String path) {
System.out.println("download pic:"+path);
File file = PathUtil.getFile(path);
RandomAccessFile randomAccessFile = null;
try {
randomAccessFile = new RandomAccessFile(file, "rw");
randomAccessFile.write(pBuf.getByteArray(0, RevLen));
randomAccessFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
if (randomAccessFile != null) {
try {
randomAccessFile.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
}

@ -1,73 +0,0 @@
package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer;
import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.web.lib.CaptureCmdSerial;
import com.zhehekeji.web.lib.OrderInfo;
import com.zhehekeji.web.service.PlcService;
import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@Slf4j
public class CaptureRunnable implements Runnable {
private int CmdSerial;
private String fileType;
private Integer RevLen;
private String mediaPath;
private Pointer pBuf;
public CaptureRunnable(int cmdSerial, String fileType, Integer revLen, String mediaPath,
Pointer pBuf) {
this.CmdSerial = cmdSerial;
this.fileType = fileType;
this.RevLen = revLen;
this.mediaPath = mediaPath;
this.pBuf = pBuf;
}
@Override
public void run() {
String path = CaptureCmdSerial.getOrderInfo(CmdSerial);
if (path != null) {
String picPath = savePic(pBuf, RevLen, mediaPath + path);
if (picPath == null) {
return;
}
return;
}
}
private String savePic(Pointer pBuf, int RevLen, String path) {
BufferedImage bufferedImage = null;
if (pBuf != null && RevLen > 0) {
byte[] buf = pBuf.getByteArray(0, RevLen);
ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf);
try {
bufferedImage = ImageIO.read(byteArrInput);
if (bufferedImage == null) {
return null;
}
File file = PathUtil.getFile(path);
ImageIO.write(bufferedImage, fileType, file);
return path;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedImage != null) {
bufferedImage.flush();
}
}
}
return null;
}
}

@ -1,11 +1,10 @@
package com.zhehekeji.web.lib;
package com.zhehekeji.web.lib.joyware;
import com.sun.jna.ptr.IntByReference;
import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.joyware.CallBack;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.zhehekeji.web.lib.joyware.ToolKits;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.CameraControlModule;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime;
@ -15,23 +14,20 @@ import java.time.LocalDateTime;
*
*/
@Slf4j
public class JoywarePtzControlModule {
//private static CallBack.Mp4ReceiveCB mp4ReceiveCB = new CallBack.Mp4ReceiveCB();
public class JoywareCameraControlModuleImpl implements CameraControlModule {
/**
*
*/
public static boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
0, 0, 0, 1);
}
@ -39,14 +35,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
0, 0, 0, 1);
}
@ -54,14 +50,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
0, 0, 0, 1);
}
@ -69,14 +65,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
0, 0, 0, 1);
}
@ -84,14 +80,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
0, 0, 0, 1);
}
@ -99,14 +95,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
0, 0, 0, 1);
}
@ -114,14 +110,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
0, 0, 0, 1);
}
@ -129,14 +125,14 @@ public class JoywarePtzControlModule {
/**
*
*/
public static boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
0, 0, 0, 1);
}
@ -144,14 +140,14 @@ public class JoywarePtzControlModule {
/**
* +
*/
public static boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
0, 0, 0, 1);
}
@ -159,14 +155,14 @@ public class JoywarePtzControlModule {
/**
* -
*/
public static boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
0, 0, 0, 1);
}
@ -174,14 +170,14 @@ public class JoywarePtzControlModule {
/**
* +
*/
public static boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
0, 0, 0, 1);
}
@ -189,14 +185,14 @@ public class JoywarePtzControlModule {
/**
* -
*/
public static boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
0, 0, 0, 1);
}
@ -204,14 +200,14 @@ public class JoywarePtzControlModule {
/**
* +
*/
public static boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
0, 0, 0, 1);
}
@ -219,19 +215,19 @@ public class JoywarePtzControlModule {
/**
* -
*/
public static boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID,
public boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
0, 0, 0, 1);
}
public static boolean pic(Integer cameraId,Integer channel, String realPath) {
public boolean pic(Integer cameraId,int channel, String realPath) {
NetSDKLib.SNAP_PARAMS stuSnapParams = new NetSDKLib.SNAP_PARAMS();
stuSnapParams.Channel = 0; // channel
stuSnapParams.mode = 0; // capture picture mode
@ -239,11 +235,14 @@ public class JoywarePtzControlModule {
stuSnapParams.InterSnap = 0; // timer capture picture time interval
stuSnapParams.CmdSerial = CaptureCmdSerial.put(realPath);
IntByReference reserved = new IntByReference(0);
return JoywareLoginModule.netsdk.CLIENT_SnapPictureEx(HikLoginModule.CameraConnMap.getConnId(cameraId), stuSnapParams, reserved);
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_SnapPictureEx(CameraConnMap.getConnId(cameraId), stuSnapParams, reserved);
if (!ok) {
log.error("pic error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
}
return ok;
}
public static void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
//视频结束时间加上5s
end = end.plusSeconds(5);
PathUtil.checkDirc(path);
@ -258,14 +257,13 @@ public class JoywarePtzControlModule {
download_by_data_type.szSavedFileName = path;
download_by_data_type.emDataType = 3;
download_by_data_type.emRecordType = 0;
//download_by_data_type.cbDownLoadPos = mp4ReceiveCB;
download_by_data_type.write();
NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE net_out_download_by_data_type = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE();
net_out_download_by_data_type.write();
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{}", path, startTime.toString(), endTime.toString(), LocalDateTime.now());
NetSDKLib.LLong l = JoywareLoginModule.netsdk.CLIENT_DownloadByDataType(HikLoginModule.CameraConnMap.getConnId(cameraId), download_by_data_type.getPointer(), net_out_download_by_data_type.getPointer(), 8000);
NetSDKLib.LLong l = JoywareLoginModuleImpl.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId), download_by_data_type.getPointer(), net_out_download_by_data_type.getPointer(), 8000);
if (l.longValue() == 0) {
log.error("download error :{}", ToolKits.getErrorCodePrint());
log.error("download mp4 error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
}
}
@ -276,9 +274,12 @@ public class JoywarePtzControlModule {
* @param name
* @param cameraId ID,
*/
public static void ptz(Integer ptzId, String name, Integer cameraId) {
public void ptz(Integer ptzId, String name, Integer cameraId) {
int dwzCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
Boolean ok = JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx2(HikLoginModule.CameraConnMap.getConnId(cameraId), 0, dwzCommand, 0, ptzId, 0, 0, ToolKits.GetGBKStringToPointer(name));
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwzCommand, 0, ptzId, 0, 0, ToolKits.GetGBKStringToPointer(name));
if (!ok) {
log.error("ptz error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
}
Assert.isTrue(ok, "设置失败");
}
@ -288,11 +289,11 @@ public class JoywarePtzControlModule {
* @param ptzId
* @param cameraId
*/
public static void toPtz(Integer ptzId, Integer cameraId) {
public void toPtz(Integer ptzId, Integer cameraId) {
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
Boolean ok = JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx2(HikLoginModule.CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
if (!ok) {
log.error("转至预置点 失败 cameraId:{},ptzId:{},error:{}", cameraId, ptzId,ToolKits.getErrorCodePrint());
log.error("toPtz error, cameraId:{},ptzId:{},errorCode:{}", cameraId, ptzId,ToolKits.getErrorCodePrint());
}
}
@ -301,7 +302,7 @@ public class JoywarePtzControlModule {
*
* @param cameraId
*/
public static void toPtzSlow(Integer cameraId,Integer x) {
public void toPtzSlow(Integer cameraId,Integer x) {
int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
@ -311,7 +312,7 @@ public class JoywarePtzControlModule {
absolutely.stuSpeed.fPositionY = 0.2f;
absolutely.write();
//absolutely.stuSpeed.fZoom = 0.5f;
Boolean ok = JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx2(HikLoginModule.CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
0, 0, 0, 0, absolutely.getPointer());
if (!ok) {
@ -323,7 +324,7 @@ public class JoywarePtzControlModule {
* 360
* @param cameraId
*/
public static void turn360C8(Integer cameraId,Integer ptzId){
public void turn360C8(Integer cameraId,Integer ptzId){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
@ -333,7 +334,7 @@ public class JoywarePtzControlModule {
ptzLocationInfo.write();
System.out.println("size:"+ptzLocationInfo.size());
boolean bRet = JoywareLoginModule.netsdk.CLIENT_QueryDevState(HikLoginModule.CameraConnMap.getConnId(cameraId), nType, ptzLocationInfo.getPointer(), ptzLocationInfo.size(), intRetLen, 3000);
boolean bRet = JoywareLoginModuleImpl.netsdk.CLIENT_QueryDevState(CameraConnMap.getConnId(cameraId), nType, ptzLocationInfo.getPointer(), ptzLocationInfo.size(), intRetLen, 3000);
ptzLocationInfo.read();
if (bRet) {

@ -1,7 +1,6 @@
package com.zhehekeji.web.lib;
package com.zhehekeji.web.lib.joyware;
import com.zhehekeji.common.util.SpringContextUtil;
import com.zhehekeji.web.lib.joyware.*;
import com.zhehekeji.web.lib.CameraControlLoginModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib.LLong;
import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
@ -10,7 +9,7 @@ import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECU
*
*
*/
public class JoywareLoginModule {
public class JoywareLoginModuleImpl implements CameraControlLoginModule {
public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
public static NetSDKLib configsdk = NetSDKLib.CONFIG_INSTANCE;
@ -22,12 +21,11 @@ public class JoywareLoginModule {
private static CallBack.HaveReConnect haveReConnect = new CallBack.HaveReConnect();
// 登陆句柄
public static LLong m_hLoginHandle = new LLong(0);
private static boolean bInit = false;
private static boolean bLogopen = false;
private static CaptureReceiveCB captureReceiveCB = new CaptureReceiveCB();
/**
* \if ENGLISH_LANG
* Init
@ -35,7 +33,7 @@ public class JoywareLoginModule {
*
* \endif
*/
public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
public boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
bInit = netsdk.CLIENT_Init(disConnect, null);
if(!bInit) {
System.out.println("Initialize SDK failed");
@ -57,9 +55,8 @@ public class JoywareLoginModule {
netParam.nConnectTime = 10000; // 登录时尝试建立链接的超时时间
netParam.nGetConnInfoTime = 3000; // 设置子连接的超时时间
netsdk.CLIENT_SetNetworkParam(netParam);
CaptureReceiveCB captureReceiveCB = SpringContextUtil.getBean(CaptureReceiveCB.class);
netsdk.CLIENT_SetSnapRevCallBack(captureReceiveCB, null);
//todo
netsdk.CLIENT_SetSnapRevCallBack(captureReceiveCB,null);
return true;
}
@ -87,7 +84,7 @@ public class JoywareLoginModule {
*
* \endif
*/
public static LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword,Integer id) {
public LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
//IntByReference nError = new IntByReference(0);
//入参
init(disConnectCallBack,haveReConnect);
@ -101,48 +98,10 @@ public class JoywareLoginModule {
pstOutParam.stuDeviceInfo=m_stDeviceInfo;
//m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
LLong m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
attachPTZStatusProc();
//attachPTZStatusProc();
return m_hLoginHandle;
}
/**
*
*/
public static void attachPTZStatusProc() {
NET_IN_PTZ_STATUS_PROC pIn = new NET_IN_PTZ_STATUS_PROC();
pIn.nChannel = 0;
pIn.cbPTZStatusProc = CallBack.CBPTZStatusProcCallBack.getInstance();
pIn.write();
NET_OUT_PTZ_STATUS_PROC pOut = new NET_OUT_PTZ_STATUS_PROC();
pOut.write();
LLong AttachHandle = netsdk.CLIENT_AttachPTZStatusProc(m_hLoginHandle, pIn.getPointer(), pOut.getPointer(),0);
if(AttachHandle.longValue() == 0) {
System.out.printf("attachPTZStatusProc fail, ErrCode=\n");
}else {
System.out.println("attachPTZStatusProc success");
}
}
/**
* \if ENGLISH_LANG
* Logout Device
* \else
*
* \endif
*/
public static boolean logout() {
if(m_hLoginHandle.longValue() == 0) {
return false;
}
boolean bRet = netsdk.CLIENT_Logout(m_hLoginHandle);
if(bRet) {
m_hLoginHandle.setValue(0);
}
return bRet;
}
}

@ -1,10 +1,5 @@
package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.HikLoginModule;
import com.zhehekeji.web.lib.OrderRealtime;
import lombok.extern.slf4j.Slf4j;
/**
* @author 251823
* @description

@ -1,6 +1,5 @@
package com.zhehekeji.web.lib.joyware;
import com.zhehekeji.web.lib.JoywareLoginModule;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@ -15,6 +14,6 @@ public class StopDownLoadThread extends Thread {
@Override
public void run() {
log.info("stop download:{}",lPlayHandle.longValue());
JoywareLoginModule.netsdk.CLIENT_StopDownload(lPlayHandle);
JoywareLoginModuleImpl.netsdk.CLIENT_StopDownload(lPlayHandle);
}
}

@ -1,7 +1,5 @@
package com.zhehekeji.web.lib.joyware;
import com.zhehekeji.web.lib.JoywareLoginModule;
import com.zhehekeji.web.lib.joyware.common.ErrorCode;
import com.zhehekeji.web.lib.joyware.NetSDKLib.LLong;
import com.sun.jna.Memory;
import com.sun.jna.Pointer;
@ -9,10 +7,7 @@ import com.sun.jna.Structure;
import com.sun.jna.ptr.IntByReference;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.*;
import java.text.SimpleDateFormat;
@ -36,34 +31,6 @@ public class ToolKits {
pJavaStu.read();
}
public static void GetPointerDataToStructArr(Pointer pNativeData, Structure[]pJavaStuArr) {
long offset = 0;
for (int i=0; i<pJavaStuArr.length; ++i)
{
GetPointerDataToStruct(pNativeData, offset, pJavaStuArr[i]);
offset += pJavaStuArr[i].size();
}
}
/**
*
* @param pNativeData
* @param pJavaStuArr
*/
public static void SetStructArrToPointerData(Structure[]pJavaStuArr, Pointer pNativeData) {
long offset = 0;
for (int i = 0; i < pJavaStuArr.length; ++i) {
SetStructDataToPointer(pJavaStuArr[i], pNativeData, offset);
offset += pJavaStuArr[i].size();
}
}
public static void SetStructDataToPointer(Structure pJavaStu, Pointer pNativeData, long OffsetOfpNativeData){
pJavaStu.write();
Pointer pJavaMem = pJavaStu.getPointer();
pNativeData.write(OffsetOfpNativeData, pJavaMem.getByteArray(0, pJavaStu.size()), 0, pJavaStu.size());
}
public static void savePicture(byte[] pBuf, String sDstFile) throws IOException
{
FileOutputStream fos=null;
@ -120,36 +87,7 @@ public class ToolKits {
}
}
// 将Pointer值转为byte[]
public static String GetPointerDataToByteArr(Pointer pointer) {
String str = "";
if(pointer == null) {
return str;
}
int length = 0;
byte[] bufferPlace = new byte[1];
for(int i = 0; i < 2048; i++) {
pointer.read(i, bufferPlace, 0, 1);
if(bufferPlace[0] == '\0') {
length = i;
break;
}
}
if(length > 0) {
byte[] buffer = new byte[length];
pointer.read(0, buffer, 0, length);
try {
str = new String(buffer, "GBK").trim();
} catch (UnsupportedEncodingException e) {
return str;
}
}
return str;
}
// 获取当前时间
public static String getDate() {
@ -166,30 +104,6 @@ public class ToolKits {
return date;
}
// 限制JTextField 长度,以及内容
public static void limitTextFieldLength(final JTextField jTextField, final int size) {
jTextField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
String number = "0123456789" + (char)8;
if(number.indexOf(e.getKeyChar()) < 0 || jTextField.getText().trim().length() >= size) {
e.consume();
return;
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
}
// 获取当前窗口
public static JFrame getFrame(ActionEvent e) {
JButton btn = (JButton)e.getSource();
@ -223,172 +137,14 @@ public class ToolKits {
return osName;
}
/**
*
* @param filePath
* @return
*/
public static long GetFileSize(String filePath) {
File f = new File(filePath);
if (f.exists() && f.isFile()) {
return f.length();
}
else
{
return 0;
}
}
/**
*
* @param file
* @param memory
* @return
* @throws IOException
*/
public static boolean ReadAllFileToMemory(String file, Memory memory) throws IOException {
if (memory != Memory.NULL)
{
long fileLen = GetFileSize(file);
if (fileLen <= 0)
{
return false;
}
FileInputStream in =null;
try {
File infile = new File(file);
if (infile.canRead())
{
in = new FileInputStream(infile);
int buffLen = 1024;
byte[] buffer = new byte[buffLen];
long currFileLen = 0;
int readLen = 0;
while (currFileLen < fileLen)
{
readLen = in.read(buffer);
memory.write(currFileLen, buffer, 0, readLen);
currFileLen += readLen;
}
return true;
}
else
{
System.err.println("Failed to open file %s for read!!!\n");
return false;
}
}catch (Exception e)
{
System.err.println("Failed to open file %s for read!!!\n");
e.printStackTrace();
}finally{
if(in!=null){
in.close();
}
}
}
return false;
}
static class JPGFilter extends FileFilter {
public boolean accept(File f) {
if(f.getName().toLowerCase().endsWith(".JPG")
|| f.getName().toLowerCase().endsWith(".jpg")
|| f.isDirectory()) {
return true;
}
return false;
}
@Override
public String getDescription() {
return "*.jpg; *.JPG";
}
}
/**
*
* @return
* @throws IOException
*/
public static Memory readPictureFile(String picPath) throws IOException {
int nPicBufLen = 0;
Memory memory = null;
/*
*
*/
nPicBufLen = (int)ToolKits.GetFileSize(picPath);
// 读取文件大小失败
if (nPicBufLen <= 0) {
System.err.println("读取图片大小失败,请重新选择!");
return null;
}
/*
*
*/
memory = new Memory(nPicBufLen); // 申请缓存
memory.clear();
if (!ToolKits.ReadAllFileToMemory(picPath, memory)) {
System.err.println("读取图片数据,请重新选择!");
return null;
}
return memory;
}
/**
* ,
*/
public static String getErrorCodeShow() {
return ErrorCode.getErrorCode(JoywareLoginModule.netsdk.CLIENT_GetLastError());
}
/**
*
* @return
*/
public static String getErrorCodePrint() {
return "\n{error code: (0x80000000|" + (JoywareLoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").参考 NetSDKLib.java }"
+ " - {error info:" + ErrorCode.getErrorCode(JoywareLoginModule.netsdk.CLIENT_GetLastError()) + "}\n";
}
/**
*
* @param hLoginHandle
* @param nChn -1
* @param strCmd
* @param cmdObject
* @return true
*/
public static boolean GetDevConfig(LLong hLoginHandle, int nChn, String strCmd, Structure cmdObject) {
boolean result = false;
IntByReference error = new IntByReference(0);
int nBufferLen = 2*1024*1024;
byte[] strBuffer = new byte[nBufferLen];
if(netsdkapi.CLIENT_GetNewDevConfig( hLoginHandle, strCmd , nChn, strBuffer, nBufferLen,error,3000)) {
cmdObject.write();
if (configapi.CLIENT_ParseData(strCmd, strBuffer, cmdObject.getPointer(),
cmdObject.size(), null)) {
cmdObject.read();
result = true;
} else {
System.err.println("Parse " + strCmd + " Config Failed!" + ToolKits.getErrorCodePrint());
result = false;
}
} else {
System.err.printf("Get %s Config Failed!Last Error = %s\n" , strCmd , getErrorCodePrint());
result = false;
}
return result;
return "\n{error code: (0x80000000|" + (JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").参考 ErrorCode.java";
}
/**
@ -439,30 +195,4 @@ public class ToolKits {
}
return pointer;
}
/**
* (src dst)
* @param src
* @param dst
*/
public static void StringToByteArray(String src, byte[] dst) {
for(int i = 0; i < dst.length; i++) {
dst[i] = 0;
}
System.arraycopy(src.getBytes(), 0, dst, 0, src.getBytes().length);
}
/**
* (src dst)
* @param
* @param dst
*/
public static void ByteArrayToByteArray(byte[] src, byte[] dst) {
for(int i = 0; i < dst.length; i++) {
dst[i] = 0;
}
System.arraycopy(src, 0, dst, 0, src.length);
}
}

@ -1,76 +0,0 @@
package com.zhehekeji.web.lib.joyware.common;
import com.zhehekeji.web.lib.joyware.ToolKits;
import java.io.File;
public class SavePath {
private SavePath() {}
private static class SavePathHolder {
private static SavePath instance = new SavePath();
}
public static SavePath getSavePath() {
return SavePathHolder.instance;
}
String s_captureSavePath = "./Capture/" + ToolKits.getDay() + "/"; // 抓拍图片保存路径
String s_imageSavePath = "./Image/" + ToolKits.getDay() + "/"; // 图片保存路径
String s_recordFileSavePath = "./RecordFile/" + ToolKits.getDay() + "/"; // 录像保存路径
/*
*
*/
public String getSaveCapturePath() {
File path1 = new File("./Capture/");
if (!path1.exists()) {
path1.mkdir();
}
File path2 = new File(s_captureSavePath);
if (!path2.exists()) {
path2.mkdir();
}
String strFileName = path2.getAbsolutePath() + "/" + ToolKits.getDate() + ".jpg";
return strFileName;
}
/*
*
*/
public String getSaveTrafficImagePath() {
File path1 = new File("./Image/");
if (!path1.exists()) {
path1.mkdir();
}
File path = new File(s_imageSavePath);
if (!path.exists()) {
path.mkdir();
}
return s_imageSavePath;
}
/*
*
*/
public String getSaveRecordFilePath() {
File path1 = new File("./RecordFile/");
if (!path1.exists()) {
path1.mkdir();
}
File path2 = new File(s_recordFileSavePath);
if (!path2.exists()) {
path2.mkdir();
}
String SavedFileName = s_recordFileSavePath + ToolKits.getDate() + ".dav"; // 默认保存路径
return SavedFileName;
}
}

@ -8,8 +8,7 @@ import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.entity.CameraIOConfig;
import com.zhehekeji.web.lib.HikPtzControlModule;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.mapper.CameraIOConfigMapper;
import com.zhehekeji.web.mapper.CameraIOMapper;
import com.zhehekeji.web.mapper.CameraMapper;
@ -18,9 +17,7 @@ import com.zhehekeji.web.pojo.camera.CameraConfigSearchReq;
import com.zhehekeji.web.pojo.camera.IOImport;
import com.zhehekeji.web.pojo.street.StreetSearch;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
@ -47,6 +44,12 @@ public class CameraService {
@Resource
private ConfigProperties configProperties;
private CameraControlModule cameraControlModule;
public void setCameraControlModule(CameraControlModule cameraControlModule){
this.cameraControlModule = cameraControlModule;
}
public Integer add(Camera camera) {
camera.setUser(configProperties.getCameraConfig().getCameraUser());
camera.setPassword(configProperties.getCameraConfig().getCameraPassword());
@ -186,11 +189,7 @@ public class CameraService {
conver(cameraIO,type);
ioMapper.updateById(cameraIO);
}
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){
HikPtzControlModule.ptz(ptzId,cameraIO.getName(),cameraId);
}else if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA){
JoywarePtzControlModule.ptz(ptzId, cameraIO.getName(), cameraId);
}
cameraControlModule.ptz(ptzId,cameraIO.getName(),cameraId);
log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId);
return cameraIO.getId();
}

@ -113,7 +113,7 @@ public class CategoryService {
}
XSSFCell cell1 = row.getCell(1);
if(cell1 != null){
String name = cell.getStringCellValue();
String name = cell1.getStringCellValue();
category.setName(name);
}
Category old = categoryMapper.getByCode(category.getCode());

@ -4,6 +4,10 @@ import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.lib.*;
import com.zhehekeji.web.lib.hik.HikCameraControlModuleImpl;
import com.zhehekeji.web.lib.hik.HikLoginModuleImpl;
import com.zhehekeji.web.lib.joyware.JoywareCameraControlModuleImpl;
import com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.zhehekeji.web.mapper.CameraMapper;
import com.zhehekeji.web.mapper.StreetMapper;
@ -12,6 +16,7 @@ import com.zhehekeji.web.service.robotic.NettyClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -36,11 +41,36 @@ public class InitService implements ApplicationRunner {
@Resource
private KsecNettyClient ksecNettyClient;
public static Integer cameraNum;
@Resource
private ConfigProperties configProperties;
@Resource
private PlcService plcService;
@Resource
private CameraService cameraService;
@Bean
public CameraControlLoginModule cameraControlLoginModule(){
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA){
return new JoywareLoginModuleImpl();
}else {
return new HikLoginModuleImpl();
}
}
@Bean
public CameraControlModule cameraControlModule(ConfigProperties configProperties){
CameraControlModule cameraControlModule = null;
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA){
cameraControlModule = new JoywareCameraControlModuleImpl();
}else {
cameraControlModule = new HikCameraControlModuleImpl();
}
plcService.setCameraControlModule(cameraControlModule);
cameraService.setCameraControlModule(cameraControlModule);
return cameraControlModule;
}
@Override
public void run(ApplicationArguments args) throws Exception {
//球机登录
@ -53,17 +83,12 @@ public class InitService implements ApplicationRunner {
List<Street> streets = streetMapper.selectByMap(new HashMap<>(0));
streets.forEach(street -> {
//随便找一个巷道,只要配置了一个球机,就是单个球机的项目
if((street.getCamera1Id() != null && street.getCamera2Id() == null)||(street.getCamera2Id() != null && street.getCamera1Id() == null)){
cameraNum = 1;
}
StreetConn.init(street.getId(),street.getPlcId());
try {
nettyClient.createClient(street);
}catch (Exception e){
log.error("streetId:{}初始plc连接失败,url:{},port:{}",street.getId(),street.getPlcIp(),street.getPlcPort());
}
});
}else if(configProperties.getServerMode() == 1){
log.info("KESC JSON MODE");
@ -97,24 +122,9 @@ public class InitService implements ApplicationRunner {
@Override
public void run() {
cameras.forEach(camera -> {
if(cameraType == 0){
NetSDKLib.LLong lLong = JoywareLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword(),camera.getId());
if(lLong.longValue() <= 0){
log.error("初始相机 登录失败cameraId{}",camera.getId());
}else {
HikLoginModule.CameraConnMap.conn(camera.getId(),lLong);
log.info("初始相机登录成功 cameraId:{},loginId:{}",camera.getId(),lLong.longValue());
}
}else if(cameraType == 1){
int userId = HikLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword());
if(userId < 0){
log.error("初始相机 登录失败cameraId{}",camera.getId());
}else {
NetSDKLib.LLong lLong = new NetSDKLib.LLong(userId);
HikLoginModule.CameraConnMap.conn(camera.getId(),lLong);
log.info("初始相机登录成功 cameraId:{},loginId:{}",camera.getId(),lLong.longValue());
}
}
NetSDKLib.LLong lLong = cameraControlLoginModule().login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword());
System.out.println(lLong.longValue());
CameraConnMap.conn(camera.getId(),lLong);
});
}
}

@ -2,24 +2,20 @@ package com.zhehekeji.web.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Order;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.mapper.OrderMapper;
import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.pojo.OrderSaveReq;
import com.zhehekeji.web.pojo.OrderSearch;
import com.zhehekeji.web.pojo.OrderVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@ -69,6 +69,16 @@ public class PlcCmdInfo {
this.column2 = column2;
this.row2 = row2;
this.plcId = plcId;
this.orderNum = plcId+"_"+taskId;
this.orderNum = plcId + "_" + taskId;
}
public String getLeftRightStr(int times) {
if (times <= 2) {
return leftRight1 == 1 ? "L" : "R";
} else if(times <= 4) {
return leftRight2 == 1 ? "L" : "R";
}else {
return "";
}
}
}

@ -10,6 +10,7 @@ import com.zhehekeji.web.pojo.OrderVO;
import com.zhehekeji.web.pojo.stock.StockStatus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -51,15 +52,21 @@ public class PlcService {
@Resource
private CameraService cameraService;
private CameraControlModule cameraControlModule;
public void setCameraControlModule(CameraControlModule cameraControlModule){
this.cameraControlModule = cameraControlModule;
}
/**
*
*/
private static String originalPoint = "C6";
public Integer plcStatus() {
List<Street> streets = streetMapper.selectByMap(new HashMap<>(0));
Integer count = streetMapper.selectCount(new QueryWrapper<>());
List<Integer> connIds = StreetConn.connList();
return (streets.size() - connIds.size());
return (count - connIds.size());
}
/**
@ -109,13 +116,17 @@ public class PlcService {
Order update = new Order();
update.setId(order.getId());
update.setEndTime(endTime);
update.setInOut2(plcCmdInfo.getInOut2());
update.setLeftRight2(plcCmdInfo.getLeftRight2());
update.setColumn2(plcCmdInfo.getColumn2());
update.setRow2(plcCmdInfo.getRow2());
if (street.getCamera1Id() != null) {
String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endTime);
order.setVideoPath1(path);
update.setVideoPath1(path);
}
if (street.getCamera2Id() != null) {
String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endTime);
order.setVideoPath2(path);
update.setVideoPath2(path);
}
orderMapper.updateById(update);
@ -137,13 +148,9 @@ public class PlcService {
public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) {
String path = PathUtil.createFileName("mp4");
String path = PathUtil.createFileName("mp4",cameraId);
String realPath = configProperties.getSavePath().getMp4Path() + path;
if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) {
HikPtzControlModule.downloadMp4(cameraId, realPath, startTime, endTime);
} else if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA) {
JoywarePtzControlModule.downloadMp4(cameraId, realPath, startTime, endTime);
}
cameraControlModule.downloadMp4(cameraId,realPath,startTime,endTime);
return path;
}
@ -210,7 +217,7 @@ public class PlcService {
*/
public Boolean doNeedCaptureByCode(String code) {
String picCmd = code.substring(0, 2);
if (picCmd.equals("C2") || picCmd.equals("C4")) {
if (picCmd.equals("C2") || picCmd.equals("C4") || picCmd.equals("C1") || picCmd.equals("C3")) {
return true;
}
return false;
@ -222,13 +229,9 @@ public class PlcService {
* @Return pic address
*/
public String cameraCapture(Integer cameraId) {
String path = PathUtil.createFileName("jpg");
String path = PathUtil.createFileName("jpg",cameraId);
String realPath = configProperties.getSavePath().getMediaPath() + path;
if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA) {
JoywarePtzControlModule.pic(cameraId, 0, realPath);
} else if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) {
HikPtzControlModule.pic(cameraId, 0, realPath);
}
cameraControlModule.pic(cameraId,0,realPath);
return path;
}
@ -242,11 +245,7 @@ public class PlcService {
Integer ptzId = cameraService.getPtzIdByCodeAndCameraId(code, cameraId);
if (ptzId != null && ptzId >= 0) {
log.info("gyrate camera by code, code{},cameraId:{},ptId:{}", code, cameraId, ptzId);
if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) {
HikPtzControlModule.toPtz(ptzId, cameraId);
} else if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA) {
JoywarePtzControlModule.toPtz(ptzId, cameraId);
}
cameraControlModule.toPtz(ptzId,cameraId);
} else {
log.error("ptz not found ,code{},cameraId:{}", code, cameraId);
}
@ -345,30 +344,27 @@ public class PlcService {
synchronized (orderInfo.getOrderNum().intern()) {
Order order = orderMapper.getOneByOrderNum(orderInfo.getOrderNum());
if (order != null) {
//update picPath in stock
Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(), orderInfo.getRow(), orderInfo.getColumn());
if (stock == null) {
stock = new Stock();
stock.setShelveId(orderInfo.getShelveId());
stock.setColumn(orderInfo.getColumn());
stock.setRow(orderInfo.getRow());
stock.setStatus(0);
//if the stock is null,take over path only
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
stockMapper.insert(stock);
} else {
if (orderInfo.getIsPre()) {
stock.setPreoperationPic(path);
//update picPath in stock if code is C2/C4
if(orderInfo.getCode().startsWith("C2") || orderInfo.getCode().startsWith("C4")){
Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(), orderInfo.getRow(), orderInfo.getColumn());
if (stock == null) {
stock = new Stock();
stock.setShelveId(orderInfo.getShelveId());
stock.setColumn(orderInfo.getColumn());
stock.setRow(orderInfo.getRow());
stock.setStatus(0);
//if the stock is null,take over path only
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
stockMapper.insert(stock);
} else {
//take the previous picture path the lasted over picture path
//take the lasted picture path the new one
stock.setPreoperationPic(stock.getPreoperationPic());
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
stockMapper.updateById(stock);
}
//take the previous picture path the lasted over picture path
//take the lasted picture path the new one
stock.setPreoperationPic(stock.getPreoperationPic());
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
stockMapper.updateById(stock);
}
String pics = order.getPicPaths();
if (StringUtils.isEmpty(pics)) {
@ -389,35 +385,35 @@ public class PlcService {
}
/**
* 360,C8
*
* @param plcId
* @Param ptzId 360
*/
public void turn360AndC8(String plcId) {
Street street = streetMapper.getStreetByPlcId(plcId);
if (street == null) {
return;
}
if (street.getCamera1Id() != null) {
List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera1Id()));
Integer ptzId = null;
if (ioConfigs.size() > 0) {
ptzId = ioConfigs.get(0).getPtzId();
}
JoywarePtzControlModule.turn360C8(street.getCamera1Id(), ptzId);
}
if (street.getCamera2Id() != null) {
List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera2Id()));
Integer ptzId = null;
if (ioConfigs.size() > 0) {
ptzId = ioConfigs.get(0).getPtzId();
}
JoywarePtzControlModule.turn360C8(street.getCamera2Id(), ptzId);
}
}
// /**
// * 执行动作 旋转360,然后执行C8动作
// *
// * @param plcId
// * @Param ptzId 旋转360之后再转到这个预置点
// */
// public void turn360AndC8(String plcId) {
// Street street = streetMapper.getStreetByPlcId(plcId);
// if (street == null) {
// return;
// }
//
// if (street.getCamera1Id() != null) {
// List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera1Id()));
// Integer ptzId = null;
// if (ioConfigs.size() > 0) {
// ptzId = ioConfigs.get(0).getPtzId();
// }
// JoywarePtzControlModule.turn360C8(street.getCamera1Id(), ptzId);
// }
// if (street.getCamera2Id() != null) {
// List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera2Id()));
// Integer ptzId = null;
// if (ioConfigs.size() > 0) {
// ptzId = ioConfigs.get(0).getPtzId();
// }
// JoywarePtzControlModule.turn360C8(street.getCamera2Id(), ptzId);
// }
// }
/**
*

@ -76,7 +76,11 @@ public class StreetService {
return street;
}
@CacheEvict(value = "street",key = "#id")
@Caching(evict = {
@CacheEvict(value = "street",key = "#id"),
@CacheEvict(value = "getStreetCount")
})
public void del(Integer id) {
Street street = streetMapper.selectById(id);
if(street != null){

@ -64,6 +64,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
if (code.equals("C1") || code.equals("C2") || code.equals("C3") || code.equals("C4")) {
//执行动作,需要保存执行到第几步了
Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum());
code = code + "-" + plcCmdInfo.getLeftRightStr(times);
//执行动作
plcService.action(plcCmdInfo, times, code);
}else {

Loading…
Cancel
Save