From a0e8f81afc4fe2a21a5c504d53e569ea50d463d6 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期五, 15 三月 2024 11:51:23 +0800 Subject: [PATCH] 2024年03月15日11:51:17 --- app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java | 143 ++++++++++++++++++++++++++++++----------------- 1 files changed, 90 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java index fd5383e..d656e12 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java @@ -37,6 +37,7 @@ import java.util.concurrent.atomic.AtomicInteger; + /** * 璁惧閫昏緫 */ @@ -81,64 +82,55 @@ return newList; } - /** - * 鑾峰彇褰撳墠浣忓畢鐨勩�愪富銆戦�嗗彉鍣� - */ - public GatewayBean getCurrentHomeMainGateway(String homeId) { - return queryCurrentHomeMainGateway(this.getCurrentHomeGatewayList(homeId), homeId); - } - - /** - * 鏌ヨ褰撳墠浣忓畢鐨勩�愪富銆戦�嗗彉鍣� - */ - public GatewayBean queryCurrentHomeMainGateway(List<GatewayBean> list, String homeId) { - 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(homeId)) { - //鎵惧埌杩斿洖 - findGatewayBean = gatewayBean; - break; - } - } - return findGatewayBean; - } - /** * 閫嗗彉鍣ㄤ笂浼犳暟鎹埌浜戠(鍖呮嫭:sid锛宱id) * * @param homeId 浣忓畢id - * @param mac 璁惧mac + * @param list 閫嗗彉鍣ㄥ垪琛� */ - public void uploadDataToCloud(String homeId, String mac, CloudCallBeak<Boolean> callBeak) { - getInverterOidList(mac, new LinkCallBack<List<OidBean>>() { - @Override - public void onSuccess(List<OidBean> oidBeanList) { - if (oidBeanList == null) { - return; + public void uploadDataToCloud(String homeId, List<GatewayBean> list, CloudCallBeak<Boolean> callBeak) { + if (list == null || list.size() == 0) { + return; + } + List<OidBean> oidList = new ArrayList<>(); + AtomicInteger atomicInteger = new AtomicInteger(0); + for (int i = 0; i < list.size(); i++) { + atomicInteger.set(atomicInteger.get() + 1); + GatewayBean gatewayBean = list.get(i); + if (gatewayBean == null || TextUtils.isEmpty(gatewayBean.getDevice_mac())) { + continue; + } + getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() { + @Override + public void onSuccess(List<OidBean> oidBeanList) { + if (oidBeanList == null) { + return; + } + oidList.addAll(oidBeanList); + if (atomicInteger.get() == oidList.size()) { + //鍏ㄩ儴鑾峰彇鍚庡啀涓婁紶 + fullUpdateOid(homeId, oidList, new CloudCallBeak<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac(), true); + } + + @Override + public void onFailure(HDLException e) { + HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); + } + }); + } } - fullUpdateOid(homeId, oidBeanList, new CloudCallBeak<Boolean>() { - @Override - public void onSuccess(Boolean obj) { - HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�--->浣忓畢id:" + homeId + "--->mac:" + mac, true); - } - @Override - public void onFailure(HDLException e) { - HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); - } - }); - } + @Override + public void onError(HDLLinkException e) { + HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); + } + }); + } - @Override - public void onError(HDLLinkException e) { - HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); - } - }); } @@ -170,7 +162,52 @@ if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); //涓存椂鐨勯�昏緫锛屼笂浼爋id鍒楄〃鍒颁簯绔� - uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null); + List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId); + uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + } + + /** + * 娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠涓� + * + * @param list 閫嗗彉鍣ㄥ垪琛� + * @param cloudCallBeak - + */ + public void addAllInverterDeviceToCloud(String homeId, List<GatewayBean> list, CloudCallBeak<Boolean> cloudCallBeak) { + + String requestUrl = HttpApi.POST_Device_Add_All; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + JsonArray ary = new JsonArray(); + for (int i = 0; i < list.size(); i++) { + GatewayBean gatewayBean = list.get(i); + JsonObject inverterInfo = new JsonObject(); + inverterInfo.addProperty("mac", gatewayBean.getDevice_mac()); + inverterInfo.addProperty("spk", gatewayBean.getGatewayType()); + inverterInfo.addProperty("sid", gatewayBean.getSid()); + inverterInfo.addProperty("oid", gatewayBean.getOid()); + inverterInfo.addProperty("name", gatewayBean.getDevice_name()); + ary.add(inverterInfo); + } + json.add("devices", ary); + // json.addProperty("zoneType", "password");//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String str) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + //涓存椂鐨勯�昏緫锛屼笂浼爋id鍒楄〃鍒颁簯绔� + uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null); } } @@ -442,7 +479,7 @@ * 缃戝叧鏃堕棿璇诲彇 * * @param mac 璁惧mac - * @param linkCallBack 鍥炶皟update + * @param linkCallBack 鍥炶皟updatetime */ public void getGatewayTime(String mac, LinkCallBack<DeviceTimeBean> linkCallBack) { String requestUrl = TopicApi.GET_GATEWAY_TIME; @@ -770,7 +807,7 @@ cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId)); } } - HdlLogLogic.print("鑾峰彇璁惧杩滅▼閫氳淇℃伅澶辫触->msg->" + e.getMsg() + "(" + e.getCode() + ")"); + HdlLogLogic.print("鑾峰彇璁惧杩滅▼閫氳淇℃伅澶辫触--->msg--->" + e.getMsg() + "(" + e.getCode() + ")"); } }); } @@ -893,7 +930,7 @@ * * @param gatewayCallBack - */ - public void searchAllGateway(GatewayCallBack gatewayCallBack) { + public void searchAllNetworkGateway(GatewayCallBack gatewayCallBack) { //缃戝叧鎼滅储 HDLLinkLocalSdk.getInstance().refreshGateway(gatewayCallBack, this.getGatewaySpk()); } -- Gitblit v1.8.0