From a2bea34ac114e5b37dfb3b61612dc2e2a9112bd9 Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期日, 14 三月 2021 21:03:53 +0800
Subject: [PATCH] 增加上级平台查询DeviceInfo和DeviceStatus的响应功能
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 70 ++++++++++++++++++++++++++++++++++
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java | 19 +++++++++
2 files changed, 88 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
index 5c4b8af..1751ede 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
@@ -42,4 +42,23 @@
* @return
*/
boolean catalogQuery(DeviceChannel channel, ParentPlatform parentPlatform, String sn, String fromTag, int size);
+
+ /**
+ * 鍚戜笂绾у洖澶岲eviceInfo鏌ヨ淇℃伅
+ * @param parentPlatform 骞冲彴淇℃伅
+ * @param sn
+ * @param fromTag
+ * @return
+ */
+ boolean deviceInfoResponse(ParentPlatform parentPlatform, String sn, String fromTag);
+
+ /**
+ * 鍚戜笂绾у洖澶岲eviceStatus鏌ヨ淇℃伅
+ * @param parentPlatform 骞冲彴淇℃伅
+ * @param sn
+ * @param fromTag
+ * @return
+ */
+ boolean deviceStatusResponse(ParentPlatform parentPlatform, String sn, String fromTag);
+
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
index 28761ed..d5e380b 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -118,7 +118,7 @@
try {
StringBuffer keepaliveXml = new StringBuffer(200);
- keepaliveXml.append("<?xml version=\"1.0\"?>\r\n");//" encoding=\"GB2312\"?>\r\n");
+ keepaliveXml.append("<?xml version=\"1.0\"?>\r\n");
keepaliveXml.append("<Notify>\r\n");
keepaliveXml.append("<CmdType>Keepalive</CmdType>\r\n");
keepaliveXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
@@ -217,4 +217,72 @@
}
return true;
}
+
+ /**
+ * 鍚戜笂绾у洖澶岲eviceInfo鏌ヨ淇℃伅
+ * @param parentPlatform 骞冲彴淇℃伅
+ * @param sn
+ * @param fromTag
+ * @return
+ */
+ @Override
+ public boolean deviceInfoResponse(ParentPlatform parentPlatform, String sn, String fromTag) {
+ if (parentPlatform == null) {
+ return false;
+ }
+ try {
+ StringBuffer deviceInfoXml = new StringBuffer(600);
+ deviceInfoXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
+ deviceInfoXml.append("<Response>\r\n");
+ deviceInfoXml.append("<CmdType>DeviceInfo</CmdType>\r\n");
+ deviceInfoXml.append("<SN>" +sn + "</SN>\r\n");
+ deviceInfoXml.append("<DeviceID>" + parentPlatform.getDeviceGBId() + "</DeviceID>\r\n");
+ deviceInfoXml.append("<DeviceName>GB28181 Video Platform</DeviceName>\r\n");
+ deviceInfoXml.append("<Manufacturer>Manufacturer</Manufacturer>\r\n");
+ deviceInfoXml.append("<Model>wvp-28181</Model>\r\n");
+ deviceInfoXml.append("<Firmware>2.0.202103</Firmware>\r\n");
+ deviceInfoXml.append("<Result>OK</Result>\r\n");
+ deviceInfoXml.append("</Response>\r\n");
+ Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag);
+ transmitRequest(parentPlatform, request);
+
+ } catch (SipException | ParseException | InvalidArgumentException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 鍚戜笂绾у洖澶岲eviceStatus鏌ヨ淇℃伅
+ * @param parentPlatform 骞冲彴淇℃伅
+ * @param sn
+ * @param fromTag
+ * @return
+ */
+ @Override
+ public boolean deviceStatusResponse(ParentPlatform parentPlatform, String sn, String fromTag) {
+ if (parentPlatform == null) {
+ return false;
+ }
+ try {
+ StringBuffer deviceStatusXml = new StringBuffer(600);
+ deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
+ deviceStatusXml.append("<Response>\r\n");
+ deviceStatusXml.append("<CmdType>DeviceStatus</CmdType>\r\n");
+ deviceStatusXml.append("<SN>" +sn + "</SN>\r\n");
+ deviceStatusXml.append("<DeviceID>" + parentPlatform.getDeviceGBId() + "</DeviceID>\r\n");
+ deviceStatusXml.append("<Result>OK</Result>\r\n");
+ deviceStatusXml.append("<Online>ONLINE</Online>\r\n");
+ deviceStatusXml.append("<Status>OK</Status>\r\n");
+ deviceStatusXml.append("</Response>\r\n");
+ Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag);
+ transmitRequest(parentPlatform, request);
+
+ } catch (SipException | ParseException | InvalidArgumentException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
}
--
Gitblit v1.8.0