wjc
2025-05-07 8814f3f0828e6ac652a29cc9de9f971fd55bca5b
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -97,7 +97,7 @@
    public List<GatewayBean> getCurrentHomeGatewayList(String homeId, List<CloudInverterDeviceBean> cloudInverterDeviceList) {
        try {
            List<GatewayBean> newList = new ArrayList<>();
            //云端有设备列表,HDLLinkLocalGateway.getInstance().getGatewayList()没有,即本地没有,里面会调用refreshGatewayCacheData()方法虚拟一个逆变器实体添加本地列表里面;
            //云端有设备列表,本地没有,即HDLLinkLocalGateway.getInstance().getGatewayList()没有,里面会调用refreshGatewayCacheData()方法虚拟一个逆变器实体添加本地列表里面;
            List<GatewayBean> list = HDLLinkLocalGateway.getInstance().getGatewayList();
            if (list.size() > 0) {
                for (int i = 0; i < list.size(); i++) {
@@ -117,7 +117,6 @@
                }
            }
            //有外网,以云端设备列表为准;云端没有,本地存在,则删除本地;否则,没有外网只有局域网,以本地为主,搜索多少个设备就显示多少个
            //追加这个条件是因为上面把HDLLinkLocalGateway.getInstance().getGatewayList()列表处理完后,接着搜索局域网又还原列表数据,导致出现旧数据;
            if (cloudInverterDeviceList != null && cloudInverterDeviceList.size() > 0) {
                List<GatewayBean> checkNewList = new ArrayList<>();
                for (int i = 0; i < cloudInverterDeviceList.size(); i++) {
@@ -131,8 +130,9 @@
                }
                newList.clear();
                newList.addAll(checkNewList);
            }
//            // 将list2的元素合并到list1的头部
//            // 模拟设备列表数据
//            List<GatewayBean> mockData = getGatewayDeviceListMockData(3);
//            if (mockData.size() > 0) {
//                for (GatewayBean mockDatum : mockData) {
@@ -1286,13 +1286,16 @@
                @Override
                public void onFailure(HDLException e) {
                    atomicInteger.set(atomicInteger.get() + 1);
                    //注意:这个逆变器只能本地控制(因为拿不到mqtt通讯秘钥以及GatewayID,无法远程控制)
                    //更新逆变器本地缓存信息
                    refreshGatewayCacheData(false, cloudInverterDeviceBean, null, homeId);
                    //当最后一条请求失败了,才有回调
                    if (atomicInteger.get() == list.size()) {
                        if (cloudCallBeak != null) {
                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId, list));
                        }
                    }
                    HdlLogLogic.print("获取设备远程通讯信息失败---msg---" + e.getMsg() + "(" + e.getCode() + ")");
                    HdlLogLogic.print("获取设备远程通讯信息失败(mac:"+cloudInverterDeviceBean.getOsn()+")------" + e.getMsg() + "(" + e.getCode() + ")",true);
                }
            });
        }
@@ -1753,7 +1756,8 @@
        gatewayBean.setOgMaster(cloudInverterDeviceBean.isOgMaster());
        //逆变器
        gatewayBean.setMaster(GatewayMasterType.MasterTrue);//默认都是主逆变器(以后支持从逆变器要更改)
        gatewayBean.setSystemStatusDesc(cloudInverterDeviceBean.getSystemStatusDesc());//设备状态
        gatewayBean.setSystemStatusDesc(cloudInverterDeviceBean.getSystemStatusDesc());//设备状态(逆变器设备)
        gatewayBean.setWorkStatusDesc(cloudInverterDeviceBean.getWorkStatusDesc());//工作状态(负载中心设备)
        gatewayBean.setHwVersion(cloudInverterDeviceBean.getHwVersion());//软件版本号
        gatewayBean.setCategorySecondName(cloudInverterDeviceBean.getCategorySecondName());//设备类型(产品二级分类名称
        gatewayBean.setDeviceType(cloudInverterDeviceBean.getDeviceType());//设备类型(INV:逆变器;BMS:BMS控制盒;BATTERY:电池单元)
@@ -1768,6 +1772,7 @@
        gatewayBean.setSpk(cloudInverterDeviceBean.getSpk());//设备spk
    }