From b1303ee6ba15d8202f7fe95037267feaa4520fc5 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期日, 28 四月 2024 15:55:48 +0800
Subject: [PATCH] 2024年04月28日15:55:42
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 191 ++++++++++++++++++++++++++++++++++++-----------
1 files changed, 144 insertions(+), 47 deletions(-)
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 45005db..f94c1b4 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -11,13 +11,11 @@
import android.location.LocationManager;
import android.os.IBinder;
import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
import androidx.core.app.ActivityCompat;
-import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -34,12 +32,15 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
+import com.hdl.photovoltaic.internet.TcpClient;
+import com.hdl.photovoltaic.internet.api.TopicApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.listener.LinkCallBack;
import com.hdl.photovoltaic.ui.bean.CUserInfo;
import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
import com.hdl.photovoltaic.ui.bean.DeviceTimeBean;
import com.hdl.photovoltaic.ui.bean.Geolocation;
+import com.hdl.photovoltaic.ui.bean.LinkBean;
import com.hdl.photovoltaic.ui.bean.OidBean;
import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
import com.hdl.photovoltaic.ui.me.PersonalDataActivity;
@@ -50,14 +51,16 @@
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import com.hdl.photovoltaic.utils.NetworkUtils;
import com.hdl.photovoltaic.utils.WifiUtils;
-import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.sdk.link.common.exception.HDLLinkCode;
import com.hdl.sdk.link.common.exception.HDLLinkException;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
+import com.hdl.sdk.link.core.bean.response.BaseLocalResponse;
import com.hdl.sdk.link.core.callback.GatewayCallBack;
+import com.hdl.sdk.link.core.callback.HDLLinkCallBack;
import com.hdl.sdk.link.core.callback.ModbusCallBack;
import com.hdl.sdk.link.core.connect.HDLModBusConnect;
+import com.hdl.sdk.link.core.connect.HDLUdpConnect;
import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
import org.greenrobot.eventbus.EventBus;
@@ -69,7 +72,6 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
@@ -246,6 +248,16 @@
this.uniClearInverterHomeId(mode_type, data, callback);
}
break;
+ //spk灞炴�х紪杈�
+ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_edit_SEND: {
+ this.uniLinkSpkAttributeEdit(mode_type, data, callback);
+ }
+ break;
+ //spk灞炴�ц鍙�
+ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_read_SEND: {
+ this.uniLinkSpkAttributeRead(mode_type, data, callback);
+ }
+ break;
//鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MESSAGE_NUMBER: {
this.uniGetMessageNumber(mode_type, data, callback);
@@ -359,42 +371,6 @@
break;
}
- } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) {
- //鍏跺畠妯″潡
- switch (type) {
- //鑾峰彇娓╁害鍗曚綅
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNIT: {
- uniCallbackData(mode_type, UserConfigManage.getInstance().getTemperature_unit(), callback);
- }
- break;
- //鑾峰彇褰撳墠app璇█
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_APP_LANGUAGE: {
- uniCallbackData(mode_type, UserConfigManage.getInstance().getCurrentAppLanguage(), callback);
- }
- break;
- //鑾峰彇浣嶇疆淇℃伅
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCATION_INFO: {
- this.uniGetLocationInfo(mode_type, data, callback);
- }
- break;
- //涓撻棬鏀堕泦uni鏃ュ織
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: {
- String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data));
- HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
-
- }
- break;
- //uni涓婚〉鐐瑰嚮杩斿洖閫氱煡
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK: {
- //EventBus浜嬩欢鍒嗗彂
- BaseEventBus baseEventBus = new BaseEventBus();
- baseEventBus.setTopic(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL);
- baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK);
- EventBus.getDefault().post(baseEventBus);
-
- }
- break;
- }
} else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) {
//鎴戠殑妯″潡
switch (type) {
@@ -440,6 +416,54 @@
break;
+ }
+ } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) {
+ //鍏跺畠妯″潡
+ switch (type) {
+ //鑾峰彇娓╁害鍗曚綅
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNIT: {
+ uniCallbackData(mode_type, UserConfigManage.getInstance().getTemperature_unit(), callback);
+ }
+ break;
+ //鑾峰彇褰撳墠app璇█
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_APP_LANGUAGE: {
+ uniCallbackData(mode_type, UserConfigManage.getInstance().getCurrentAppLanguage(), callback);
+ }
+ break;
+ //鑾峰彇浣嶇疆淇℃伅
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCATION_INFO: {
+ this.uniGetLocationInfo(mode_type, data, callback);
+ }
+ break;
+ //搴旂敤鍐茬獊
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_APPLICATION_CONFLICT: {
+ if (callback != null) {
+ uniCallbackData(type, HDLUdpConnect.getInstance().isBindSuccess(), callback);
+ }
+ }
+ break;
+ //涓撻棬鏀堕泦uni鏃ュ織
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: {
+ String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data));
+ HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
+
+ }
+ break;
+ //uni涓婚〉鐐瑰嚮杩斿洖閫氱煡
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK: {
+ //EventBus浜嬩欢鍒嗗彂
+ BaseEventBus baseEventBus = new BaseEventBus();
+ baseEventBus.setTopic(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL);
+ baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK);
+ EventBus.getDefault().post(baseEventBus);
+
+ }
+ break;
+ //uni閫氱煡鍘熺敓閫�鍑虹櫥褰�
+ case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOGOUT: {
+ HDLLinkPMUser.getInstance().logout(0);
+ }
+ break;
}
}
@@ -1252,7 +1276,7 @@
GatewayBean gatewayBean = new GatewayBean();
gatewayBean.setDevice_mac(mac);
list.add(gatewayBean);
- HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null);
+ HdlDeviceLogic.getInstance().uploadOidDataToCloud(UserConfigManage.getInstance().getHomeId(), list, true, null);
}
/**
@@ -1385,7 +1409,7 @@
// com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data);
try {
String devices = getKeyValue("devices", getKeyValue("data", data));
- String homeId = UserConfigManage.getInstance().getHomeId(); //getKeyValue("homeId", getKeyValue("data", data));
+ String homeId = UserConfigManage.getInstance().getHomeId(); //缁戝畾鎴愬姛涔嬪悗閫氱煡
Gson gson = new Gson();
Type typeOfT = new TypeToken<List<GatewayBean>>() {
}.getType();
@@ -1518,7 +1542,7 @@
baseEventBus.setData(list);
EventBus.getDefault().post(baseEventBus);
//杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
- HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, list, null);
+ HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null);
}
@Override
@@ -1529,6 +1553,79 @@
}
});
+ }
+
+ /**
+ * link spk 灞炴�х紪杈�
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ private void uniLinkSpkAttributeEdit(String type, Object data, DCUniMPJSCallback callback) {
+ String mac = getKeyValue("mac", getKeyValue("data", data));
+ String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data));
+ JsonArray jay = new JsonArray();
+ if (!TextUtils.isEmpty(attribute_data)) {
+ try {
+ Gson gson = new Gson();
+ JsonObject jObject = gson.fromJson(attribute_data, JsonObject.class);
+ String objects = jObject.get("objects").toString();
+ jay = gson.fromJson(objects, JsonArray.class);
+ } catch (Exception ignored) {
+ }
+ }
+ TcpClient.getInstance().sendDataToLinkGateway(mac, TopicApi.PROPERTY_DOWN, jay, "", new HDLLinkCallBack() {
+ @Override
+ public void onSuccess(String msg) {
+ uniCallbackData(type, msg, callback);
+ }
+
+ @Override
+ public void onError(HDLLinkException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
+
+ /**
+ * link spk 灞炴�ц鍙�
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ private void uniLinkSpkAttributeRead(String type, Object data, DCUniMPJSCallback callback) {
+ String mac = getKeyValue("mac", getKeyValue("data", data));
+ String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data));
+ JsonArray jay = new JsonArray();
+ if (!TextUtils.isEmpty(attribute_data)) {
+ try {
+ Gson gson = new Gson();
+ JsonObject jObject = gson.fromJson(attribute_data, JsonObject.class);
+ String objects = jObject.get("objects").toString();
+ jay = gson.fromJson(objects, JsonArray.class);
+ } catch (Exception ignored) {
+ }
+
+ }
+ TcpClient.getInstance().sendDataToLinkGateway(mac, TopicApi.PROPERTY_READ, jay, "", new HDLLinkCallBack() {
+ @Override
+ public void onSuccess(String msg) {
+ try {
+ Gson gson = new Gson();
+ Type typeOfT = new TypeToken<BaseLocalResponse<List<LinkBean>>>() {
+ }.getType();
+ BaseLocalResponse<List<LinkBean>> baseLocalResponse = gson.fromJson(msg, typeOfT);
+ uniCallbackData(type, baseLocalResponse, callback);
+ } catch (Exception e) {
+ uniCallbackData(type, msg, -2, "", callback);
+ }
+ }
+
+ @Override
+ public void onError(HDLLinkException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
}
@@ -1602,7 +1699,7 @@
data = new JSONObject();
}
if (isTokenAndRefreshToken) {
- //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,闇�瑕佽繖浜涙暟鎹�
+ //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,浣嗛渶瑕佸師鐢熸彁渚涜繖浜涙暟鎹�
data.put("token", UserConfigManage.getInstance().getToken());
data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken());
if (TextUtils.isEmpty(AppConfigManage.getUserRegionUrl())) {
@@ -1640,10 +1737,10 @@
if (callback != null) {
callback.invoke(getJSONObject(uniCallBackBaseBean));
// callback.invoke(uniCallBackBaseBean);
- HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true);
+ HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true);
}
} catch (Exception e) {
- HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + e.getMessage(), true);
+ HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + e.getMessage(), true);
}
--
Gitblit v1.8.0