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/ui/newC/adapter/MessageCenterListAdapter.java | 5 +- app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java | 2 + app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java | 15 ++++++- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 80 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java index 54702bc..ef25a07 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java @@ -130,6 +130,18 @@ } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + unReadList.sort(new Comparator<MessageBean>() { + @Override + public int compare(MessageBean o1, MessageBean o2) { + if (o1 == null && o2 == null) { + return -1; + } + //鍊掑簭锛堥『搴� Long.compare(o2.getCreateTime(), o1.getCreateTime())锛� + return Long.compare(o2.getCreateTime(), o1.getCreateTime()); + } + }); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { readList.sort(new Comparator<MessageBean>() { @Override public int compare(MessageBean o1, MessageBean o2) { @@ -137,11 +149,10 @@ return -1; } //鍊掑簭锛堥『搴� Long.compare(o2.getCreateTime(), o1.getCreateTime())锛� - return Long.compare(o1.getCreateTime(), o2.getCreateTime()); + return Long.compare(o2.getCreateTime(), o1.getCreateTime()); } }); } - if (unReadList.size() > 0) { newList.addAll(unReadList); } 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鍗忚鏁版嵁 diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/MessageCenterListAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/MessageCenterListAdapter.java index 085d4b2..96c12cb 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/MessageCenterListAdapter.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/MessageCenterListAdapter.java @@ -43,8 +43,9 @@ @Override public void onBindViewHolder(@NonNull MessageCenterListAdapter.MyViewHolder holder, int position) { MessageBean messageBean = this.mList.get(position); - holder.item_content_tv.setText(messageBean.getTitle()); - holder.item_home_name_tv.setText(messageBean.getHomeName()); + holder.item_home_name_tv.setText(messageBean.getTitle()); + String strName = messageBean.getType() + "(" + messageBean.getDeviceDesc() + ")"; + holder.item_content_tv.setText(strName); String date = TimeUtils.getTimeFromTimestamp(messageBean.getCreateTime()); holder.item_time_tv.setText(date); String type = "";//FAULT:鏁呴殰,WARN:鍛婅,EVENT:浜嬩欢 diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java index 57c071c..89e5422 100644 --- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java +++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java @@ -47,6 +47,8 @@ public final static String UNI_EVENT_REPLY_DEVICE_CLEAR_DATA = "clear_data";//璁惧娓呯┖浣忓畢id public final static String UNI_EVENT_REPLY_DEVICE_UPLOADING_DATA = "uploading_data";//璁惧涓婁紶鏁版嵁 public final static String UNI_EVENT_REPLY_DEVICE_MODBUS_SEND = "modbus_send";//modbus鍗忚 + public final static String UNI_EVENT_REPLY_DEVICE_Link_edit_SEND = "link_property_edit";//link鍗忚灞炴�х紪杈� + public final static String UNI_EVENT_REPLY_DEVICE_Link_read_SEND = "link_property_read";//link鍗忚灞炴�ц鍙� public final static String UNI_EVENT_REPLY_DEVICE_MESSAGE_NUMBER = "message_number";//娑堟伅鎬绘暟閲� public final static String UNI_EVENT_REPLY_DEVICE_DELETE_OID = "delete_Oid";//鍒犻櫎璁惧oid -- Gitblit v1.8.0