From be5c9f324ac1d31f4f262d288c5f72a7a0c10c47 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期五, 19 一月 2024 10:08:23 +0800 Subject: [PATCH] 2024年01月19日10:08:08 --- HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 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..692e5ad 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) { @@ -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