mac
2024-03-21 49db2ff387b7cc6385d51cefb80a8604600408f0
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -568,7 +568,7 @@
    public void editGatewayParam(String mac, LinkCallBack<Boolean> linkCallBack) {
        String requestUrl = TopicApi.SET_GATEWAY_EDIT;
        JsonObject json = new JsonObject();
        json.addProperty("master", GatewayMasterType.MasterFalse);
        json.addProperty("master", GatewayMasterType.MasterTrue);
        TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, json, "", new HDLLinkCallBack() {
            @Override
            public void onSuccess(String msg) {
@@ -628,16 +628,16 @@
     */
    public void initializeGateway(String mac, LinkCallBack<Boolean> linkCallBack) {
        String requestUrl = TopicApi.GATEWAY_INITIALIZE_REMOTE;
        JsonObject sendJsonObj = new JsonObject();
        JsonObject jObject = new JsonObject();
        jObject.addProperty("device_mac", mac);
        sendJsonObj.add("objects", jObject);
        TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, sendJsonObj, "", new HDLLinkCallBack() {
        jObject.addProperty("reset_factory", "true");//为false或无此字段,则为"清除数据"
        TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, jObject, "", new HDLLinkCallBack() {
            @Override
            public void onSuccess(String json) {
                if (linkCallBack != null) {
                    linkCallBack.onSuccess(true);
                }
                HdlLogLogic.print("初始化逆变器成功-->mac:" + mac, true);
            }
            @Override
@@ -645,6 +645,7 @@
                if (linkCallBack != null) {
                    linkCallBack.onError(e);
                }
                HdlLogLogic.print("初始化逆变器失败-->mac:" + mac + "--->" + e.getMsg() + "(" + e.getCode() + ")", true);
            }
        });
@@ -762,15 +763,11 @@
                                    if (atomicInteger.get() == list.size()) {
                                        //收集删除逆变器sid
                                        List<String> removeSidList = new ArrayList<>();
                                        for (int i = 0; i < list.size(); i++) {
                                            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
                                            for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                                GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                                if (!cloudInverterDeviceBean.getSid().equals(gatewayBean.getSid())) {
                                                    //本地有,云端没有,删除本地;
                                                    removeSidList.add(gatewayBean.getSid());
                                                }
                                        for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                            GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                            if (!querySidInverter(list, gatewayBean.getSid())) {
                                                //本地有,云端没有,删除本地;
                                                removeSidList.add(gatewayBean.getSid());
                                            }
                                        }
                                        for (int i = 0; i < removeSidList.size(); i++) {
@@ -790,15 +787,11 @@
                                    if (atomicInteger.get() == list.size()) {
                                        //收集删除逆变器sid
                                        List<String> removeSidList = new ArrayList<>();
                                        for (int i = 0; i < list.size(); i++) {
                                            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
                                            for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                                GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                                if (!cloudInverterDeviceBean.getSid().equals(gatewayBean.getSid())) {
                                                    //本地有,云端没有,删除本地;
                                                    removeSidList.add(gatewayBean.getSid());
                                                }
                                        for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                            GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                            if (!querySidInverter(list, gatewayBean.getSid())) {
                                                //本地有,云端没有,删除本地;
                                                removeSidList.add(gatewayBean.getSid());
                                            }
                                        }
                                        for (int i = 0; i < removeSidList.size(); i++) {
@@ -894,6 +887,22 @@
    }
    /**
     * 通过sid查询逆变器
     *
     * @param list 云端上逆变器列表
     * @return 存在为true, 否则为false
     */
    private boolean querySidInverter(List<CloudInverterDeviceBean> list, String sid) {
        for (int i = 0; i < list.size(); i++) {
            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
            if (sid.equals(cloudInverterDeviceBean.getSid())) {
                return true;
            }
        }
        return false;
    }
    /**
     * 获取设备远程通讯信息
     *
     * @param homeId        住宅Id