From c624adada781dc1f38f5c91e719f0712d984b846 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 29 四月 2024 18:53:07 +0800
Subject: [PATCH] 2024年04月29日18:52:56
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 457 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 351 insertions(+), 106 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 dc2df03..cb6edc7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -15,12 +15,16 @@
import androidx.core.app.ActivityCompat;
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;
import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean;
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;
@@ -28,11 +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;
@@ -43,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;
@@ -58,6 +68,7 @@
import java.io.File;
+import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
@@ -109,9 +120,34 @@
return;
}
String type = getKeyValue("type", data);//灏忕被
+ String logTag = getKeyValue("logTag", data);//鏍囪uni鎸囦护
String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨�
- HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
- if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) {
+ HdlLogLogic.print(logTag + ":" + "uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
+ if (HDLUniMP.UNI_EVENT_REPLY_USER_MODEL.equals(topic)) {
+ //鐢ㄦ埛妯″潡
+ switch (type) {
+ //鐢ㄦ埛淇℃伅
+ case HDLUniMP.UNI_EVENT_REPLY_USER_INFO: {
+ this.uniGetUserInfo(mode_type, data, callback);
+ }
+ break;
+ //鐢ㄦ埛澶村儚锛堟棫骞冲彴閫昏緫鏄ご鍍忓崟鐙幏鍙栦笅杞藉湴鍧�锛�
+ case HDLUniMP.UNI_EVENT_REPLY_USER_IMAGE: {
+ 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)) {
//浣忓畢妯″潡
switch (type) {
//鍒涘缓鐢电珯
@@ -160,11 +196,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: {
@@ -210,6 +246,21 @@
//閫嗗彉鍣ㄦ竻绌轰綇瀹卛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;
+ //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
+ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MESSAGE_NUMBER: {
+ this.uniGetMessageNumber(mode_type, data, callback);
}
break;
@@ -320,29 +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);
- }
- //涓撻棬鏀堕泦uni鏃ュ織
- case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: {
- 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) {
@@ -388,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;
}
}
@@ -564,10 +640,9 @@
String[] ary = path.split("/");
String[] driverInfoAry = ary[ary.length - 1].split("_");
DeviceFirmwareBean deviceFirmwareBean = new DeviceFirmwareBean();
- deviceFirmwareBean.setOid(driverInfoAry[0]);
- deviceFirmwareBean.setImageId(driverInfoAry[1]);
- deviceFirmwareBean.setVersion(driverInfoAry[2].replace(".zip", ""));
- deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(deviceFirmwareBean.getOid(), osImageId, deviceFirmwareBean.getVersion()));
+ deviceFirmwareBean.setImageId(driverInfoAry[0]);
+ deviceFirmwareBean.setVersion(driverInfoAry[1].replace(".zip", ""));
+ deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(osImageId, deviceFirmwareBean.getVersion()));
list.add(deviceFirmwareBean);
}
}
@@ -595,7 +670,7 @@
HdlThreadLogic.runSubThread(new Runnable() {
@Override
public void run() {
- String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version);
+ String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version);
//涓嶅湪瀛愮嚎绋嬭娴佷細鍗℃涓荤嚎绋�
boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(firmwarePathFileName, responseBody, md5, HdlOtaLogic.firmware_type);
if (isBoolean) {
@@ -605,9 +680,9 @@
}
if (isBoolean) {
- uniCallbackData(type, null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback);
+ uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_firmware_upgrade_memory_succeeded), callback);
} else {
- uniCallbackData(type, null, -2, "涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_firmware_upgrade_file_failed), callback);
}
}
});
@@ -649,10 +724,10 @@
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//鏈湴鍗囩骇鍥轰欢鏂囦欢璺緞
- String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version);
+ String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version);
byte[] data = HdlFileLogic.getInstance().readFileByte(firmwarePathFileName);
if (data == null || data.length == 0) {
- uniCallbackData(type, null, -2, "鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_firmware_upgrade_file), callback);
return;
}
String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕�
@@ -667,14 +742,14 @@
@Override
public void onError(HDLLinkException e) {
- uniCallbackData(type, null, -2, "閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_firmware_upgrade_failed), callback);
}
});
}
@Override
public void onServiceDisconnected(ComponentName name) {
- uniCallbackData(type, null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback);
}
});
} else {
@@ -858,9 +933,9 @@
HdlFileLogic.getInstance().deleteFile(drivePathFileName);//涓嬭浇澶辫触锛屽垹闄や笉瀹屾暣椹卞姩鏂囦欢;
}
if (isBoolean) {
- uniCallbackData(type, null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback);
+ uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_drive_memory_succeeded), callback);
} else {
- uniCallbackData(type, null, -2, "涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_drive_file_failed), callback);
}
}
});
@@ -904,7 +979,7 @@
String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version);
byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName);
if (data == null || data.length == 0) {
- uniCallbackData(type, null, -2, "鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_drive_file), callback);
return;
}
String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕�
@@ -919,14 +994,14 @@
@Override
public void onError(HDLLinkException e) {
- uniCallbackData(type, null, -2, "閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_drive_failed), callback);
}
});
}
@Override
public void onServiceDisconnected(ComponentName name) {
- uniCallbackData(type, null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback);
+ uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback);
}
});
} else {
@@ -1013,7 +1088,7 @@
*/
private void uniCancelDownloadingUpgradeFile(String type, Object data, DCUniMPJSCallback callback) {
HdlOtaLogic.getInstance().stopDownloadUpgradeFile();
- uniCallbackData(type, null, 0, "鍙栨秷涓嬭浇鎴愬姛.", callback);
+ uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.cancel_download_successfully), callback);
}
/**
@@ -1079,6 +1154,74 @@
}
/**
+ * 鑾峰彇鐢ㄦ埛淇℃伅
+ *
+ * @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")) {
+ UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon());
+ //鏇存柊鐢ㄦ埛澶村儚
+ uniCallbackData(type, cUserInfo, callback);
+ } else {
+ HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String url) {
+ cUserInfo.setMemberHeadIcon(url);
+ UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon());
+ uniCallbackData(type, cUserInfo, callback);
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ uniCallbackData(type, cUserInfo, 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鏁版嵁
@@ -1100,6 +1243,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鏁版嵁
@@ -1107,7 +1271,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().uploadOidDataToCloud(UserConfigManage.getInstance().getHomeId(), list, true, null);
}
/**
@@ -1238,62 +1406,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));
+ String homeId = UserConfigManage.getInstance().getHomeId(); //缁戝畾鎴愬姛涔嬪悗閫氱煡
+ 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;
+ }
+ //璁板綍鏉℃暟
+ 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, 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) {
}
}
@@ -1328,7 +1500,7 @@
private void uniSearchGateway(String type, DCUniMPJSCallback callback) {
- HdlDeviceLogic.getInstance().searchCurrentHomeGateway(new GatewayCallBack() {
+ HdlDeviceLogic.getInstance().searchAllNetworkGateway(new GatewayCallBack() {
@Override
public void onSuccess(List<GatewayBean> gatewayBeanList) {
uniCallbackData(type, gatewayBeanList, callback);
@@ -1360,19 +1532,16 @@
}
return;
}
- GatewayBean gatewayBean = HdlDeviceLogic.getInstance().queryCurrentHomeMainGateway(list, homeId);
- if (gatewayBean != null) {
- //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
- HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, gatewayBean.getDevice_mac(), 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
@@ -1383,6 +1552,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);
+ }
+ });
}
@@ -1433,7 +1675,7 @@
@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);
}
});
}
@@ -1456,9 +1698,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());
@@ -1491,10 +1736,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