From c3e802fd10bbd22989a5167172188e6e969ebd4b Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Mon, 16 Oct 2023 10:04:37 +0800
Subject: [PATCH] 电子围栏
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/sdk/LoginResultCallBack.java | 43 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/sdk/LoginResultCallBack.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/sdk/LoginResultCallBack.java
index 66fb37b..3b8c8d9 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/sdk/LoginResultCallBack.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/sdk/LoginResultCallBack.java
@@ -10,9 +10,13 @@
import com.ruoyi.device.channel.service.IArdChannelService;
import com.ruoyi.device.hiksdk.common.GlobalVariable;
import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.media.domain.Vtdu;
+import com.ruoyi.media.service.IVtduService;
+import com.ruoyi.utils.forest.MediaClient;
import com.sun.jna.Pointer;
import lombok.extern.slf4j.Slf4j;
+import javax.annotation.Resource;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.PriorityBlockingQueue;
@@ -35,32 +39,56 @@
@Override
public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) {
+ MediaClient mediaClient=SpringUtils.getBean(MediaClient.class);
+ IVtduService vtduService = SpringUtils.getBean(IVtduService.class);
IArdChannelService ardChannelService = SpringUtils.getBean(IArdChannelService.class);
IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
if (GlobalVariable.loginMap.containsKey(camera.getId())) {
GlobalVariable.loginMap.remove(camera.getId());
}
+ //删除管理通道
+ ardChannelService.deleteArdChannelByDeviceId(camera.getId());
if (dwResult == 1) {
GlobalVariable.loginMap.put(camera.getId(), lUserID);
log.debug(camera.getIp() + ":" + camera.getPort() + "登录成功");
camera.setLoginId(lUserID);
+ camera.setState("1");
camera.setChanNum((int) lpDeviceinfo.byChanNum);
- camera.setStartDChan((int)lpDeviceinfo.byStartDChan);
-
+ camera.setStartDChan((int) lpDeviceinfo.byStartDChan);
//获取最新通道
List<ArdChannel> cameraChannelList = hikClientService.getCameraChannelList(camera);
- if(cameraChannelList.size()>0) {
- //删除管理通道
- ardChannelService.deleteArdChannelByDeviceId(camera.getId());
+ if (cameraChannelList.size() > 0) {
+ //添加通道
for (ArdChannel channel : cameraChannelList) {
channel.setId(IdUtils.simpleUUID());
ardChannelService.insertArdChannel(channel);
}
+ //配置到流媒体
+ for (ArdChannel channel : cameraChannelList) {
+ String name = camera.getId() + "_" + channel.getChanNo();
+ String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/h264/ch" + channel.getChanNo() + "/main/av_stream";
+ Vtdu vtdu = vtduService.selectVtduByName(name);
+ if (vtdu == null) {
+ //添加到流媒体
+ vtdu = new Vtdu();
+ vtdu.setRtspSource(rtspSource);
+ vtdu.setName(camera.getId() + "_" + channel.getChanNo());
+ vtdu.setIsCode("0");//默认不转码
+ vtdu.setMode("1");//默认CPU软解码
+ vtdu.setCameraId(camera.getId());
+ vtduService.insertVtdu(vtdu);
+ } else {
+ if (!rtspSource.equals(vtdu.getRtspSource())) {
+ //更新rtsp地址
+ vtdu.setRtspSource(rtspSource);
+ vtduService.updateVtdu(vtdu);
+ }
+ }
+ }
}
//创建引导队列
- if(!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId()))
- {
+ if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
@@ -70,6 +98,7 @@
log.debug(camera.getIp() + ":" + camera.getPort() + "登录失败");
camera.setChanNum(0);
camera.setLoginId(-1);
+ camera.setState("0");
}
ardCamerasService.updateArdCameras(camera);
return 1;
--
Gitblit v1.9.3