随行模式修改

merge-requests/5/merge
Your Name 4 years ago
parent 8c40948608
commit 7839377c92

@ -26,8 +26,8 @@ public class PathUtil {
public static String createFileName(String fileType,Integer cameraId) { 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")) + "/camera"+cameraId; String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) + "/camera"+cameraId;
return time + "/" + now.format(DateTimeFormatter.ofPattern("mmss-"))+getRandomString(10) + "."+fileType; return time + "/" + now.format(DateTimeFormatter.ofPattern("HHmmss-"))+getRandomString(10) + "."+fileType;
} }
/** /**

@ -292,16 +292,25 @@ public class CameraControlController {
@ApiOperation(value = "立即拍照") @ApiOperation(value = "立即拍照")
public Result pic(@PathVariable Integer id) { public Result pic(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
String path = "D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMDDHHmmss"))+".jpeg"; String path = "D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".jpeg";
TaskDelayExecutor.addPicDelayTask(id,path,2000L); TaskDelayExecutor.addPicDelayTask(id,path,2000L);
return Result.success(); return Result.success();
} }
@PostMapping("/mp4/{id}/delay")
@ApiOperation(value = "录像")
public Result MP4delay(@PathVariable Integer id) {
checkLogin(id);
TaskDelayExecutor.addMp4DelayTask(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4",LocalDateTime.now().minusMinutes(2),LocalDateTime.now().minusSeconds(7),12000L);
//cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8));
return Result.success();
}
@PostMapping("/mp4/{id}") @PostMapping("/mp4/{id}")
@ApiOperation(value = "录像") @ApiOperation(value = "录像")
public Result MP4(@PathVariable Integer id) { public Result MP4(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMDDHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8)); cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8));
return Result.success(); return Result.success();
} }

@ -89,7 +89,7 @@ public class OrderInfo {
orderId = 0L; orderId = 0L;
orderNum = plcCmdInfo.getOrderNum(); orderNum = plcCmdInfo.getOrderNum();
code = c; code = c;
cmdCode = c + ((leftRight == 1) ? "-L":"-R") + ((separation == 1) ? "":"-out"); cmdCode = c;
} }

@ -36,7 +36,7 @@ public class TaskDelayExecutor {
CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class); CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class);
CameraDelayTask cameraDelayTask = queue.take(); CameraDelayTask cameraDelayTask = queue.take();
if(cameraDelayTask != null){ if(cameraDelayTask != null){
System.out.println(LocalDateTime.now());
if(cameraDelayTask.getType() == 0){ if(cameraDelayTask.getType() == 0){
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime());
}else if(cameraDelayTask.getType() == 1){ }else if(cameraDelayTask.getType() == 1){

@ -266,7 +266,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule {
struDownloadCond.struStopTime = endTime; struDownloadCond.struStopTime = endTime;
struDownloadCond.write(); struDownloadCond.write();
log.info("start download mp4 path:{} ",path); log.info("start download mp4 path:{} ,cameraId:{}",path,cameraId);
int lUserID = CameraConnMap.getConnId(cameraId).intValue(); int lUserID = CameraConnMap.getConnId(cameraId).intValue();
int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime_V40(lUserID,path.getBytes(StandardCharsets.UTF_8),struDownloadCond); int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime_V40(lUserID,path.getBytes(StandardCharsets.UTF_8),struDownloadCond);

@ -187,8 +187,8 @@ public class CameraService {
CameraIO cameraIO = null; CameraIO cameraIO = null;
int ptzId = 0; int ptzId = 0;
if (IOId == null || IOId == 0) { if (IOId == null || IOId == 0) {
//中威从1开始 海康从300开始
ptzId = camera.getPtzId() == null ? (configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA?0:300) : camera.getPtzId(); ptzId = camera.getPtzId() == null ? 1 : camera.getPtzId();
ptzId = ptzId + 1; ptzId = ptzId + 1;
//新增 //新增
cameraIO = new CameraIO(); cameraIO = new CameraIO();

@ -146,11 +146,11 @@ public class PlcService {
update.setColumn2(plcCmdInfo.getColumn2()); update.setColumn2(plcCmdInfo.getColumn2());
update.setRow2(plcCmdInfo.getRow2()); update.setRow2(plcCmdInfo.getRow2());
if (street.getCamera1Id() != null) { if (street.getCamera1Id() != null) {
String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endTime.plusSeconds(5)); String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endTime.plusSeconds(3));
update.setVideoPath1(path); update.setVideoPath1(path);
} }
if (street.getCamera2Id() != null) { if (street.getCamera2Id() != null) {
String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endTime.plusSeconds(5)); String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endTime.plusSeconds(3));
update.setVideoPath2(path); update.setVideoPath2(path);
} }
orderMapper.updateById(update); orderMapper.updateById(update);
@ -174,7 +174,7 @@ 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",cameraId); String path = PathUtil.createFileName("mp4",cameraId);
String realPath = configProperties.getSavePath().getMp4Path() + path; String realPath = configProperties.getSavePath().getMp4Path() + path;
TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,7000L); TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,12000L);
//cameraControlModule.downloadMp4(cameraId,realPath,startTime,endTime); //cameraControlModule.downloadMp4(cameraId,realPath,startTime,endTime);
return path; return path;
} }
@ -233,6 +233,9 @@ public class PlcService {
public void gyrateCamera(PlcCmdInfo plcCmdInfo,String code){ public void gyrateCamera(PlcCmdInfo plcCmdInfo,String code){
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if(street == null){
return;
}
if(street.getCamera1Id() != null){ if(street.getCamera1Id() != null){
gyrateCameraByCode(street.getCamera1Id(),code); gyrateCameraByCode(street.getCamera1Id(),code);
} }

@ -13,6 +13,7 @@ import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.pojo.street.StreetType; import com.zhehekeji.web.pojo.street.StreetType;
import com.zhehekeji.web.pojo.street.StreetVO; import com.zhehekeji.web.pojo.street.StreetVO;
import com.zhehekeji.web.service.robotic.NettyClient; import com.zhehekeji.web.service.robotic.NettyClient;
import jdk.internal.org.objectweb.asm.Handle;
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.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
@ -27,7 +28,9 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j
@ -87,7 +90,7 @@ public class StreetService {
} }
}); });
thread.start(); thread.start();
if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null){ if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){
LightSource lightSource = new LightSource(); LightSource lightSource = new LightSource();
lightSource.setStreetId(street.getId()); lightSource.setStreetId(street.getId());
lightSource.setIp(streetVO.getLightSourceIp()); lightSource.setIp(streetVO.getLightSourceIp());
@ -139,6 +142,9 @@ public class StreetService {
} }
delByPlcId(street.getPlcId()); delByPlcId(street.getPlcId());
streetMapper.deleteById(id); streetMapper.deleteById(id);
Map<String,Object> map = new HashMap<>();
map.put("street_id",id);
lightSourceMapper.deleteByMap(map);
StreetConn.del(id); StreetConn.del(id);
} }
@ -198,17 +204,37 @@ public class StreetService {
} }
List<LightSource> list = lightSourceMapper.selectList(new QueryWrapper<LightSource>().eq("street_id",street.getId())); List<LightSource> list = lightSourceMapper.selectList(new QueryWrapper<LightSource>().eq("street_id",street.getId()));
if(list.size() == 0){ if(list.size() == 0){
if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){
LightSource lightSource = new LightSource(); LightSource lightSource = new LightSource();
lightSource.setPort(streetVO.getLightSourcePort());
lightSource.setIp(streetVO.getLightSourceIp());
lightSource.setStreetId(street.getId()); lightSource.setStreetId(street.getId());
lightSource.setIp(streetVO.getLightSourceIp());
lightSource.setPort(streetVO.getLightSourcePort());
lightSourceMapper.insert(lightSource); lightSourceMapper.insert(lightSource);
}
}else { }else {
LightSource lightSource = new LightSource(); LightSource lightSource = new LightSource();
lightSource.setPort(streetVO.getLightSourcePort()); lightSource.setPort(streetVO.getLightSourcePort());
lightSource.setIp(streetVO.getLightSourceIp()); lightSource.setIp(streetVO.getLightSourceIp());
lightSourceMapper.update(lightSource,new UpdateWrapper<LightSource>().eq("street_id",street.getId())); lightSourceMapper.update(lightSource,new UpdateWrapper<LightSource>().eq("street_id",street.getId()));
} }
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
if (StreetType.SINGLE.getType().equals(street.getLeftType())) {
stockService.init(street.getLeftShelveId(),street.getLeftRow(),street.getLeftColumn());
}else if(StreetType.DOUBLE.getType().equals(street.getLeftType())){
stockService.init(street.getLeftInsideShelveId(),street.getLeftRow(),street.getLeftColumn());
stockService.init(street.getLeftOutsideShelveId(),street.getLeftRow(),street.getLeftColumn());
}
if (StreetType.SINGLE.getType().equals(street.getRightType())) {
stockService.init(street.getRightShelveId(),street.getRightRow(),street.getRightColumn());
}else if (StreetType.DOUBLE.getType().equals(street.getRightType())) {
stockService.init(street.getRightInsideShelveId(),street.getRightRow(),street.getRightColumn());
stockService.init(street.getRightOutsideShelveId(),street.getRightRow(),street.getRightColumn());
}
}
});
thread2.start();
} }

@ -58,6 +58,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
tcpLogger.info("info:{}",body); tcpLogger.info("info:{}",body);
//任务 //任务
if (Cmd.B1.name().equals(cmdName)) { if (Cmd.B1.name().equals(cmdName)) {
//任务开始 旋转到原点位
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name()); plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStart(plcCmdInfo); plcService.orderStart(plcCmdInfo);
} else if (Cmd.B2.name().equals(cmdName)) { } else if (Cmd.B2.name().equals(cmdName)) {

@ -27,7 +27,7 @@ userUrl: http://115.236.65.98:11001
# ----默认摄像头的连接信息 # ----默认摄像头的连接信息
cameraConfig: cameraConfig:
# ------------球機選擇--- 0:中威 1海康 # ------------球機選擇--- 0:中威 1海康
cameraType: 0 cameraType: 1
cameraPassword: a1234567 cameraPassword: a1234567
cameraUser: admin cameraUser: admin
cameraPort: 37777 cameraPort: 37777
@ -38,7 +38,7 @@ cameraConfig:
# -----图片 mp4下载地址 # -----图片 mp4下载地址
savePath: savePath:
mediaPath: d:\\data\media\ mediaPath: d:\\data\media\
mp4Path: d:\\data\mp4\ mp4Path: d:\data\mp4\
# ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船) # ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船)
serverMode: 1 serverMode: 1
ksec: ksec:

Loading…
Cancel
Save