Browse Source

固定IP路径

master
hsc 5 months ago
parent
commit
d28dd084f2
1 changed files with 66 additions and 48 deletions
  1. +66
    -48
      src/main/java/com/inspect/nvr/service/impl/IvsCameraServiceImpl.java

+ 66
- 48
src/main/java/com/inspect/nvr/service/impl/IvsCameraServiceImpl.java View File

@ -27,6 +27,7 @@ import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -51,14 +52,19 @@ public class IvsCameraServiceImpl implements IvsCameraService {
@Override
public PtzControlResult ptzControl(PtzControlParam param) {
Camera camera = new Camera();
Camera camera = new Camera();
//赋值
camera.setIp("192.168.1.249");
camera.setPort(8000);
camera.setUserName("admin");
camera.setPassword("htjc2018");
camera.setChannel(39);
camera.setPointNum(1);
lUserID = (Integer) redisService.redisTemplate.opsForValue().get(camera.getIp() + "_userId");
if (ObjectUtil.isEmpty(lUserID)){
NvrInfo nvrInfo= new NvrInfo();
if (ObjectUtil.isEmpty(lUserID)) {
NvrInfo nvrInfo = new NvrInfo();
nvrInfo.setNvrIp(camera.getIp());
nvrInfo.setServerPort(camera.getPort());
nvrInfo.setAccount(camera.getUserName());
@ -89,8 +95,49 @@ public class IvsCameraServiceImpl implements IvsCameraService {
@Override
public SnapshotCommandResult platformSnapshot(String cameraCode, String domainCode, SnapshotCommandParam param) {
Camera camera = new Camera();
SnapshotCommandResult snapshotCommandResult =
SnapshotCommandResult.builder()
.taskID("0123456789")
.build();
return snapshotCommandResult;
}
@Override
public SnapshotInfoListResult getSnapshotList(SnapshotInfoListParam param) {
SnapshotInfoListResult.SnapshotInfoList snapshotInfoList = new SnapshotInfoListResult.SnapshotInfoList();
List<SnapshotInfoListResult.SnapshotInfo> infoList = new ArrayList<>();
infoList.add(
SnapshotInfoListResult.SnapshotInfo.builder()
.pictureUrl("http://192.168.1.172:18539/downloadfile?filesessionid=HQ3HLF98QI6T645DSNVO4S066S00")
.cameraCode("01969538357008970118")
.build());
snapshotInfoList.setTotal(1);
snapshotInfoList.setSnapshotInfos(infoList);
SnapshotInfoListResult snapshotInfoListResult =
SnapshotInfoListResult.builder()
.snapshotInfoList(snapshotInfoList)
.build();
return snapshotInfoListResult;
}
@Override
public ByteArrayInputStream downloadFile(String fileSessionId) {
if (testMode) {
try {
return new ByteArrayInputStream(loadDefaultImage());
} catch (IOException e) {
throw new RuntimeException("测试环境生成错误图片失败", e);
}
}
// 从nvr或者camera下载图片, 开发中
Camera camera = new Camera();
//赋值
camera.setIp("192.168.1.195");
camera.setPort(8000);
camera.setUserName("admin");
camera.setPassword("htjc2018");
camera.setChannel(2);
//从redis中获取lUserID(存在时间200)
lUserID = (Integer) redisService.redisTemplate.opsForValue().get(camera.getIp() + "_userId");
@ -114,65 +161,36 @@ public class IvsCameraServiceImpl implements IvsCameraService {
// 2. 创建临时存储目录系统临时目录更安全
Path tempDir = Paths.get(System.getProperty("java.io.tmpdir"), "hik_capture");
// 生成唯一文件名IP+时间戳
String fileName = String.format("%s_%s.jpg", camera.getIp(), DateUtils.dateTimeNow("yyyyMMddHHmmss"));
Path tempImagePath = tempDir.resolve(fileName);
try {
if (!Files.exists(tempDir)) {
Files.createDirectories(tempDir);
}
// 3. 生成唯一文件名IP+时间戳
String fileName = String.format("%s_%s.jpg", camera.getIp(), DateUtils.dateTimeNow("yyyyMMddHHmmss"));
Path tempImagePath = tempDir.resolve(fileName);
boolean b = hcNetSDK.NET_DVR_CaptureJPEGPicture(lUserID, camera.getChannel(), dvrJpegpara,
tempImagePath.toString().getBytes("GBK"));
if (!b) {
System.out.println("设置设备进行抓图失败,错误码:" + hcNetSDK.NET_DVR_GetLastError());
// System.out.println("设置设备进行抓图失败,错误码:" + hcNetSDK.NET_DVR_GetLastError());
log.error("设置设备进行抓图失败,错误码:" + hcNetSDK.NET_DVR_GetLastError());
}
//图片流
InputStream inputStream = Files.newInputStream(tempImagePath);
byte[] bytes = StreamUtils.copyToByteArray(inputStream);
// 确保删除临时文件
Files.deleteIfExists(tempImagePath);
return new ByteArrayInputStream(bytes);
} catch (Exception e) {
log.error("抓图失败"+e.getMessage());
log.error("抓图失败" + e.getMessage());
return null;
}
SnapshotCommandResult snapshotCommandResult =
SnapshotCommandResult.builder()
.taskID("0123456789")
.build();
return snapshotCommandResult;
}
@Override
public SnapshotInfoListResult getSnapshotList(SnapshotInfoListParam param) {
SnapshotInfoListResult.SnapshotInfoList snapshotInfoList = new SnapshotInfoListResult.SnapshotInfoList();
List<SnapshotInfoListResult.SnapshotInfo> infoList = new ArrayList<>();
infoList.add(
SnapshotInfoListResult.SnapshotInfo.builder()
.pictureUrl("http://192.168.1.172:18539/downloadfile?filesessionid=HQ3HLF98QI6T645DSNVO4S066S00")
.cameraCode("01969538357008970118")
.build());
snapshotInfoList.setTotal(1);
snapshotInfoList.setSnapshotInfos(infoList);
SnapshotInfoListResult snapshotInfoListResult =
SnapshotInfoListResult.builder()
.snapshotInfoList(snapshotInfoList)
.build();
return snapshotInfoListResult;
}
@Override
public ByteArrayInputStream downloadFile(String fileSessionId) {
if (testMode) {
try {
return new ByteArrayInputStream(loadDefaultImage());
} catch (IOException e) {
throw new RuntimeException("测试环境生成错误图片失败", e);
}
}
// 从nvr或者camera下载图片, 开发中
return null;
}
public byte[] loadDefaultImage() throws IOException {
@ -194,7 +212,7 @@ public class IvsCameraServiceImpl implements IvsCameraService {
System.out.println(":设备登录成功!" + lUserID);
// birdNvrMapper.updateNvrInfo(nvrInfo);
// redisTemplate.opsForValue().set(nvrInfo.getNvrIp() + "_userId", lUserID);
redisService.setCacheObject(nvrInfo.getNvrIp() + "_userId", lUserID,200L, TimeUnit.SECONDS);
redisService.setCacheObject(nvrInfo.getNvrIp() + "_userId", lUserID, 200L, TimeUnit.SECONDS);
//若果设备序列号为空时即为第一次登陆写入基础数据
if (nvrInfo.getNvrSerial() == null || nvrInfo.getNvrSerial().equals("")) {
m_strDeviceInfo.read();


Loading…
Cancel
Save