From 0b6f27a6aeeb6eb3d5ee55b500797875c2bd5d2c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 12 三月 2024 21:08:03 +0800 Subject: [PATCH] 2024年03月12日21:07:52 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 130 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 128 insertions(+), 2 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 e83dc5b..90b32bf 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,7 @@ import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; +import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; @@ -35,10 +36,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.StartActivity; 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; @@ -64,6 +71,7 @@ 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; @@ -109,7 +117,7 @@ return; } String type = getKeyValue("type", data);//灏忕被 - String mode_type = topic + "(澶х被)" + "--->" + type + "(灏忕被)" + type;//鐢ㄦ潵鎵撳嵃鐨� + String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨� HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true); if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) { //浣忓畢妯″潡 @@ -160,6 +168,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 +329,6 @@ } } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) { - //鍏跺畠妯″潡 switch (type) { //鑾峰彇娓╁害鍗曚綅 @@ -338,6 +350,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; + + } } @@ -1131,6 +1189,7 @@ } + /** * 閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓� * @@ -1180,6 +1239,73 @@ } /** + * 澶氫釜閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓� + * + * @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; + } + } + } + + /** * 鍒犻櫎浜戠涓婇�嗗彉鍣� * * @param data uni鏁版嵁 -- Gitblit v1.8.0