From 08f74861b6445c33054a66eb0e4e4d154884be51 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 27 三月 2024 17:30:54 +0800
Subject: [PATCH] 2024年03月27日17:30:49

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |   80 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 80 insertions(+), 0 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 45005db..8b43056 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;
@@ -34,6 +35,8 @@
 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;
@@ -56,6 +59,7 @@
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
 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.gateway.HDLLinkLocalGateway;
@@ -244,6 +248,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;
                     //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺
@@ -1531,6 +1545,72 @@
 
     }
 
+    /**
+     * 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();
+//{"id":"c2d8b26b-3371-4fed-a190-78da31b454cf","time_stamp":"1711531144489","objects":[{"sid":"010126005C000251333036333237"}]}
+        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) {
+                uniCallbackData(type, msg, callback);
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+            }
+        });
+    }
+
 
     /**
      * 鍙戦�乵odbus鍗忚鏁版嵁

--
Gitblit v1.8.0