基础版 优化

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.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Random;
import java.util.UUID; import java.util.UUID;
@Slf4j @Slf4j
public class PathUtil { 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(); LocalDateTime now = LocalDateTime.now();
String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/HH")); String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/HH")) + "/camera"+cameraId;
return time + "/" + now.format(DateTimeFormatter.ofPattern("mmss"))+UUID.randomUUID() + "."+fileType; 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.Cache;
import org.springframework.cache.CacheManager; import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCache;
import org.springframework.cache.concurrent.ConcurrentMapCache; import org.springframework.cache.concurrent.ConcurrentMapCache;
import org.springframework.cache.jcache.JCacheCache;
import org.springframework.cache.support.SimpleCacheManager; import org.springframework.cache.support.SimpleCacheManager;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -25,6 +27,8 @@ public class CacheConfig {
List<Cache> caches = new ArrayList<Cache>(); List<Cache> caches = new ArrayList<Cache>();
caches.add(new ConcurrentMapCache("street")); caches.add(new ConcurrentMapCache("street"));
caches.add(new ConcurrentMapCache("ptz")); caches.add(new ConcurrentMapCache("ptz"));
caches.add(new ConcurrentMapCache("streetByPlc"));
caches.add(new ConcurrentMapCache("getStreetCount"));
simpleCacheManager.setCaches(caches); simpleCacheManager.setCaches(caches);
//把各个cache注册到cacheManager中GuavaCache实现了org.springframework.cache.Cache接口 //把各个cache注册到cacheManager中GuavaCache实现了org.springframework.cache.Cache接口
// CacheBuilder cacheBuilder = CacheBuilder.newBuilder(); // CacheBuilder cacheBuilder = CacheBuilder.newBuilder();

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

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

@ -5,7 +5,6 @@ import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil; import com.zhehekeji.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result; import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Stock; import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.pojo.category.PageSearch; import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.pojo.stock.CheckByMan; import com.zhehekeji.web.pojo.stock.CheckByMan;
import com.zhehekeji.web.pojo.stock.StockCheck; import com.zhehekeji.web.pojo.stock.StockCheck;
@ -111,12 +110,12 @@ public class StockController {
return Result.success(stockService.checkByMan(checkByMan)); return Result.success(stockService.checkByMan(checkByMan));
} }
@ApiOperation(value = "slow") // @ApiOperation(value = "slow")
@RequestMapping(value = "/slow", method = RequestMethod.GET) // @RequestMapping(value = "/slow", method = RequestMethod.GET)
public Result slow(Integer cameraId,Integer x) { // public Result slow(Integer cameraId,Integer x) {
JoywarePtzControlModule.toPtzSlow(cameraId,x); // JoywarePtzControlModule.toPtzSlow(cameraId,x);
return Result.success(); // 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; package com.zhehekeji.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -23,13 +21,6 @@ public class OrderRealtime {
*/ */
private static Map<Integer, Long> warnIdMap = new ConcurrentHashMap<>(); 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) { public static void startOrder(Integer streetId, String orderNum) {
orderMap.put(streetId, 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 com.zhehekeji.web.lib.joyware.NetSDKLib;
import lombok.Data; 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; public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
@ -30,7 +31,7 @@ public class HikLoginModule {
* *
* \endif * \endif
*/ */
public static boolean init() { public boolean init() {
//public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) { //public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
bInit = hcNetsdk.NET_DVR_Init(); bInit = hcNetsdk.NET_DVR_Init();
@ -66,7 +67,7 @@ public class HikLoginModule {
* *
* \endif * \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(); init();
HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息 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();//设备信息 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.bUseAsynLogin = false; //是否异步登录0- 否1- 是
m_strLoginInfo.write(); m_strLoginInfo.write();
int m_lUserID = hcNetsdk.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); 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; package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.HikLoginModule; import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.JoywareLoginModule;
import com.zhehekeji.web.lib.OrderRealtime;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@ -16,7 +14,7 @@ public class CallBack {
@Override @Override
public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) { 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); log.error("球机:{}掉线",cameraId);
//CameraConnMap.disConn(cameraId); //CameraConnMap.disConn(cameraId);
} }
@ -30,7 +28,7 @@ public class CallBack {
// @Override // @Override
// public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) { // public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) {
// if(dwDownLoadSize == -1) { // 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.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
@ -33,7 +33,7 @@ public class CaptureCmdSerial {
* @param serialId * @param serialId
* @return * @return
*/ */
public static String getOrderInfo(Integer serialId) { public static String getPath(Integer serialId) {
String path = captureMap.get(serialId); String path = captureMap.get(serialId);
captureMap.remove(serialId); captureMap.remove(serialId);
return path; return path;

@ -1,15 +1,10 @@
package com.zhehekeji.web.lib.joyware; package com.zhehekeji.web.lib.joyware;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.web.mapper.OrderMapper;
import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.service.PlcService;
import lombok.extern.slf4j.Slf4j; 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.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -19,26 +14,61 @@ import java.util.concurrent.TimeUnit;
* @Author wangyiming1031@aliyun.com * @Author wangyiming1031@aliyun.com
* @Date 2020/12/14 16:11 * @Date 2020/12/14 16:11
**/ **/
@Component
@Slf4j @Slf4j
public class CaptureReceiveCB implements NetSDKLib.fSnapRev { public class CaptureReceiveCB implements NetSDKLib.fSnapRev {
@Resource
private ConfigProperties configProperties;
private static String fileType = "jpg";
/**
* 线
*/
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 3, 200, private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 3, 200,
TimeUnit.MINUTES, new ArrayBlockingQueue<>(10000000)); TimeUnit.MINUTES, new ArrayBlockingQueue<>(1000));
@Override @Override
public void invoke(NetSDKLib.LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) { 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); 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.sun.jna.ptr.IntByReference;
import com.zhehekeji.common.util.PathUtil; import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.core.util.Assert; import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.joyware.CallBack; import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.joyware.NetSDKLib; import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.lib.joyware.ToolKits;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -15,23 +14,20 @@ import java.time.LocalDateTime;
* *
*/ */
@Slf4j @Slf4j
public class JoywarePtzControlModule { public class JoywareCameraControlModuleImpl implements CameraControlModule {
//private static CallBack.Mp4ReceiveCB mp4ReceiveCB = new CallBack.Mp4ReceiveCB();
/** /**
* *
*/ */
public static boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -39,14 +35,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -54,14 +50,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -69,14 +65,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlRightEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -84,14 +80,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -99,14 +95,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -114,14 +110,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -129,14 +125,14 @@ public class JoywarePtzControlModule {
/** /**
* *
*/ */
public static boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public static boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -144,14 +140,14 @@ public class JoywarePtzControlModule {
/** /**
* + * +
*/ */
public static boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) { public boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -159,14 +155,14 @@ public class JoywarePtzControlModule {
/** /**
* - * -
*/ */
public static boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) { public boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -174,14 +170,14 @@ public class JoywarePtzControlModule {
/** /**
* + * +
*/ */
public static boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) { public boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -189,14 +185,14 @@ public class JoywarePtzControlModule {
/** /**
* - * -
*/ */
public static boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) { public boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -204,14 +200,14 @@ public class JoywarePtzControlModule {
/** /**
* + * +
*/ */
public static boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) { public boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
} }
@ -219,19 +215,19 @@ public class JoywarePtzControlModule {
/** /**
* - * -
*/ */
public static boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2) { public boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
0, lParam2, 0, 0); 0, lParam2, 0, 0);
} }
public static boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) { public boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) {
return JoywareLoginModule.netsdk.CLIENT_DHPTZControlEx(HikLoginModule.CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
0, 0, 0, 1); 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(); NetSDKLib.SNAP_PARAMS stuSnapParams = new NetSDKLib.SNAP_PARAMS();
stuSnapParams.Channel = 0; // channel stuSnapParams.Channel = 0; // channel
stuSnapParams.mode = 0; // capture picture mode stuSnapParams.mode = 0; // capture picture mode
@ -239,11 +235,14 @@ public class JoywarePtzControlModule {
stuSnapParams.InterSnap = 0; // timer capture picture time interval stuSnapParams.InterSnap = 0; // timer capture picture time interval
stuSnapParams.CmdSerial = CaptureCmdSerial.put(realPath); stuSnapParams.CmdSerial = CaptureCmdSerial.put(realPath);
IntByReference reserved = new IntByReference(0); 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 //视频结束时间加上5s
end = end.plusSeconds(5); end = end.plusSeconds(5);
PathUtil.checkDirc(path); PathUtil.checkDirc(path);
@ -258,14 +257,13 @@ public class JoywarePtzControlModule {
download_by_data_type.szSavedFileName = path; download_by_data_type.szSavedFileName = path;
download_by_data_type.emDataType = 3; download_by_data_type.emDataType = 3;
download_by_data_type.emRecordType = 0; download_by_data_type.emRecordType = 0;
//download_by_data_type.cbDownLoadPos = mp4ReceiveCB;
download_by_data_type.write(); 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(); 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(); net_out_download_by_data_type.write();
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{}", path, startTime.toString(), endTime.toString(), LocalDateTime.now()); 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) { 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 name
* @param cameraId ID, * @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; 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, "设置失败"); Assert.isTrue(ok, "设置失败");
} }
@ -288,11 +289,11 @@ public class JoywarePtzControlModule {
* @param ptzId * @param ptzId
* @param cameraId * @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; 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) { 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 * @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; int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY(); NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
@ -311,7 +312,7 @@ public class JoywarePtzControlModule {
absolutely.stuSpeed.fPositionY = 0.2f; absolutely.stuSpeed.fPositionY = 0.2f;
absolutely.write(); absolutely.write();
//absolutely.stuSpeed.fZoom = 0.5f; //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()); 0, 0, 0, 0, absolutely.getPointer());
if (!ok) { if (!ok) {
@ -323,7 +324,7 @@ public class JoywarePtzControlModule {
* 360 * 360
* @param cameraId * @param cameraId
*/ */
public static void turn360C8(Integer cameraId,Integer ptzId){ public void turn360C8(Integer cameraId,Integer ptzId){
Thread thread = new Thread(new Runnable() { Thread thread = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -333,7 +334,7 @@ public class JoywarePtzControlModule {
ptzLocationInfo.write(); ptzLocationInfo.write();
System.out.println("size:"+ptzLocationInfo.size()); 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(); ptzLocationInfo.read();
if (bRet) { 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.CameraControlLoginModule;
import com.zhehekeji.web.lib.joyware.*;
import com.zhehekeji.web.lib.joyware.NetSDKLib.LLong; 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_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_OUT_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 netsdk = NetSDKLib.NETSDK_INSTANCE;
public static NetSDKLib configsdk = NetSDKLib.CONFIG_INSTANCE; public static NetSDKLib configsdk = NetSDKLib.CONFIG_INSTANCE;
@ -22,12 +21,11 @@ public class JoywareLoginModule {
private static CallBack.HaveReConnect haveReConnect = new CallBack.HaveReConnect(); private static CallBack.HaveReConnect haveReConnect = new CallBack.HaveReConnect();
// 登陆句柄
public static LLong m_hLoginHandle = new LLong(0);
private static boolean bInit = false; private static boolean bInit = false;
private static boolean bLogopen = false; private static boolean bLogopen = false;
private static CaptureReceiveCB captureReceiveCB = new CaptureReceiveCB();
/** /**
* \if ENGLISH_LANG * \if ENGLISH_LANG
* Init * Init
@ -35,7 +33,7 @@ public class JoywareLoginModule {
* *
* \endif * \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); bInit = netsdk.CLIENT_Init(disConnect, null);
if(!bInit) { if(!bInit) {
System.out.println("Initialize SDK failed"); System.out.println("Initialize SDK failed");
@ -57,9 +55,8 @@ public class JoywareLoginModule {
netParam.nConnectTime = 10000; // 登录时尝试建立链接的超时时间 netParam.nConnectTime = 10000; // 登录时尝试建立链接的超时时间
netParam.nGetConnInfoTime = 3000; // 设置子连接的超时时间 netParam.nGetConnInfoTime = 3000; // 设置子连接的超时时间
netsdk.CLIENT_SetNetworkParam(netParam); netsdk.CLIENT_SetNetworkParam(netParam);
CaptureReceiveCB captureReceiveCB = SpringContextUtil.getBean(CaptureReceiveCB.class); //todo
netsdk.CLIENT_SetSnapRevCallBack(captureReceiveCB,null); netsdk.CLIENT_SetSnapRevCallBack(captureReceiveCB,null);
return true; return true;
} }
@ -87,7 +84,7 @@ public class JoywareLoginModule {
* *
* \endif * \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); //IntByReference nError = new IntByReference(0);
//入参 //入参
init(disConnectCallBack,haveReConnect); init(disConnectCallBack,haveReConnect);
@ -101,48 +98,10 @@ public class JoywareLoginModule {
pstOutParam.stuDeviceInfo=m_stDeviceInfo; pstOutParam.stuDeviceInfo=m_stDeviceInfo;
//m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError); //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); LLong m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
attachPTZStatusProc(); //attachPTZStatusProc();
return m_hLoginHandle; 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; 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 * @author 251823
* @description * @description

@ -1,6 +1,5 @@
package com.zhehekeji.web.lib.joyware; package com.zhehekeji.web.lib.joyware;
import com.zhehekeji.web.lib.JoywareLoginModule;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@ -15,6 +14,6 @@ public class StopDownLoadThread extends Thread {
@Override @Override
public void run() { public void run() {
log.info("stop download:{}",lPlayHandle.longValue()); 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; 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.zhehekeji.web.lib.joyware.NetSDKLib.LLong;
import com.sun.jna.Memory; import com.sun.jna.Memory;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
@ -9,10 +7,7 @@ import com.sun.jna.Structure;
import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.IntByReference;
import javax.swing.*; import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.*; import java.io.*;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -36,34 +31,6 @@ public class ToolKits {
pJavaStu.read(); 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 public static void savePicture(byte[] pBuf, String sDstFile) throws IOException
{ {
FileOutputStream fos=null; 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() { public static String getDate() {
@ -166,30 +104,6 @@ public class ToolKits {
return date; 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) { public static JFrame getFrame(ActionEvent e) {
JButton btn = (JButton)e.getSource(); JButton btn = (JButton)e.getSource();
@ -223,172 +137,14 @@ public class ToolKits {
return osName; 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 * @return
*/ */
public static String getErrorCodePrint() { public static String getErrorCodePrint() {
return "\n{error code: (0x80000000|" + (JoywareLoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").参考 NetSDKLib.java }" return "\n{error code: (0x80000000|" + (JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").参考 ErrorCode.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;
} }
/** /**
@ -439,30 +195,4 @@ public class ToolKits {
} }
return pointer; 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.Camera;
import com.zhehekeji.web.entity.CameraIO; import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.entity.CameraIOConfig; import com.zhehekeji.web.entity.CameraIOConfig;
import com.zhehekeji.web.lib.HikPtzControlModule; import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.lib.JoywarePtzControlModule;
import com.zhehekeji.web.mapper.CameraIOConfigMapper; import com.zhehekeji.web.mapper.CameraIOConfigMapper;
import com.zhehekeji.web.mapper.CameraIOMapper; import com.zhehekeji.web.mapper.CameraIOMapper;
import com.zhehekeji.web.mapper.CameraMapper; 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.camera.IOImport;
import com.zhehekeji.web.pojo.street.StreetSearch; import com.zhehekeji.web.pojo.street.StreetSearch;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -47,6 +44,12 @@ public class CameraService {
@Resource @Resource
private ConfigProperties configProperties; private ConfigProperties configProperties;
private CameraControlModule cameraControlModule;
public void setCameraControlModule(CameraControlModule cameraControlModule){
this.cameraControlModule = cameraControlModule;
}
public Integer add(Camera camera) { public Integer add(Camera camera) {
camera.setUser(configProperties.getCameraConfig().getCameraUser()); camera.setUser(configProperties.getCameraConfig().getCameraUser());
camera.setPassword(configProperties.getCameraConfig().getCameraPassword()); camera.setPassword(configProperties.getCameraConfig().getCameraPassword());
@ -186,11 +189,7 @@ public class CameraService {
conver(cameraIO,type); conver(cameraIO,type);
ioMapper.updateById(cameraIO); ioMapper.updateById(cameraIO);
} }
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){ cameraControlModule.ptz(ptzId,cameraIO.getName(),cameraId);
HikPtzControlModule.ptz(ptzId,cameraIO.getName(),cameraId);
}else if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA){
JoywarePtzControlModule.ptz(ptzId, cameraIO.getName(), cameraId);
}
log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId); log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId);
return cameraIO.getId(); return cameraIO.getId();
} }

@ -113,7 +113,7 @@ public class CategoryService {
} }
XSSFCell cell1 = row.getCell(1); XSSFCell cell1 = row.getCell(1);
if(cell1 != null){ if(cell1 != null){
String name = cell.getStringCellValue(); String name = cell1.getStringCellValue();
category.setName(name); category.setName(name);
} }
Category old = categoryMapper.getByCode(category.getCode()); 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.Camera;
import com.zhehekeji.web.entity.Street; import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.lib.*; 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.lib.joyware.NetSDKLib;
import com.zhehekeji.web.mapper.CameraMapper; import com.zhehekeji.web.mapper.CameraMapper;
import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.mapper.StreetMapper;
@ -12,6 +16,7 @@ import com.zhehekeji.web.service.robotic.NettyClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -36,11 +41,36 @@ public class InitService implements ApplicationRunner {
@Resource @Resource
private KsecNettyClient ksecNettyClient; private KsecNettyClient ksecNettyClient;
public static Integer cameraNum;
@Resource @Resource
private ConfigProperties configProperties; 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 @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
//球机登录 //球机登录
@ -53,17 +83,12 @@ public class InitService implements ApplicationRunner {
List<Street> streets = streetMapper.selectByMap(new HashMap<>(0)); List<Street> streets = streetMapper.selectByMap(new HashMap<>(0));
streets.forEach(street -> { streets.forEach(street -> {
//随便找一个巷道,只要配置了一个球机,就是单个球机的项目
if((street.getCamera1Id() != null && street.getCamera2Id() == null)||(street.getCamera2Id() != null && street.getCamera1Id() == null)){
cameraNum = 1;
}
StreetConn.init(street.getId(),street.getPlcId()); StreetConn.init(street.getId(),street.getPlcId());
try { try {
nettyClient.createClient(street); nettyClient.createClient(street);
}catch (Exception e){ }catch (Exception e){
log.error("streetId:{}初始plc连接失败,url:{},port:{}",street.getId(),street.getPlcIp(),street.getPlcPort()); log.error("streetId:{}初始plc连接失败,url:{},port:{}",street.getId(),street.getPlcIp(),street.getPlcPort());
} }
}); });
}else if(configProperties.getServerMode() == 1){ }else if(configProperties.getServerMode() == 1){
log.info("KESC JSON MODE"); log.info("KESC JSON MODE");
@ -97,24 +122,9 @@ public class InitService implements ApplicationRunner {
@Override @Override
public void run() { public void run() {
cameras.forEach(camera -> { cameras.forEach(camera -> {
if(cameraType == 0){ NetSDKLib.LLong lLong = cameraControlLoginModule().login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword());
NetSDKLib.LLong lLong = JoywareLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword(),camera.getId()); System.out.println(lLong.longValue());
if(lLong.longValue() <= 0){ CameraConnMap.conn(camera.getId(),lLong);
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());
}
}
}); });
} }
} }

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

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

@ -76,7 +76,11 @@ public class StreetService {
return street; return street;
} }
@CacheEvict(value = "street",key = "#id")
@Caching(evict = {
@CacheEvict(value = "street",key = "#id"),
@CacheEvict(value = "getStreetCount")
})
public void del(Integer id) { public void del(Integer id) {
Street street = streetMapper.selectById(id); Street street = streetMapper.selectById(id);
if(street != null){ 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")) { if (code.equals("C1") || code.equals("C2") || code.equals("C3") || code.equals("C4")) {
//执行动作,需要保存执行到第几步了 //执行动作,需要保存执行到第几步了
Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum()); Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum());
code = code + "-" + plcCmdInfo.getLeftRightStr(times);
//执行动作 //执行动作
plcService.action(plcCmdInfo, times, code); plcService.action(plcCmdInfo, times, code);
}else { }else {

Loading…
Cancel
Save