From 788c70114287306db20e9a4539018d6e32fb5cb7 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 19 四月 2024 10:10:10 +0800
Subject: [PATCH] Merge branch 'wjc_new' into develop_new
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 146 +++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 135 insertions(+), 11 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 6749bf8..467ca14 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -18,6 +18,8 @@
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;
import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean;
@@ -25,6 +27,7 @@
import com.hdl.linkpm.sdk.ota.bean.CloudGatewayDriversBean;
import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean;
import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean;
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.linkpm.sdk.utils.HDLMD5Utils;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
@@ -32,12 +35,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;
@@ -53,9 +59,12 @@
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;
@@ -132,6 +141,15 @@
uniGetImageKey(mode_type, data, callback);
}
break;
+ //鐢ㄦ埛鏈湴缂撳瓨淇℃伅
+ case HDLUniMP.UNI_EVENT_REPLY_USER_LOCAL_INFO: {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("user_name", UserConfigManage.getInstance().getUserName());
+ jsonObject.addProperty("user_image_url", UserConfigManage.getInstance().getUserImageUrl());
+ jsonObject.addProperty("user_account", UserConfigManage.getInstance().getAccount());
+ uniCallbackData(mode_type, jsonObject, callback);
+ }
+ break;
}
} else if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) {
@@ -183,11 +201,11 @@
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
this.uniAddInverterDeviceToCloud(mode_type, data, callback);
}
+ break;
//娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD_All: {
this.uniAddAllInverterDeviceToCloud(mode_type, data, callback);
}
-
break;
//鍒犻櫎浜戠閫嗗彉鍣�
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: {
@@ -233,6 +251,16 @@
//閫嗗彉鍣ㄦ竻绌轰綇瀹卛d
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: {
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;
//鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
@@ -365,11 +393,31 @@
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;
}
} else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) {
//鎴戠殑妯″潡
@@ -1228,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);
}
/**
@@ -1361,6 +1409,7 @@
// com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data);
try {
String devices = getKeyValue("devices", getKeyValue("data", data));
+ String homeId = UserConfigManage.getInstance().getHomeId(); //缁戝畾鎴愬姛涔嬪悗閫氱煡
Gson gson = new Gson();
Type typeOfT = new TypeToken<List<GatewayBean>>() {
}.getType();
@@ -1369,7 +1418,6 @@
uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback);
return;
}
- String homeId = UserConfigManage.getInstance().getHomeId();
//璁板綍鏉℃暟
AtomicInteger atomicInteger = new AtomicInteger(0);
final boolean[] is_boolean = {false};
@@ -1485,16 +1533,16 @@
}
return;
}
- //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
- HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, list, null);
+ if (callback != null) {
+ uniCallbackData(type, list, callback);
+ }
//EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰�
BaseEventBus baseEventBus = new BaseEventBus();
baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST);
baseEventBus.setData(list);
EventBus.getDefault().post(baseEventBus);
- if (callback != null) {
- uniCallbackData(type, list, callback);
- }
+ //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
+ HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null);
}
@Override
@@ -1505,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);
+ }
+ });
}
@@ -1578,9 +1699,12 @@
data = new JSONObject();
}
if (isTokenAndRefreshToken) {
- //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,闇�瑕佽繖浜涙暟鎹�
+ //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,浣嗛渶瑕佸師鐢熸彁渚涜繖浜涙暟鎹�
data.put("token", UserConfigManage.getInstance().getToken());
data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken());
+ if (TextUtils.isEmpty(AppConfigManage.getUserRegionUrl())) {
+ AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl());
+ }
data.put("serverAddress", AppConfigManage.getUserRegionUrl());
data.put("appKey", AppConfigManage.getAppKey());
data.put("appSecret", AppConfigManage.getAppSecret());
@@ -1613,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