From 936fb552a30c05fc7a60c20f47bf6fccbc2dc1c1 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 27 十二月 2023 16:17:23 +0800
Subject: [PATCH] 备份一下代码
---
HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java | 131 +++++++++++++++++++++----------------------
1 files changed, 63 insertions(+), 68 deletions(-)
diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java
index e38c3ad..47347c1 100644
--- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java
+++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java
@@ -11,9 +11,9 @@
import com.hdl.sdk.link.common.utils.LogUtils;
import com.hdl.sdk.link.core.bean.LinkRequest;
import com.hdl.sdk.link.core.bean.LinkResponse;
+import com.hdl.sdk.link.core.bean.ModbusResponse;
import com.hdl.sdk.link.core.bean.ZigbeeResponse;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
-import com.hdl.sdk.link.core.callback.BaseCallBack;
import com.hdl.sdk.link.core.callback.ModbusCallBack;
import com.hdl.sdk.link.core.callback.ZigbeeCallBack;
import com.hdl.sdk.link.core.config.HDLLinkConfig;
@@ -25,12 +25,12 @@
*/
public class HDLModBusConnect {
- private static final String TAG="HDLModbusConnect";
+ private static final String TAG = "HDLModbusConnect";
private static HDLModBusConnect instance;
/**
- * 鍐呴儴鐢紝涓昏鏄鐞嗗鐞嗘帀閫忎紶涓婚鍙妉ink涓婚鍚庯紝杩樺師Zigbee鍘熺敓鏁版嵁鍙婁富棰樼敤
+ * 鍐呴儴鐢紝涓昏鏄鐞嗗鐞嗘帀閫忎紶涓婚鍙妉ink涓婚鍚庯紝杩樺師modbus鍘熺敓鏁版嵁鍙婁富棰樼敤
*/
- private final String zigbeeAllTopic = "/Modbus";
+ private final String allTopic = "/Modbus";
/**
* 杩斿洖褰撳墠瀹炰緥锛屼笉瀛樺湪灏卞垱寤哄苟鍚屾椂娉ㄥ唽鐩戝惉浜嬩欢
@@ -51,10 +51,10 @@
* @param eventListener
*/
public void registerListener(EventListener eventListener) {
- if(null==eventListener){
+ if (null == eventListener) {
return;
}
- EventDispatcher.getInstance().register(zigbeeAllTopic, eventListener);
+ EventDispatcher.getInstance().register(allTopic, eventListener);
}
/**
@@ -63,10 +63,10 @@
* @param eventListener
*/
public void removeListener(EventListener eventListener) {
- if(null==eventListener){
+ if (null == eventListener) {
return;
}
- EventDispatcher.getInstance().remove(zigbeeAllTopic, eventListener);
+ EventDispatcher.getInstance().remove(allTopic, eventListener);
}
/**
@@ -76,62 +76,56 @@
final EventListener eventListener = new EventListener() {
@Override
public void onMessage(Object msg) {
-// try {
-// if (msg instanceof LinkResponse) {
-// LinkResponse linkResponse = (LinkResponse) msg;
-// String body = linkResponse.getData();
-// int index = body.indexOf("{");
-// //zigbee鍥炲鐨勬暟鎹墠鏈変富棰橈紝鍚庨潰鎵嶆槸鏁版嵁
-// if (index <= 0)
-// return;
-//
-// String zigbeeTopic = body.substring(0, index).trim();
-// //zigbee鐨勮礋杞芥暟鎹�
-// String bodyData = body.substring(index);
-//
-// ZigbeeResponse zigbeeResponse = new ZigbeeResponse();
-// zigbeeResponse.setTopic(zigbeeTopic);
-// zigbeeResponse.setData(bodyData);
-// String oid = null;
-// //鏄惁鏄�氳繃涓荤綉鍏抽�忎紶涓婚
-// if (linkResponse.getTopic().contains("/slaveoid/")) {
-// oid = linkResponse.getTopic().split("/")[8];
-// } else {
-// oid = linkResponse.getTopic().split("/")[2];
-// }
-// zigbeeResponse.setOid(oid);
-// for (GatewayBean gatewayBean : HDLLinkLocalGateway.getInstance().getGatewayList()) {
-// if (oid.equals(gatewayBean.getGatewayId()) || oid.equals(gatewayBean.getDevice_mac()) || oid.equals(gatewayBean.getOid())) {
-// //涓婇潰鐨刼id鍙兘鏄綉鍏砳d鎴栬�卪ac鎴栬�呮槸oid锛屼笉绠℃槸鍝釜缁熶竴浣跨敤oid琛ㄧず鏂瑰紡
-// zigbeeResponse.setOid(gatewayBean.getOid());
-// break;
-// }
-// }
-// EventDispatcher.getInstance().post(zigbeeTopic, zigbeeResponse);
-// //鍙戝竷Zigbee鍘熺敓涓婚鍙婃暟鎹�
-// EventDispatcher.getInstance().post(zigbeeAllTopic, zigbeeResponse);
-// }
-// } catch (Exception e) {
-// LogUtils.e(TAG,"LinkResponse杞琙igbeeResponse寮傚父:"+ e.getMessage());
-// }
+ try {
+ if (msg instanceof LinkResponse) {
+ LinkResponse linkResponse = (LinkResponse) msg;
+ if (linkResponse.getTopic() == null || !linkResponse.getTopic().contains("custom/native/inverter/up")) {
+ return;
+ }
+ byte[] data = linkResponse.getByteData();
+ ModbusResponse modbusResponse = new ModbusResponse();
+ String topic = "Modbus" + data[0] + data[1];
+ modbusResponse.setTopic(topic);
+ modbusResponse.setData(data);
+ String oid = null;
+ //鏄惁鏄�氳繃涓荤綉鍏抽�忎紶涓婚
+ if (linkResponse.getTopic().contains("/slaveoid/")) {
+ oid = linkResponse.getTopic().split("/")[8];
+ } else {
+ oid = linkResponse.getTopic().split("/")[2];
+ }
+ modbusResponse.setOid(oid);
+ for (GatewayBean gatewayBean : HDLLinkLocalGateway.getInstance().getGatewayList()) {
+ if (oid.equals(gatewayBean.getGatewayId()) || oid.equals(gatewayBean.getDevice_mac()) || oid.equals(gatewayBean.getOid())) {
+ //涓婇潰鐨刼id鍙兘鏄綉鍏砳d鎴栬�卪ac鎴栬�呮槸oid锛屼笉绠℃槸鍝釜缁熶竴浣跨敤oid琛ㄧず鏂瑰紡
+ modbusResponse.setOid(gatewayBean.getOid());
+ break;
+ }
+ }
+
+ EventDispatcher.getInstance().post(topic, modbusResponse);
+ //鍙戝竷Zigbee鍘熺敓涓婚鍙婃暟鎹�
+// EventDispatcher.getInstance().post(allTopic, modbusResponse);
+ }
+ } catch (Exception e) {
+ LogUtils.e(TAG, "LinkResponse杞琈odbusResponse寮傚父:" + e.getMessage());
+ }
}
};
//娉ㄥ唽鐩存帴閫氳鐨勪富棰橈紝鍖呮嫭鐩存帴鍜屼富缃戝叧閫氳鎴栬�呯洿鎺ュ拰浠庣綉鍏抽�氳
registerListener(String.format(TopicConstant.NATIVE_MODBUS_UP, "+"), eventListener);
- registerListener(String.format(TopicConstant.NATIVE_MODBUS_DOWN_REPLY, "+"), eventListener);
-
- // registerListener(String.format(TopicConstant.NATIVE_ZIGBEE_UP_SLAVE, "+", "+"), eventListener);
+ //registerListener(String.format(TopicConstant.NATIVE_MODBUS_DOWN_REPLY, "+"), eventListener);
+ //registerListener(String.format(TopicConstant.NATIVE_ZIGBEE_UP_SLAVE, "+", "+"), eventListener);
}
/**
* 鍙戦�佸師鐢熸暟鎹�
*
* @param gatewayOidOrGatewayId 鐩爣缃戝叧鐨刼id鎴栬�呯綉鍏矷d
- * @param responeTopic 鍥炲涓婚
* @param payload 鍙戦�佹暟鎹�
- * @param baseCallBack 缁撴灉鍥炶皟
+ * @param baseCallBack 缁撴灉鍥炶皟
*/
- public void Send(String gatewayOidOrGatewayId,String responeTopic, String payload, final ModbusCallBack baseCallBack) {
+ public void Send(String gatewayOidOrGatewayId, byte[] payload, final ModbusCallBack baseCallBack) {
//濡傛灉鏈湴鏈夐摼鎺ヨ繖涓綉鍏�,鍒欑敤鏈湴杩炴帴
GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayByOidOrGatewayId(gatewayOidOrGatewayId);
if (null == gatewayBean) {
@@ -145,22 +139,24 @@
String tempTopic = String.format(TopicConstant.NATIVE_MODBUS_DOWN, gatewayOidOrGatewayId);
LinkRequest request = new LinkRequest(tempTopic, payload, gatewayBean.getIsLocalEncrypt());
- if ("true".equals(gatewayBean.getMaster())) {
- request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN, HDLLinkConfig.getInstance().getGatewayId()));
- } else {
- request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayOidOrGatewayId));
- }
- request.setReplyTopic(responeTopic);
- long timeout = 2 * 1000;
+// if ("true".equals(gatewayBean.getMaster())) {
+ request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN, HDLLinkConfig.getInstance().getGatewayId()));
+// } else {
+// request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayOidOrGatewayId));
+// }
+ request.setReplyTopic("Modbus" + payload[0] + payload[1]);
+ long timeout = 5 * 1000;
new HDLConnectHelper(timeout, 1, gatewayBean.getIp_address(), 8586, request, new HDLConnectHelper.HdlSocketListener() {
@Override
public void onSucceed(Object msg) {
-// if (msg instanceof String) {
-// if (null != baseCallBack) {
-// baseCallBack.onSuccess(msg+"");
-// }
-// }
+ if (msg instanceof int[]) {
+ if (null != baseCallBack) {
+ baseCallBack.onSuccess((int[]) msg);
+ }
+ } else {
+ LogUtils.e("鍙戦�丮odbus鍥炶皟瀵硅薄绫诲瀷闈炴暟缁勭被鍨嬶紝绫诲瀷鏄�" + msg.getClass());
+ }
}
@Override
@@ -171,7 +167,6 @@
}
}, true).send();
}
-
/**
@@ -261,12 +256,12 @@
/**
* 澶勭悊zigbee鍥炲鐨勬暟鎹�
*
- * @param responeTopic 鍥炲涓婚
- * @param linkResponse 鍥炲鐨勯�忎紶鏁版嵁
+ * @param responeTopic 鍥炲涓婚
+ * @param linkResponse 鍥炲鐨勯�忎紶鏁版嵁
*/
private static String getZigbeeData(String responeTopic, LinkResponse linkResponse) {
//涓婚涓虹┖涓嶅鐞�
- if(TextUtils.isEmpty(responeTopic)){
+ if (TextUtils.isEmpty(responeTopic)) {
return null;
}
--
Gitblit v1.8.0