mac
2023-12-12 4cd6e3cea73a57f9a4c73232b27c9054ac599b05
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -35,6 +35,7 @@
import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
import com.hdl.photovoltaic.ui.bean.DeviceTimeBean;
import com.hdl.photovoltaic.ui.bean.OidBean;
import com.hdl.sdk.link.HDLLinkLocalSdk;
import com.hdl.sdk.link.common.exception.HDLLinkException;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
import com.hdl.sdk.link.core.bean.response.BaseLocalResponse;
@@ -103,17 +104,26 @@
     * 获取当前住宅的【主】逆变器列表
     */
    public GatewayBean getCurrentHomeMainGateway() {
        List<GatewayBean> list = this.getCurrentHomeGatewayList();
        if (list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                GatewayBean gatewayBean = list.get(i);
                if (gatewayBean.getMaster().equals(GatewayMasterType.MasterTrue)) {
                    //找到返回
                    return gatewayBean;
                }
        return queryCurrentHomeMainGateway(this.getCurrentHomeGatewayList());
    }
    /**
     * 查询当前住宅的【主】逆变器列表
     */
    public GatewayBean queryCurrentHomeMainGateway(List<GatewayBean> list) {
        if (list == null || list.size() == 0) {
            return null;
        }
        GatewayBean findGatewayBean = null;
        for (int i = 0; i < list.size(); i++) {
            GatewayBean gatewayBean = list.get(i);
            if (gatewayBean.getMaster().equals(GatewayMasterType.MasterTrue) && gatewayBean.getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
                //找到返回
                findGatewayBean = gatewayBean;
                break;
            }
        }
        return null;
        return findGatewayBean;
    }
@@ -361,7 +371,7 @@
        json.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
        json.addProperty("server_addr", AppConfigManage.getUserRegionUrl());
        json.addProperty("local_secret", UserConfigManage.getInstance().getLocalSecret());
        //解密负载数据(因为写密钥给网关一定明文,因为那时网关还没有密钥)
        //解密负载数据(写密钥给网关一定是明文,因为那时网关还没有密钥)
        TcpClient.getInstance().sendDataToLinkGateway(mac, false, requestUrl, json, "", new HDLLinkCallBack() {
            @Override
            public void onSuccess(String msg) {
@@ -566,7 +576,7 @@
     * @param cloudCallBeak 返回逆变器列表
     */
    public void getCurrentHomeLocalAndCloudGatewayList(CloudCallBeak<List<GatewayBean>> cloudCallBeak) {
        HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
        HdlDeviceLogic.getInstance().searchCurrentHomeGateway(new GatewayCallBack() {
            @Override
            public void onSuccess(List<GatewayBean> gatewayBeanList) {
                //局域网有2种情况(1:有局域网,有外网;2:有局域网,没有外网);
@@ -812,13 +822,25 @@
    /**
     * 搜索逆变器列表
     * 注意:只搜索当前住宅逆变器和没有被绑定的逆变器
     *
     * @param gatewayCallBack -
     */
    public void searchGateway(GatewayCallBack gatewayCallBack) {
    public void searchCurrentHomeGateway(GatewayCallBack gatewayCallBack) {
        List<String> spks = this.getGatewaySpk();
        //网关搜索
        HDLLinkLocalGateway.getInstance().refreshGatewayByHomeIdAndSpk(UserConfigManage.getInstance().getHomeId(), spks, true, gatewayCallBack);
    }
    /**
     * 搜索局域网所有逆变器列表
     * 注意:包括已经被绑定到住宅的逆变器
     *
     * @param gatewayCallBack -
     */
    public void searchAllGateway(GatewayCallBack gatewayCallBack) {
        //网关搜索
        HDLLinkLocalSdk.getInstance().refreshGateway(gatewayCallBack, this.getGatewaySpk());
    }
    /**
@@ -920,11 +942,23 @@
     *
     * @return -
     */
    private List<String> getGatewaySpk() {
    public List<String> getGatewaySpk() {
        List<String> spks = new ArrayList<>();
        spks.add(DEVICE_SPK);
        return spks;
    }
    public boolean isGatewaySpk(String spk) {
        if (TextUtils.isEmpty(spk)) {
            return false;
        }
        for (int i = 0; i < this.getGatewaySpk().size(); i++) {
            if (this.getGatewaySpk().get(i).equals(spk)) {
                return true;
            }
        }
        return false;
    }
    public final String DEVICE_SPK = "energy.hdl_inverter";
}