From e4cb9970046ef8e7392368a051cae2ab5c84799a Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 29 四月 2024 17:03:11 +0800 Subject: [PATCH] 2024年04月29日17:03:06 --- app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java | 250 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 230 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java index 30feb59..a21d962 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java @@ -2,12 +2,14 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.os.Build; import android.text.TextUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.bean.HttpResponsePack; +import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; @@ -16,14 +18,17 @@ import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseIdBean; +import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; import com.hdl.sdk.link.core.callback.GatewayCallBack; import com.hdl.sdk.link.core.config.HDLLinkConfig; +import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -54,7 +59,7 @@ } /** - * 鑾峰彇浣忓畢鍒楄〃 + * 鑾峰彇缂撳瓨浣忓畢鍒楄〃 * * @return 浣忓畢鍒楄〃 */ @@ -70,7 +75,7 @@ } /** - * 鑾峰彇浣忓畢ID鍒楄〃 + * 鑾峰彇缂撳瓨浣忓畢ID鍒楄〃 * * @return 浣忓畢ID鍒楄〃 */ @@ -85,6 +90,48 @@ this.houseIdList = houseIdList; } + /** + * 鍒犻櫎鐢电珯 + * + * @param houseId 鐢电珯id + */ + public void delHouseId(String houseId) { + if (TextUtils.isEmpty(houseId)) { + return; + } + for (int i = 0; i < houseIdList.size(); i++) { + if (houseIdList.get(i).getHomeId().equals(houseId)) { + houseIdList.remove(i); + break; + } + } + } + + /** + * 绉诲姩鐢电珯浣嶇疆 + * + * @param houseId 鐢电珯id + */ + public void moveHouseId(String houseId) { + if (TextUtils.isEmpty(houseId)) { + return; + } + int index = -1; + for (int i = 0; i < houseIdList.size(); i++) { + if (houseIdList.get(i).getHomeId().equals(houseId)) { + index = i; + break; + } + } + if (index == -1) { + return; + } + //index==0琛ㄧず鍙湁涓�涓厓绱犳垨鑰呭湪棣栦綅,涓嶉渶瑕佺Щ鍔ㄤ綅缃� + if (index > 0) { + Collections.swap(houseIdList, index - 1, index); + } + } + //浣忓畢ID鍒楄〃 private List<HouseIdBean> houseIdList = new ArrayList<>(); //浣忓畢璇︽儏鍒楄〃 @@ -92,7 +139,7 @@ /** - * 鑾峰彇浣忓畢鍒楄〃 + * 鑾峰彇浣忓畢鍒楄〃锛屽寘鎷幏鍙栦綇瀹卛d鍒楄〃锛屼綇瀹呰鎯呭垪琛紱 * * @param cloudCallBeak - */ @@ -114,7 +161,7 @@ public void onSuccess(HouseInfoBean houseInfoBean) { atomicInteger.set(atomicInteger.get() + 1); if (houseInfoBean != null) { - houseInfoBean.setHomeImage(houseIdBean.getHomeImage());//鐢电珯鍥剧墖 + houseInfoBean.setPowerStationImage(houseIdBean.getPowerStationImage());//鐢电珯鍥剧墖 houseInfoBean.setInstalledCapacity(houseIdBean.getInstalledCapacity());//瑁呮満瀹归噺 houseInfoBean.setPower(houseIdBean.getPower());//鍙戠數鍔熺巼 houseInfoBean.setTodayElectricity(houseIdBean.getTodayElectricity());//浠婂ぉ鍙戠數閲� @@ -334,6 +381,39 @@ } /** + * 浣忓畢(鐢电珯)绉诲姩浣嶇疆 + * + * @param homeId 鐢电珯id + * @param frontHomeId 鍓嶉潰鐨勭數绔檌d锛屽鏋滀笉浼犺〃绀烘帓鍒扮涓�浣� + * @param cloudCallBeak - + */ + public void moveResidence(String homeId, String frontHomeId, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.POST_PowerStation_UserSort; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + if (!TextUtils.isEmpty(frontHomeId)) { + json.addProperty("frontHomeId", frontHomeId); + } +// json.addProperty("zoneType", "zoneType"); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String str) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + } + + /** * 鍒犻櫎浣忓畢(鐢电珯) * * @param homeId - @@ -446,6 +526,67 @@ } + + /** + * 鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣� + * + * @param tempType 娓╁害鍗曚綅绫诲瀷 (C 锛氭憚姘忓害锛� F 锛氬崕姘忓害) + * @param cloudCallBeak - + */ + public void setResidenceTemperatureUnit(String tempType, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.POST_C_F_CustomConfig; + JsonObject json = new JsonObject(); + json.addProperty("tempType", tempType); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String str) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + + } + + /** + * 鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯� + * + * @param cloudCallBeak - + */ + public void getResidenceTemperatureUnit(CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_C_F_CustomConfigInfo; + JsonObject json = new JsonObject(); +// json.addProperty("homeId", homeId); + + List<MessageBean> list = new ArrayList<>(); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + + } + /** * 娣诲姞銆愪綇瀹呰鎯呫�戝埌鏈湴缂撳瓨 * @@ -508,47 +649,116 @@ } /** + * 鑾峰彇浣忓畢Id瀵硅薄 + * + * @param homeId 浣忓畢id + * @return 鍒楄〃绱㈠紩 + */ + public HouseIdBean getHouseId(String homeId) { + for (int i = 0; i < houseIdList.size(); i++) { + if (houseIdList.get(i).getHomeId().equals(homeId)) { + return houseIdList.get(i); + } + } + return null; + } + + /** * 鍒囨崲浣忓畢 * * @param houseIdBean 浣忓畢Id瀵硅薄 */ public void switchHouse(HouseIdBean houseIdBean) { - String oidHomeId = UserConfigManage.getInstance().getHomeId(); -// if (houseIdBean.getHomeId().equals(oidHomeId)) { -// return; -// } - //鍒犻櫎鏃х殑浣忓畢鏂囦欢澶� - HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath()); + String homeId = UserConfigManage.getInstance().getHomeId(); + if (houseIdBean.getHomeId().equals(homeId)) { + HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�--->" + homeId); + return; + } + //璁㈤槄瑕佸叏閮ㄥ彇娑� + if (MqttRecvClient.getInstance() != null) { + MqttRecvClient.getInstance().removeAllTopic(); + } + //瑕佹竻绌轰箣鍓峵cp杩炴帴缂撳瓨 + //TODO: 10/10/23 + //鍒犻櫎鏃х殑浣忓畢鏂囦欢澶� 2023骞�11鏈�03鏃�14:28:19鏆傛椂鍘绘帀 +// HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath()); //閲嶆柊璁剧疆浣忓畢id UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId()); + UserConfigManage.getInstance().setHomeName(houseIdBean.getHomeName()); //閲嶆柊璁剧疆鏈湴閫氳绉橀挜 UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret()); + UserConfigManage.getInstance().Save(); + //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� + HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId()); + HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret()); //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶� HdlFileLogic.getInstance().createDirectory(); - //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� - initLocalLinkSdk(); - HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() { + //杩涘幓浣忓畢璇︽儏鎼滅储涓�涓嬮�嗗彉鍣ㄥ垪琛�,鐩殑鏄缓绔嬮�氳閫氶亾; + HdlDeviceLogic.getInstance().searchCurrentHomeGateway(null); + } + + + /** + * 鐢电珯鏁版嵁(缁熻) + * + * @param homeId 浣忓畢id + */ + public void getResidenceInverterAllInfo(String homeId, CloudCallBeak<Bitmap> cloudCallBeak) { + String requestUrl = HttpApi.POST_inverter_allInfo; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { @Override - public void onSuccess(List<GatewayBean> gatewayBeanList) { + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { +// cloudCallBeak.onSuccess(jsonStr); + } + } @Override - public void onError(HDLLinkException e) { + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } } }); } /** - * 閰嶇疆鏈湴閫氫俊鐨勪俊鎭�(tcp閫氫俊鐢ㄥ埌) + * 娣诲姞鎺ㄩ�乀oken + * + * @param cloudCallBeak - */ - private void initLocalLinkSdk() { - HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId()); - HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret()); + public void pushAdd(CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_push_add; + JsonObject json = new JsonObject(); + json.addProperty("deviceName", Build.MODEL);//璁惧鍚嶇О + json.addProperty("deviceType", "Android");//璁惧绫诲瀷 + json.addProperty("produce", AppConfigManage.isIsOnlineServer());//琛ㄧず鏄惁鏄寮忔湇鍔″櫒 + json.addProperty("pushToken", UserConfigManage.getInstance().getRegistrationID());//App鐨勬帹閫乀oken锛屽湪鏋佸厜涓篟egId + json.addProperty("software", "PHOTOVOLTAIC");//杞欢鏉ユ簮 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); } - static class HouseBeanClass { -- Gitblit v1.8.0