From 969a251801a4553920b799ba9be0fcb9e69e47ed Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 14 三月 2024 13:44:40 +0800
Subject: [PATCH] 2024年03月14日13:44:32
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 146 ++++++++++++++++++++++++++++++------------------
1 files changed, 91 insertions(+), 55 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 75a6bed..b923df1 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -11,10 +11,14 @@
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.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean;
import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean;
@@ -59,6 +63,7 @@
import java.io.File;
+import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
@@ -225,6 +230,11 @@
//閫嗗彉鍣ㄦ竻绌轰綇瀹卛d
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: {
this.uniClearInverterHomeId(mode_type, data, callback);
+ }
+ break;
+ //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
+ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MESSAGE_NUMBER: {
+ this.uniGetMessageNumber(mode_type, data, callback);
}
break;
@@ -1181,6 +1191,27 @@
}
/**
+ * 鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ private void uniGetMessageNumber(String type, Object data, DCUniMPJSCallback callback) {
+ String homeId = getKeyValue("homeId", getKeyValue("data", data));
+ HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String data) {
+ uniCallbackData(type, data, callback);
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
+
+ /**
* 閫嗗彉鍣ㄣ�愪笂浼犳暟鎹�戝埌浜戠
*
* @param data uni鏁版嵁
@@ -1188,7 +1219,11 @@
*/
private void uniUploadDataToCloud(String type, Object data, DCUniMPJSCallback callback) {
String mac = getKeyValue("mac", getKeyValue("data", data));
- HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
+ List<GatewayBean> list = new ArrayList<>();
+ GatewayBean gatewayBean = new GatewayBean();
+ gatewayBean.setDevice_mac(mac);
+ list.add(gatewayBean);
+ HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null);
}
/**
@@ -1319,62 +1354,66 @@
*/
private void uniAddAllInverterDeviceToCloud(String type, Object data, DCUniMPJSCallback callback) {
// com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data);
- String mac = getKeyValue("mac", getKeyValue("data", data));
- String homeId = UserConfigManage.getInstance().getHomeId();
- GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(mac);
- if (gatewayBean == null) {
- uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback);
+ try {
+ String devices = getKeyValue("devices", getKeyValue("data", data));
+ Gson gson = new Gson();
+ Type typeOfT = new TypeToken<List<GatewayBean>>() {
+ }.getType();
+ List<GatewayBean> list = gson.fromJson(devices, typeOfT);
+ if (list == null || list.size() == 0) {
+ 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};
+ for (int i = 0; i < list.size(); i++) {
+ GatewayBean gatewayBean = list.get(i);
+ HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
+ @Override
+ public void onSuccess(Boolean obj) {
+ HdlDeviceLogic.getInstance().editGatewayParam(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
+ @Override
+ public void onSuccess(Boolean obj) {
+ atomicInteger.set(atomicInteger.get() + 1);
+ //鏈�鍚庝竴鏉℃墠鍋氭坊鍔犻�嗗彉鍣ㄩ�昏緫澶勭悊
+ if (atomicInteger.get() == list.size()) {
+ HdlDeviceLogic.getInstance().addAllInverterDeviceToCloud(homeId, gatewayBean.getDevice_mac(), list, new CloudCallBeak<Boolean>() {
+ @Override
+ public void onSuccess(Boolean obj) {
+ uniCallbackData(type, null, callback);
+ }
- return;
- }
- List<GatewayBean> list = new ArrayList<>();
- //璁板綍鏉℃暟
- AtomicInteger atomicInteger = new AtomicInteger(0);
- final boolean[] is_boolean = {false};
- for (int i = 0; i < list.size(); i++) {
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
- HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, mac, new LinkCallBack<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- HdlDeviceLogic.getInstance().editGatewayParam(mac, new LinkCallBack<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- atomicInteger.set(atomicInteger.get() + 1);
- //鏈�鍚庝竴鏉℃墠鍋氭坊鍔犻�嗗彉鍣ㄩ�昏緫澶勭悊
- if (atomicInteger.get() == list.size()) {
- HdlDeviceLogic.getInstance().addAllInverterDeviceToCloud(homeId, mac, list, new CloudCallBeak<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- uniCallbackData(type, null, callback);
- }
-
- @Override
- public void onFailure(HDLException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- }
- });
}
- }
+ @Override
+ public void onError(HDLLinkException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ is_boolean[0] = true;
+ }
+ });
+ }
- @Override
- public void onError(HDLLinkException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- is_boolean[0] = true;
- }
- });
+ @Override
+ public void onError(HDLLinkException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ is_boolean[0] = true;
+ }
+ });
+ if (is_boolean[0]) {
+ //鍙湁涓棿鏈変竴鏉℃寚浠よ缃け璐�,榛樿鍏ㄩ儴澶辫触;
+ break;
}
-
- @Override
- public void onError(HDLLinkException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- is_boolean[0] = true;
- }
- });
- if (is_boolean[0]) {
- //鍙湁涓棿鏈変竴鏉℃寚浠よ缃け璐�,榛樿鍏ㄩ儴澶辫触;
- break;
}
+ } catch (Exception ignored) {
}
}
@@ -1441,11 +1480,8 @@
}
return;
}
- GatewayBean gatewayBean = HdlDeviceLogic.getInstance().queryCurrentHomeMainGateway(list, homeId);
- if (gatewayBean != null) {
- //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
- HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, gatewayBean.getDevice_mac(), null);
- }
+ //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
+ HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, list, null);
//EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰�
BaseEventBus baseEventBus = new BaseEventBus();
baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST);
--
Gitblit v1.8.0