From fb51d3e3a40a0f29c656664aad65e566bc24ab42 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 29 六月 2023 10:33:48 +0800
Subject: [PATCH] Merge branch 'wjc'
---
app/src/main/java/com/hdl/photovoltaic/utils/ThroughUtils.java | 117 +++++++++++++++++++
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 -
local.properties | 2
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/HDLApp.java | 13 ++
app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java | 79 +++++++++++++
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 1
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 2
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java | 11 +
12 files changed, 281 insertions(+), 35 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 693ae32..98d51cd 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -108,4 +108,17 @@
HDLUdpConnect.getInstance().initUdp();
}
+// /**
+// * 鍒濆鍖杣ni app mqtt
+// */
+// private void initUniMqtt() {
+// try {
+// Through.getInstance().setUni(false);
+// //IP 鍦板潃瑕佹牴鎹疄闄呯殑鏇存敼
+// UniAppMqtt.getInstance().initMqtt(this, "tcp://192.168.3.124:1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"});
+// } catch (Exception e) {
+// LogUtils.e("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�");
+// }
+// }
+
}
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/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 3179558..2d40f33 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -113,6 +113,7 @@
}
break;
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: {
+
//鍙戦�乵odbus鍗忚
// HDLModBusConnect.getInstance().Send(uniToAndroidBean.getGatewayOid(), null, );
}
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;
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/ThroughUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/ThroughUtils.java
new file mode 100644
index 0000000..d621f55
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/ThroughUtils.java
@@ -0,0 +1,117 @@
+//package com.hdl.photovoltaic.utils;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.hdl.photovoltaic.other.HdlUniLogic;
+//import com.hdl.photovoltaic.uni.HDLUniMP;
+//import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+//import com.hdl.sdk.link.common.event.EventListener;
+//import com.hdl.sdk.link.core.bean.ZigbeeResponse;
+//import com.hdl.sdk.link.core.connect.HDLZigbeeConnect;
+//
+///**
+// * Created by hxb on 2022/1/18.
+// * 鍘熺敓閫忎紶鍒皍ni app
+// */
+//public class ThroughUtils {
+//
+// final String tag = ThroughUtils.class.getName();
+//
+// /**
+// * 鏄惁uni鏂瑰紡锛屽惁鍒檓qtt鏂瑰紡
+// */
+// private boolean isUni=true;
+//
+//
+// /**
+// * instance
+// */
+// private volatile static ThroughUtils instance;
+//
+// /**
+// * getInstance
+// *
+// * @return Through
+// */
+// public static synchronized ThroughUtils getInstance() {
+// if (instance == null) {
+// synchronized (ThroughUtils.class) {
+// if (instance == null) {
+// instance = new ThroughUtils();
+// }
+// }
+// }
+// return instance;
+// }
+//
+// EventListener throughEventListener;
+//
+// /**
+// * 娉ㄥ唽鏂拌澶囧叆缃戠洃鍚�
+// */
+// public void registerThroughListener() {
+// //娉ㄥ唽鐩戝惉浜嬩欢
+// if (throughEventListener == null) {
+// throughEventListener = new EventListener() {
+// @Override
+// public void onMessage(Object msg) {
+// if (msg instanceof ZigbeeResponse) {
+// ZigbeeResponse zigbeeResponse = (ZigbeeResponse) msg;
+// try {
+// HDLUniMP.UniCallBackBaseBean callBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+// callBackBaseBean.setTopic(zigbeeResponse.getTopic());
+// callBackBaseBean.setData(zigbeeResponse.getData());
+// if (zigbeeResponse.getTopic().startsWith("ZbDataPassthrough")) {
+// //濡傛灉涓嶆槸浣跨敤mqtt鏂瑰紡锛屽氨浣跨敤uni app鎺ㄩ�佹柟寮�
+// if (isUni()) {
+// HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, callBackBaseBean);
+// HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.UNI_EVENT_ZigBeePassthrough, JSONObject.toJSON(callBackBaseBean));
+// } else {//浣跨敤mqtt鏂瑰紡
+// //AndroidToPC/鍞竴鏍囪瘑/uni_event"
+// UniAppMqtt.getInstance().publish(String.format("AndroidToPC/%s/%s", System.currentTimeMillis(), HDLUniMP.UNI_EVENT_ZigBeePassthrough), JSONObject.toJSON(callBackBaseBean).toString());
+// }
+// }
+// else if(zigbeeResponse.getTopic().contains("DeviceStatusReport/")){
+// //濡傛灉涓嶆槸浣跨敤mqtt鏂瑰紡锛屽氨浣跨敤uni app鎺ㄩ�佹柟寮�
+// if (isUni()) {
+// HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.EVENT_DeviceStatusReportPassthrough, JSONObject.toJSON(callBackBaseBean));
+// } else {//浣跨敤mqtt鏂瑰紡
+// //AndroidToPC/鍞竴鏍囪瘑/uni_event"
+// UniAppMqtt.getInstance().publish(String.format("AndroidToPC/%s/%s", System.currentTimeMillis(), HDLUniMP.EVENT_DeviceStatusReportPassthrough), JSONObject.toJSON(callBackBaseBean).toString());
+// }
+// }
+//
+// } catch (Exception e) {
+//
+// }
+// }
+// }
+// };
+// HDLZigbeeConnect.getInstance().registerListener(throughEventListener);
+// }
+// }
+//
+// /**
+// * 绉婚櫎鍏ㄥ眬鐩戝惉
+// */
+// public void removeThroughListener()
+// {
+// HDLZigbeeConnect.getInstance().removeListener(throughEventListener);
+// throughEventListener=null;
+// }
+//
+// /**
+// * 鏄惁uni鏂瑰紡锛屽惁鍒檓qtt鏂瑰紡
+// * @return
+// */
+// public boolean isUni() {
+// return isUni;
+// }
+//
+// /**
+// * 鏄惁uni鏂瑰紡锛屽惁鍒檓qtt鏂瑰紡
+// * @param uni
+// */
+// public void setUni(boolean uni) {
+// isUni = uni;
+// }
+//}
diff --git a/local.properties b/local.properties
index 4142787..f1350c6 100644
--- a/local.properties
+++ b/local.properties
@@ -5,4 +5,4 @@
# For customization when using a Version Control System, please read the
# header note.
#Wed Jun 28 17:38:10 CST 2023
-sdk.dir=/Users/wenjucheng/Library/Android/sdk
+sdk.dir=/Users/hdl/Library/Developer/Xamarin/android-sdk-macosx/platform-tools
--
Gitblit v1.8.0