mac
2024-03-27 08f74861b6445c33054a66eb0e4e4d154884be51
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 @@
                    //逆变器清空住宅id
                    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);
            }
        });
    }
    /**
     * 发送modbus协议数据