Преглед на файлове

调整看守位控制接口

648540858 преди 1 година
родител
ревизия
486daf4dfe

+ 1 - 6
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;
 
 	/**
 	 * 设备配置命令

+ 4 - 12
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("<DeviceID>" + channelId + "</DeviceID>\r\n");
         }
         cmdXml.append("<HomePosition>\r\n");
-        if (NumericUtil.isInteger(enabled) && (!enabled.equals("0"))) {
+        if (enabled) {
             cmdXml.append("<Enabled>1</Enabled>\r\n");
-            if (NumericUtil.isInteger(resetTime)) {
-                cmdXml.append("<ResetTime>" + resetTime + "</ResetTime>\r\n");
-            } else {
-                cmdXml.append("<ResetTime>0</ResetTime>\r\n");
-            }
-            if (NumericUtil.isInteger(presetIndex)) {
-                cmdXml.append("<PresetIndex>" + presetIndex + "</PresetIndex>\r\n");
-            } else {
-                cmdXml.append("<PresetIndex>0</PresetIndex>\r\n");
-            }
+            cmdXml.append("<ResetTime>" + resetTime + "</ResetTime>\r\n");
+            cmdXml.append("<PresetIndex>" + presetIndex + "</PresetIndex>\r\n");
         } else {
             cmdXml.append("<Enabled>0</Enabled>\r\n");
         }

+ 1 - 1
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) {

+ 8 - 10
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<String> 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<String> homePositionApi(String deviceId, String channelId, Boolean enabled,
+												  @RequestParam(required = false) Integer resetTime,
+												  @RequestParam(required = false) Integer presetIndex) {
         if (logger.isDebugEnabled()) {
 			logger.debug("报警复位API调用");
 		}