wjc
2023-06-30 3ea2633e2113e35c431e165b4c94dca66ca191ae
HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLModBusConnect.java
@@ -85,7 +85,8 @@
                        }
                        byte []data = linkResponse.getByteData();
                        ModbusResponse  modbusResponse= new ModbusResponse();
                        modbusResponse.setTopic("Modbus"+data[0]+data[1]);
                        String topic="Modbus"+data[0]+data[1];
                        modbusResponse.setTopic(topic);
                        modbusResponse.setData(data);
                        String oid = null;
                        //是否是通过主网关透传主题
@@ -102,9 +103,9 @@
                                break;
                            }
                        }
                        EventDispatcher.getInstance().post(allTopic, modbusResponse);
                        EventDispatcher.getInstance().post(topic, modbusResponse);
                        //发布Zigbee原生主题及数据
//                        EventDispatcher.getInstance().post(allTopic, zigbeeResponse);
//                        EventDispatcher.getInstance().post(allTopic, modbusResponse);
                    }
                } catch (Exception e) {
                    LogUtils.e(TAG,"LinkResponse转ModbusResponse异常:"+ e.getMessage());
@@ -113,9 +114,8 @@
        };
        //注册直接通讯的主题,包括直接和主网关通讯或者直接和从网关通讯
        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);
    }
    /**
@@ -139,18 +139,18 @@
        String tempTopic = String.format(TopicConstant.NATIVE_MODBUS_DOWN, gatewayOidOrGatewayId);
        LinkRequest request = new LinkRequest(tempTopic, payload, gatewayBean.getIsLocalEncrypt());
        if ("true".equals(gatewayBean.getMaster())) {
//        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));
        }
//        } else {
//            request.setCloudTopic(String.format(TopicConstant.NATIVE_MODBUS_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayOidOrGatewayId));
//        }
        request.setReplyTopic("Modbus"+payload[0]+payload[1]);
        long timeout = 2 * 1000;
        new HDLConnectHelper(timeout, 1, gatewayBean.getIp_address(), 8586, request, new HDLConnectHelper.HdlSocketListener() {
            @Override
            public void onSucceed(Object msg) {
                if (msg instanceof Byte[]) {
                if (msg instanceof byte[]) {
                    if (null != baseCallBack) {
                        baseCallBack.onSuccess((byte[])msg);
                    }