From 9efc5cef6ff75da58fe450add20ffab044e74b54 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 18 一月 2024 09:59:33 +0800 Subject: [PATCH] 2024年01月18日09:59:27 --- HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 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 47347c1..fe6082b 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 @@ -118,6 +118,7 @@ //registerListener(String.format(TopicConstant.NATIVE_ZIGBEE_UP_SLAVE, "+", "+"), eventListener); } + /** * 鍙戦�佸師鐢熸暟鎹� * @@ -126,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) { @@ -145,9 +165,9 @@ // request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayOidOrGatewayId)); // } request.setReplyTopic("Modbus" + payload[0] + payload[1]); - long timeout = 5 * 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 int[]) { -- Gitblit v1.8.0