From dcb7088c2dca789074f8f48597dca3c55f3ab6f1 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 01 二月 2024 19:37:09 +0800 Subject: [PATCH] 2024年02月01日19:37:00 --- HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java | 28 +++++++++++++++++++++++----- 1 files changed, 23 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 d212f28..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 @@ -84,8 +84,6 @@ } byte[] data = linkResponse.getByteData(); ModbusResponse modbusResponse = new ModbusResponse(); - int a=data[0]&0xff; - int b=data[1]&0xff; String topic = "Modbus" + data[0] + data[1]; modbusResponse.setTopic(topic); modbusResponse.setData(data); @@ -120,6 +118,7 @@ //registerListener(String.format(TopicConstant.NATIVE_ZIGBEE_UP_SLAVE, "+", "+"), eventListener); } + /** * 鍙戦�佸師鐢熸暟鎹� * @@ -128,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) { @@ -139,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())); @@ -147,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 = 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 int[]) { -- Gitblit v1.8.0