From 05581cb7328000de65c5e8c1ef12b366b44b11b1 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 02 四月 2024 13:47:41 +0800
Subject: [PATCH] 2024年04月02日13:47:34

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 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 a49c88c..7e15422 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 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;
@@ -26,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;
@@ -33,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;
@@ -54,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;
@@ -138,6 +146,7 @@
                         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;
@@ -192,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: {
@@ -242,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;
                     //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
@@ -374,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)) {
                 //鎴戠殑妯″潡
@@ -1516,6 +1555,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);
+            }
+        });
+    }
+
 
     /**
      * 鍙戦�乵odbus鍗忚鏁版嵁
@@ -1587,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());

--
Gitblit v1.8.0