From dc8ae12444d1d887394eb525e2b80dd120dc4c87 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 20 二月 2024 13:43:56 +0800
Subject: [PATCH] Merge branch 'wjc' into dev-hxb
---
HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 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 addf469..324b7fe 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
@@ -79,7 +79,7 @@
try {
if (msg instanceof LinkResponse) {
LinkResponse linkResponse = (LinkResponse) msg;
- if (linkResponse.getTopic() == null || !linkResponse.getTopic().contains("custom/native/inverter/")) {
+ if (linkResponse.getTopic() == null || !linkResponse.getTopic().contains("custom/native/inverter/up")) {
return;
}
byte[] data = linkResponse.getByteData();
@@ -102,6 +102,7 @@
break;
}
}
+
EventDispatcher.getInstance().post(topic, modbusResponse);
//鍙戝竷Zigbee鍘熺敓涓婚鍙婃暟鎹�
// EventDispatcher.getInstance().post(allTopic, modbusResponse);
@@ -117,6 +118,7 @@
//registerListener(String.format(TopicConstant.NATIVE_ZIGBEE_UP_SLAVE, "+", "+"), eventListener);
}
+
/**
* 鍙戦�佸師鐢熸暟鎹�
*
@@ -125,6 +127,25 @@
* @param baseCallBack 缁撴灉鍥炶皟
*/
public void Send(String gatewayOidOrGatewayId, byte[] payload, final ModbusCallBack baseCallBack) {
+ Send(gatewayOidOrGatewayId, payload, 5, baseCallBack);
+ }
+
+ /**
+ * 鍙戦�佸師鐢熸暟鎹�
+ *
+ * @param gatewayOidOrGatewayId 鐩爣缃戝叧鐨刼id鎴栬�呯綉鍏矷d
+ * @param payload 鍙戦�佹暟鎹�
+ * @param timeout 瓒呮椂鏃堕棿(s)
+ * @param baseCallBack 缁撴灉鍥炶皟
+ */
+ public void Send(String gatewayOidOrGatewayId, byte[] payload, int timeout, final ModbusCallBack baseCallBack) {
+ if (payload == null || payload.length == 0) {
+ if (baseCallBack != null) {
+ baseCallBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
+ System.out.println("鍙戦�佹暟鎹椂璐熻浇鏁版嵁鏄┖鐨�--->");
+ }
+ return;
+ }
//濡傛灉鏈湴鏈夐摼鎺ヨ繖涓綉鍏�,鍒欑敤鏈湴杩炴帴
GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayByOidOrGatewayId(gatewayOidOrGatewayId);
if (null == gatewayBean) {
@@ -136,7 +157,7 @@
}
String tempTopic = String.format(TopicConstant.NATIVE_MODBUS_DOWN, gatewayOidOrGatewayId);
- LinkRequest request = new LinkRequest(tempTopic, payload, gatewayBean.getIsLocalEncrypt());
+ LinkRequest request = new LinkRequest(tempTopic, payload, gatewayBean.getIsLocalEncrypt());//瑕佷笉瑕佸姞瀵�
// if ("true".equals(gatewayBean.getMaster())) {
request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN, HDLLinkConfig.getInstance().getGatewayId()));
@@ -144,14 +165,14 @@
// request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayOidOrGatewayId));
// }
request.setReplyTopic("Modbus" + payload[0] + payload[1]);
- long timeout = 2 * 1000;
+ long awaitTime = timeout * 1000L;
- new HDLConnectHelper(timeout, 1, gatewayBean.getIp_address(), 8586, request, new HDLConnectHelper.HdlSocketListener() {
+ new HDLConnectHelper(awaitTime, 1, gatewayBean.getIp_address(), 8586, request, new HDLConnectHelper.HdlSocketListener() {
@Override
public void onSucceed(Object msg) {
- if (msg instanceof byte[]) {
+ if (msg instanceof int[]) {
if (null != baseCallBack) {
- baseCallBack.onSuccess((byte[]) msg);
+ baseCallBack.onSuccess((int[]) msg);
}
} else {
LogUtils.e("鍙戦�丮odbus鍥炶皟瀵硅薄绫诲瀷闈炴暟缁勭被鍨嬶紝绫诲瀷鏄�" + msg.getClass());
--
Gitblit v1.8.0