From 25fca14e6224909811d96c348fc2427cf7fe13d1 Mon Sep 17 00:00:00 2001
From: gaofw189 <gaofw189@chinatelecom.cn>
Date: 星期一, 06 二月 2023 10:35:32 +0800
Subject: [PATCH] 修复WVP作为下级平台接受deviceControl指令的问题-修复指令响应
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java | 27 ++++++++++++++++-----------
1 files changed, 16 insertions(+), 11 deletions(-)
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 46e8e92..fa54a0f 100644
--- 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
@@ -131,16 +131,16 @@
handleRecordCmd(deviceForPlatform,channelId,rootElement,request,DeviceControlType.RECORD);
break;
case I_FRAME:
- handleIFameCmd(deviceForPlatform,channelId);
+ handleIFameCmd(deviceForPlatform,request,channelId);
break;
case TELE_BOOT:
- handleTeleBootCmd(deviceForPlatform);
+ handleTeleBootCmd(deviceForPlatform,request);
break;
case DRAG_ZOOM_IN:
- handleDragZoom(deviceForPlatform,channelId,rootElement,DeviceControlType.DRAG_ZOOM_IN);
+ handleDragZoom(deviceForPlatform,channelId,rootElement,request,DeviceControlType.DRAG_ZOOM_IN);
break;
case DRAG_ZOOM_OUT:
- handleDragZoom(deviceForPlatform,channelId,rootElement,DeviceControlType.DRAG_ZOOM_OUT);
+ handleDragZoom(deviceForPlatform,channelId,rootElement,request,DeviceControlType.DRAG_ZOOM_OUT);
break;
case HOME_POSITION:
handleHomePositionCmd(deviceForPlatform,channelId,rootElement,request,DeviceControlType.HOME_POSITION);
@@ -167,7 +167,6 @@
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 浜戝彴/鍓嶇: {}", e.getMessage());
}
-
}
/**
@@ -175,9 +174,10 @@
* @param device 璁惧
* @param channelId 閫氶亾id
*/
- private void handleIFameCmd(Device device,String channelId){
+ private void handleIFameCmd(Device device,SIPRequest request,String channelId){
try {
cmder.iFrameCmd(device,channelId);
+ responseAck(request, Response.OK);
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 寮哄埗鍏抽敭甯�: {}", e.getMessage());
}
@@ -187,9 +187,10 @@
* 澶勭悊閲嶅惎鍛戒护
* @param device 璁惧淇℃伅
*/
- private void handleTeleBootCmd(Device device){
+ private void handleTeleBootCmd(Device device,SIPRequest request){
try {
cmder.teleBootCmd(device);
+ responseAck(request, Response.OK);
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 閲嶅惎: {}", e.getMessage());
}
@@ -203,7 +204,7 @@
* @param rootElement 鏍硅妭鐐�
* @param type 娑堟伅绫诲瀷
*/
- private void handleDragZoom(Device device,String channelId,Element rootElement,DeviceControlType type){
+ private void handleDragZoom(Device device,String channelId,Element rootElement,SIPRequest request,DeviceControlType type){
String cmdString = getText(rootElement,type.getVal());
StringBuffer cmdXml = new StringBuffer(200);
cmdXml.append("<" + type.getVal() + ">\r\n");
@@ -211,6 +212,7 @@
cmdXml.append("</" + type.getVal() + ">\r\n");
try {
cmder.dragZoomCmd(device,channelId,cmdXml.toString());
+ responseAck(request, Response.OK);
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 鎷夋鎺у埗: {}", e.getMessage());
}
@@ -255,7 +257,8 @@
}
try {
cmder.alarmCmd(device, alarmMethod,alarmType,
- errorResult -> onError(request,errorResult));
+ errorResult -> onError(request,errorResult),
+ okResult -> onOk(request,okResult));
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 鍛婅娑堟伅: {}", e.getMessage());
}
@@ -274,7 +277,8 @@
String cmdString = getText(rootElement,type.getVal());
try {
cmder.recordCmd(device, channelId,cmdString,
- errorResult -> onError(request,errorResult));
+ errorResult -> onError(request,errorResult),
+ okResult -> onOk(request,okResult));
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 褰曞儚鎺у埗: {}", e.getMessage());
}
@@ -292,7 +296,8 @@
String cmdString = getText(rootElement,type.getVal());
try {
cmder.guardCmd(device, cmdString,
- errorResult -> onError(request,errorResult));
+ errorResult -> onError(request,errorResult),
+ okResult -> onOk(request,okResult));
} catch (InvalidArgumentException | SipException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 甯冮槻/鎾ら槻鍛戒护: {}", e.getMessage());
}
--
Gitblit v1.8.0