From 383081f244c77e75f0340fe242a65ce2580ca15d Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Tue, 31 Mar 2026 11:22:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E9=98=85=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E5=A4=84=E7=90=86=E5=92=8C=E4=BB=BB=E5=8A=A1=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceServiceImpl.java | 4 +-- .../impl/SubscribeTaskForAlarm.java | 14 ++++----- .../transmit/cmd/impl/SIPCommander.java | 31 +++++++++---------- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java index 4c46b58fe..738202f95 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java @@ -1080,11 +1080,11 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { return; } if (cycle > 0) { - // 目录订阅相关的信息 + // 报警订阅相关的信息 if (device.getSubscribeCycleForAlarm() > 0) { // 订阅周期不同,则先取消 removeAlarmSubscribe(device, result->{ - device.setSubscribeCycleForCatalog(cycle); + device.setSubscribeCycleForAlarm(cycle); updateDevice(device); // 开启订阅 addAlarmSubscribe(device, null); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java index 15927f343..5d896b9b0 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java @@ -12,15 +12,15 @@ public class SubscribeTaskForAlarm extends SubscribeTask { public static final String name = "alarm"; public static SubscribeTask getInstance(Device device, SubscribeCallback callback, SipTransactionInfo transactionInfo) { - if (device.getSubscribeCycleForCatalog() <= 0) { + if (device.getSubscribeCycleForAlarm() <= 0) { return null; } - SubscribeTaskForAlarm subscribeTaskForCatalog = new SubscribeTaskForAlarm(); - subscribeTaskForCatalog.setDelayTime((device.getSubscribeCycleForCatalog() * 1000L - 500L) + System.currentTimeMillis()); - subscribeTaskForCatalog.setDeviceId(device.getDeviceId()); - subscribeTaskForCatalog.setCallback(callback); - subscribeTaskForCatalog.setTransactionInfo(transactionInfo); - return subscribeTaskForCatalog; + SubscribeTaskForAlarm subscribeTaskForAlarm = new SubscribeTaskForAlarm(); + subscribeTaskForAlarm.setDelayTime((device.getSubscribeCycleForAlarm() * 1000L - 500L) + System.currentTimeMillis()); + subscribeTaskForAlarm.setDeviceId(device.getDeviceId()); + subscribeTaskForAlarm.setCallback(callback); + subscribeTaskForAlarm.setTransactionInfo(transactionInfo); + return subscribeTaskForAlarm; } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index 9cec2eabd..b0e6353e7 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -41,7 +41,6 @@ import javax.sip.SipFactory; import javax.sip.header.CallIdHeader; import javax.sip.message.Request; import java.text.ParseException; -import java.time.LocalDateTime; import java.util.List; /** @@ -1231,17 +1230,17 @@ public class SIPCommander implements ISIPCommander { cmdXml.append("Alarm\r\n"); cmdXml.append("" + (int) ((Math.random() * 9 + 1) * 100000) + "\r\n"); cmdXml.append("" + device.getDeviceId() + "\r\n"); - cmdXml.append("1\r\n"); - cmdXml.append("4/EndAlarmPriority>\r\n"); - cmdXml.append("0\r\n"); - - LocalDateTime nowDateTime = LocalDateTime.now(); - String startTime = DateUtil.formatterISO8601.format(nowDateTime); - // 退后一个月作为结束时间 - String endTime = DateUtil.formatterISO8601.format(nowDateTime.plusMonths(1)); - - cmdXml.append("" + startTime + "\r\n"); - cmdXml.append("" + endTime + "\r\n"); +// cmdXml.append("1\r\n"); +// cmdXml.append("4/EndAlarmPriority>\r\n"); +// cmdXml.append("0\r\n"); +// +// LocalDateTime nowDateTime = LocalDateTime.now(); +// String startTime = DateUtil.formatterISO8601.format(nowDateTime); +// // 退后一个月作为结束时间 +// String endTime = DateUtil.formatterISO8601.format(nowDateTime.plusMonths(1)); +// +// cmdXml.append("" + startTime + "\r\n"); +// cmdXml.append("" + endTime + "\r\n"); cmdXml.append("\r\n"); @@ -1253,14 +1252,14 @@ public class SIPCommander implements ISIPCommander { callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); } - int subscribeCycleForCatalog = device.getSubscribeCycleForCatalog(); - if (subscribeCycleForCatalog > 0) { + int subscribeCycleForAlarm = device.getSubscribeCycleForAlarm(); + if (subscribeCycleForAlarm > 0) { // 目录订阅有效期不小于 30 秒 - subscribeCycleForCatalog = Math.max(subscribeCycleForCatalog, 30); + subscribeCycleForAlarm = Math.max(subscribeCycleForAlarm, 30); } // 有效时间默认为60秒以上 - SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, subscribeCycleForCatalog, "presence", + SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, subscribeCycleForAlarm, "presence", callIdHeader); sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); return request;