From 486daf4dfece971986ec202e10db6f3a7d456fbd Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: Fri, 29 Mar 2024 19:18:34 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9C=8B=E5=AE=88=E4=BD=8D?=
=?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gb28181/transmit/cmd/ISIPCommander.java | 7 +------
.../transmit/cmd/impl/SIPCommander.java | 16 ++++------------
.../cmd/DeviceControlQueryMessageHandler.java | 2 +-
.../vmanager/gb28181/device/DeviceControl.java | 18 ++++++++----------
4 files changed, 14 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
index d48e3a8b..66589a8c 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
@@ -220,13 +220,8 @@ public interface ISIPCommander {
/**
* 看守位控制命令
*
- * @param device 视频设备
- * @param channelId 通道id,非通道则是设备本身
- * @param enabled 看守位使能:1 = 开启,0 = 关闭
- * @param resetTime 自动归位时间间隔,开启看守位时使用,单位:秒(s)
- * @param presetIndex 调用预置位编号,开启看守位时使用,取值范围0~255
*/
- void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException;
+ void homePositionCmd(Device device, String channelId, Boolean enabled, Integer resetTime, Integer presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException;
/**
* 设备配置命令
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 723c715f..3a5f812b 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
@@ -880,7 +880,7 @@ public class SIPCommander implements ISIPCommander {
* @param presetIndex 调用预置位编号,开启看守位时使用,取值范围0~255
*/
@Override
- public void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException {
+ public void homePositionCmd(Device device, String channelId, Boolean enabled, Integer resetTime, Integer presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException {
StringBuffer cmdXml = new StringBuffer(200);
String charset = device.getCharset();
@@ -894,18 +894,10 @@ public class SIPCommander implements ISIPCommander {
cmdXml.append("" + channelId + "\r\n");
}
cmdXml.append("\r\n");
- if (NumericUtil.isInteger(enabled) && (!enabled.equals("0"))) {
+ if (enabled) {
cmdXml.append("1\r\n");
- if (NumericUtil.isInteger(resetTime)) {
- cmdXml.append("" + resetTime + "\r\n");
- } else {
- cmdXml.append("0\r\n");
- }
- if (NumericUtil.isInteger(presetIndex)) {
- cmdXml.append("" + presetIndex + "\r\n");
- } else {
- cmdXml.append("0\r\n");
- }
+ cmdXml.append("" + resetTime + "\r\n");
+ cmdXml.append("" + presetIndex + "\r\n");
} else {
cmdXml.append("0\r\n");
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java
index b2dd76b5..23adac13 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java
@@ -248,7 +248,7 @@ public class DeviceControlQueryMessageHandler extends SIPRequestProcessorParent
HomePositionRequest homePosition = loadElement(rootElement, HomePositionRequest.class);
//获取整个消息主体,我们只需要修改请求头即可
HomePositionRequest.HomePosition info = homePosition.getHomePosition();
- cmder.homePositionCmd(device, channelId, info.getEnabled(), info.getResetTime(), info.getPresetIndex(),
+ cmder.homePositionCmd(device, channelId, !"0".equals(info.getEnabled()), Integer.parseInt(info.getResetTime()), Integer.parseInt(info.getPresetIndex()),
errorResult -> onError(request, errorResult),
okResult -> onOk(request, okResult));
} catch (Exception e) {
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java
index 85f516a3..2f5a5894 100755
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java
@@ -13,7 +13,7 @@ import com.genersoft.iot.vmp.conf.security.JwtUtils;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
-import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
+import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import io.swagger.v3.oas.annotations.Operation;
@@ -45,7 +45,7 @@ public class DeviceControl {
private IVideoManagerStorage storager;
@Autowired
- private SIPCommander cmder;
+ private ISIPCommander cmder;
@Autowired
private DeferredResultHolder resultHolder;
@@ -254,15 +254,13 @@ public class DeviceControl {
@Operation(summary = "看守位控制", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
@Parameter(name = "channelId", description = "通道国标编号", required = true)
- @Parameter(name = "enabled", description = "是否开启看守位 1:开启,0:关闭", required = true)
+ @Parameter(name = "enabled", description = "是否开启看守位", required = true)
@Parameter(name = "presetIndex", description = "调用预置位编号")
- @Parameter(name = "resetTime", description = "自动归位时间间隔")
- @GetMapping("/home_position/{deviceId}/{enabled}")
- public DeferredResult homePositionApi(@PathVariable String deviceId,
- @PathVariable String enabled,
- @RequestParam(required = false) String resetTime,
- @RequestParam(required = false) String presetIndex,
- String channelId) {
+ @Parameter(name = "resetTime", description = "自动归位时间间隔 单位:秒")
+ @GetMapping("/home_position")
+ public DeferredResult homePositionApi(String deviceId, String channelId, Boolean enabled,
+ @RequestParam(required = false) Integer resetTime,
+ @RequestParam(required = false) Integer presetIndex) {
if (logger.isDebugEnabled()) {
logger.debug("报警复位API调用");
}