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