From f49ce86fe82047d2dd94adf65316013729d090a0 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 14 三月 2024 10:28:29 +0800
Subject: [PATCH] 2024年03月14日10:28:25
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 214 insertions(+), 13 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 0c8f79a..75a6bed 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -8,18 +8,13 @@
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.location.Location;
-import android.location.LocationListener;
import android.location.LocationManager;
import android.os.IBinder;
-import android.provider.Settings;
import android.text.TextUtils;
-import android.util.Log;
-import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import com.google.gson.Gson;
-import com.google.gson.JsonObject;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean;
import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean;
@@ -35,10 +30,16 @@
import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
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.OidBean;
+import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
+import com.hdl.photovoltaic.ui.me.PersonalDataActivity;
+import com.hdl.photovoltaic.ui.me.SetActivity;
+import com.hdl.photovoltaic.ui.newC.MessageCenterList;
+import com.hdl.photovoltaic.ui.newC.PowerStationsListEdit;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import com.hdl.photovoltaic.utils.NetworkUtils;
@@ -61,9 +62,9 @@
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;
import io.dcloud.feature.unimp.DCUniMPJSCallback;
import okhttp3.ResponseBody;
@@ -111,7 +112,21 @@
String type = getKeyValue("type", data);//灏忕被
String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨�
HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
- if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) {
+ if (HDLUniMP.UNI_EVENT_REPLY_USER_MODEL.equals(topic)) {
+ //鐢ㄦ埛妯″潡
+ switch (type) {
+ //鐢ㄦ埛淇℃伅
+ case HDLUniMP.UNI_EVENT_REPLY_USER_INFO: {
+ this.uniGetUserInfo(mode_type, data, callback);
+ }
+ //鐢ㄦ埛澶村儚锛堟棫骞冲彴閫昏緫鏄ご鍍忓崟鐙幏鍙栦笅杞藉湴鍧�锛�
+ case HDLUniMP.UNI_EVENT_REPLY_USER_IMAGE: {
+ uniGetImageKey(mode_type, data, callback);
+ }
+ break;
+ }
+
+ } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) {
//浣忓畢妯″潡
switch (type) {
//鍒涘缓鐢电珯
@@ -160,6 +175,11 @@
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
this.uniAddInverterDeviceToCloud(mode_type, data, callback);
}
+ //娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠
+ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD_All: {
+ this.uniAddAllInverterDeviceToCloud(mode_type, data, callback);
+ }
+
break;
//鍒犻櫎浜戠閫嗗彉鍣�
case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: {
@@ -316,7 +336,6 @@
}
} else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) {
-
//鍏跺畠妯″潡
switch (type) {
//鑾峰彇娓╁害鍗曚綅
@@ -338,6 +357,52 @@
String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data));
HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
}
+ }
+ } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) {
+ //鎴戠殑妯″潡
+ switch (type) {
+ //璧勬枡缂栬緫
+ case HDLUniMP.UNI_EVENT_REPLY_MINE_EDIT_USER_INFO: {
+ Intent intent = new Intent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClass(HDLApp.getInstance(), PersonalDataActivity.class);
+ HDLApp.getInstance().startActivity(intent);
+ }
+ break;
+ //鐢电珯閫夋嫨
+ case HDLUniMP.UNI_EVENT_REPLY_MINE_SELECTED_POWERSTATION: {
+ Intent intent = new Intent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClass(HDLApp.getInstance(), PowerStationsListEdit.class);
+ HDLApp.getInstance().startActivity(intent);
+ }
+ break;
+ //娑堟伅涓績
+ case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: {
+ Intent intent = new Intent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClass(HDLApp.getInstance(), MessageCenterList.class);
+ HDLApp.getInstance().startActivity(intent);
+ }
+ break;
+ //鍏充簬
+ case HDLUniMP.UNI_EVENT_REPLY_MINE_ABOUT: {
+ Intent intent = new Intent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClass(HDLApp.getInstance(), AsRegardsActivity.class);
+ HDLApp.getInstance().startActivity(intent);
+ }
+ break;
+ //璁剧疆
+ case HDLUniMP.UNI_EVENT_REPLY_MINE_SETTING: {
+ Intent intent = new Intent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClass(HDLApp.getInstance(), SetActivity.class);
+ HDLApp.getInstance().startActivity(intent);
+ }
+ break;
+
+
}
}
@@ -1029,6 +1094,72 @@
}
/**
+ * 鑾峰彇鐢ㄦ埛淇℃伅
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ private void uniGetUserInfo(String type, Object data, DCUniMPJSCallback callback) {
+ HdlAccountLogic.getInstance().getMemberInfo_C(new CloudCallBeak<CUserInfo>() {
+ @Override
+ public void onSuccess(CUserInfo cUserInfo) {
+ if (cUserInfo == null) {
+ return;
+ }
+ UserConfigManage.getInstance().setBingPhone(cUserInfo.getMemberPhone());
+ UserConfigManage.getInstance().setBingEmail(cUserInfo.getMemberEmail());
+ UserConfigManage.getInstance().Save();
+ //鑾峰彇鐢ㄦ埛澶村儚璺緞
+ if (cUserInfo.getMemberHeadIcon().contains("http")) {
+ //鏇存柊鐢ㄦ埛澶村儚
+ uniCallbackData(type, cUserInfo, callback);
+ } else {
+ HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String url) {
+ cUserInfo.setMemberHeadIcon(url);
+ uniCallbackData(type, cUserInfo, callback);
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
+
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛澶村儚
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ private void uniGetImageKey(String type, Object data, DCUniMPJSCallback callback) {
+ String imageKey = getKeyValue("imageKey", getKeyValue("data", data));
+ HdlAccountLogic.getInstance().getImageKey_C(imageKey, new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String url) {
+ uniCallbackData(type, url, callback);
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ });
+ }
+
+
+ /**
* 閫嗗彉鍣ㄦ竻绌轰綇瀹卛d
*
* @param data uni鏁版嵁
@@ -1131,6 +1262,7 @@
}
+
/**
* 閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
*
@@ -1177,6 +1309,73 @@
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
}
});
+ }
+
+ /**
+ * 澶氫釜閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
+ *
+ * @param data uni鏁版嵁
+ * @param callback uni鍥炶皟
+ */
+ 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);
+
+ return;
+ }
+ List<GatewayBean> list = new ArrayList<>();
+ //璁板綍鏉℃暟
+ AtomicInteger atomicInteger = new AtomicInteger(0);
+ final boolean[] is_boolean = {false};
+ for (int i = 0; i < list.size(); i++) {
+
+ 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;
+ }
+ });
+ if (is_boolean[0]) {
+ //鍙湁涓棿鏈変竴鏉℃寚浠よ缃け璐�,榛樿鍏ㄩ儴澶辫触;
+ break;
+ }
+ }
}
/**
@@ -1285,7 +1484,8 @@
private void sendModBus(String type, Object data, DCUniMPJSCallback callback) {
String tempData = getKeyValue("data", data);
if (TextUtils.isEmpty(tempData)) {
- HdlLogLogic.print("data鍐呭涓虹┖--->", false);
+ uniCallbackData(type, null, -2, "data鍐呭涓虹┖", callback);
+ //HdlLogLogic.print("data鍐呭涓虹┖--->", false);
return;
}
ModBusBean modBusBean = new Gson().fromJson(tempData, ModBusBean.class);
@@ -1296,24 +1496,25 @@
// modBusBean.setOid("0101050217BBC400");
// }
if (modBusBean.getMac() == null || modBusBean.getData() == null) {
- HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
+ uniCallbackData(type, null, -2, "鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖", callback);
+ //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
return;
}
- HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true);
+ //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true);
//鍙戦�乵odbus鍗忚
HDLModBusConnect.getInstance().Send(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() {
@Override
public void onSuccess(int[] data) {
uniCallbackData(type, data, callback);
- HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true);
+// HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true);
}
@Override
public void onError(HDLLinkException e) {
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true);
+ //HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true);
}
});
}
--
Gitblit v1.8.0