From 6002cb9371055af6d37c8581d207cf6e3d0f9a4a Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期四, 29 六月 2023 10:33:28 +0800 Subject: [PATCH] 2023年06月29日10:33:22 --- app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java | 8 ++ app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java | 18 ++-- app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java | 10 -- app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java | 10 ++ app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java | 45 +++++++++-- app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java | 79 +++++++++++++++++++ app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 2 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java | 11 +- 8 files changed, 149 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java index fee18e9..b3e8d5c 100644 --- a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java +++ b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java @@ -47,6 +47,8 @@ private String homeId; //鏄惁鐧诲綍鐘舵�� private boolean isLogin; + //鏈湴閫氳绉橀挜 + private String localSecret; //鏄惁鏄疊绔处鍙风櫥褰� private boolean isB_account; @@ -156,6 +158,14 @@ isB_account = b; } + public String getLocalSecret() { + return localSecret == null ? "" : localSecret; + } + + public void setLocalSecret(String localSecret) { + this.localSecret = localSecret; + } + /** * 褰撳墠浣忓畢 */ diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java index 301a102..7c01dbc 100644 --- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java +++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java @@ -1,9 +1,7 @@ package com.hdl.photovoltaic.internet.api; public class HttpApi { - /** - * -----鐢ㄦ埛绠$悊--------- - */ + //region -----鐢ㄦ埛绠$悊--------- //鑾峰彇璐﹀彿鍖哄煙淇℃伅 public static final String POST_RegionByUserAccount = "/smart-footstone/region/regionByUserAccount"; //鐧诲綍鎺ュ彛 @@ -28,10 +26,8 @@ public static final String POST_GET_IMAGE_URL = "/home-wisdom/app/images/get_image_url"; //閫�鍑虹櫥褰� public static final String POST_GET_IMAGE_LOGOUT = "basis-footstone/mgmt/user/oauth/logout"; - - /** - * ------鐢电珯绠$悊(浣忓畢)-------- - */ + //endregion + //region -----鐢电珯绠$悊(浣忓畢)--------- //鐢电珯鍒楄〃 public static final String POST_PowerStation_List = "/home-wisdom/app/powerStation/page"; //鐢电珯鍒涘缓 @@ -42,10 +38,9 @@ public static final String POST_PowerStation_Info = "/home-wisdom/app/powerStation/info"; //鐢电珯缂栬緫 public static final String POST_PowerStation_Edit = "/home-wisdom/app/powerStation/edit"; + //endregion - /** - * ------璁惧绠$悊-------- - */ + //region -----璁惧绠$悊--------- //娣诲姞閫嗗彉鍣� public static final String POST_Device_Add = "/home-wisdom/app/device/independentRegister"; //鑾峰彇閫嗗彉鍣ㄥ垪琛� @@ -56,6 +51,9 @@ public static final String POST_Device_ChildDevices_List = "/home-wisdom/app/powerStation/childDevices"; //鍏ㄩ噺鏇存柊OID public static final String POST_Device_Oid = "/home-wisdom/program/device/oid/add"; + //鑾峰彇閫嗗彉鍣�(鑾峰彇璁惧杩滅▼閫氳淇℃伅) + public static final String POST_Device_remoteInfo = "/home-wisdom/program/device/remoteInfo"; + //endregion } 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 b22dc3b..dbb5f4f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java @@ -4,6 +4,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import com.hdl.hdlhttp.HxHttp; import com.hdl.photovoltaic.bean.HttpResponsePack; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpClient; @@ -24,6 +25,8 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; + +import io.reactivex.rxjava3.disposables.Disposable; /** * 璁惧閫昏緫鐨勭晫闈� @@ -85,13 +88,13 @@ /** * 鑾峰彇閫嗗彉鍣ㄥ垪琛� * - * @param inverterDeviceBean 閫嗗彉鍣ㄥ璞� - * @param cloudCallBeak 鍥炶皟 + * @param homeId 浣忓畢id + * @param cloudCallBeak 鍥炶皟 */ - public void getInverterDeviceList(InverterDeviceBean inverterDeviceBean, CloudCallBeak<CloudInverterDeviceBean> cloudCallBeak) { + public void getInverterDeviceList(String homeId, CloudCallBeak<CloudInverterDeviceBean> cloudCallBeak) { String requestUrl = HttpApi.POST_Device_List; JsonObject json = new JsonObject(); - json.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); + json.addProperty("homeId", homeId); // json.addProperty("zoneType", "password");//鍖哄煙 HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java new file mode 100644 index 0000000..35720bf --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java @@ -0,0 +1,79 @@ +package com.hdl.photovoltaic.other; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.reflect.TypeToken; +import com.hdl.hdlhttp.HxHttp; +import com.hdl.photovoltaic.bean.HttpResponsePack; +import com.hdl.photovoltaic.internet.HttpClient; +import com.hdl.photovoltaic.internet.api.HttpApi; +import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; +import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean; + +import java.lang.reflect.Type; +import java.util.List; + +import io.reactivex.rxjava3.disposables.Disposable; + +/** + * mqtt鐨勯�昏緫 + */ +public class HdlMqttLogic { + private static volatile HdlMqttLogic sHdlMqttLogic; + + /** + * 鑾峰彇褰撳墠瀵硅薄 + * + * @return HdlAccountLogic + */ + public static synchronized HdlMqttLogic getInstance() { + if (sHdlMqttLogic == null) { + synchronized (HdlMqttLogic.class) { + if (sHdlMqttLogic == null) { + sHdlMqttLogic = new HdlMqttLogic(); + } + } + + } + return sHdlMqttLogic; + } + + /** + * 鑾峰彇閫嗗彉鍣�(鑾峰彇璁惧杩滅▼閫氳淇℃伅) + * + * @param homeId 浣忓畢Id + * @param spk spk + * @param mac 璁惧mac + * @param cloudCallBeak 鍥炶皟 + */ + public void getDeviceRemoteInfo(String homeId, String spk, String mac, CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_Device_remoteInfo; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("spk", spk); + json.addProperty("mac", mac); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { + @Override + public void onSuccess(HttpResponsePack httpResponsePack) { +// if (httpResponsePack != null && httpResponsePack.getData() != null) { +// Gson gson = new Gson(); +// String json = gson.toJson(httpResponsePack.getData()); +// Type typeOfT = new TypeToken<List<CloudInverterChildDeviceBean>>() { +// }.getType(); +// if (cloudCallBeak != null) { +// cloudCallBeak.onSuccess("list"); +// } +// } + } + + @Override + public void onFailure(Exception exception) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(exception); + } + } + }); + + } +} 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 fcdf6ec..54a63fe 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java @@ -12,6 +12,10 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseIdBean; +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 java.util.ArrayList; import java.util.List; @@ -502,21 +506,44 @@ /** * 鍒囨崲浣忓畢 * - * @param homeId 浣忓畢id + * @param houseIdBean 浣忓畢Id瀵硅薄 */ - public Boolean switchHouse(String homeId) { + public void switchHouse(HouseIdBean houseIdBean) { String oidHomeId = UserConfigManage.getInstance().getHomeId(); + if (houseIdBean.getHomeId().equals(oidHomeId)) { + return; + } + //鍒犻櫎鏃х殑浣忓畢鏂囦欢澶� HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath()); - UserConfigManage.getInstance().setHomeId(homeId); + //閲嶆柊璁剧疆浣忓畢id + UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId()); + //閲嶆柊璁剧疆鏈湴閫氳绉橀挜 + UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret()); + //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶� HdlFileLogic.getInstance().createDirectory(); - - HdlThreadLogic.runThread(new Runnable() { + //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� + initLocalLinkSdk(); + HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() { @Override - public void run() { - //鎼滅储涓�涓嬩綇瀹呰澶� + public void onSuccess(List<GatewayBean> gatewayBeanList) { + } - }, null, null); - return true; + + @Override + public void onError(HDLLinkException e) { + + } + }); + + } + + /** + * 閰嶇疆鏈湴閫氫俊鐨勪俊鎭�(tcp閫氫俊鐢ㄥ埌) + */ + private void initLocalLinkSdk() { + HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId()); + HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret()); + } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java index 427f308..829674b 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java @@ -10,6 +10,7 @@ private String power;//鍙戠數鍔熺巼 private String todayElectricity;//浠婂ぉ鍙戠數閲� private int powerStationStatus;//鐢电珯鐘舵��(鐢电珯鐘舵�� 1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰) + private String localSecret;//鏈湴閫氳绉橀挜 public String getHomeId() { return homeId == null ? "" : homeId; @@ -66,5 +67,12 @@ public void setPowerStationStatus(int powerStationStatus) { this.powerStationStatus = powerStationStatus; } + public String getLocalSecret() { + return localSecret == null ? "" : localSecret; + } + + public void setLocalSecret(String localSecret) { + this.localSecret = localSecret; + } } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java index bd3064f..7ae93a2 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java @@ -104,7 +104,7 @@ public void onClick(int position, HouseIdBean houseIdBean) { //鐐瑰嚮浣忓畢璇︽儏 HdlLogLogic.print("====鐐瑰嚮浣忓畢璇︽儏" + position); - HdlResidenceLogic.getInstance().switchHouse(houseIdBean.getHomeId()); + HdlResidenceLogic.getInstance().switchHouse(houseIdBean); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId(); HdlUniLogic.getInstance().openUniMP(path, null); } diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java index 39b3b1f..3106d1a 100644 --- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java +++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java @@ -69,8 +69,6 @@ */ public static class UniCallBackBaseBean implements Serializable { - - private String path;//鎵撳紑灏忕▼搴忚矾寰�(鏆傛椂鐢ㄤ笉涓�) private String code;//鐘舵�佺爜 private String mes;//淇℃伅鎻忚堪 private String type;//鍔熻兘绫诲瀷 @@ -118,14 +116,6 @@ public void setType(String type) { this.type = type; - } - - public String getPath() { - return path == null ? "" : path; - } - - public void setPath(String path) { - this.path = path; } -- Gitblit v1.8.0