From 56f5de5eb6c1501175e7a36b10cf3d1b57284b47 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 31 三月 2026 17:13:26 +0800
Subject: [PATCH] 2026年03月31日17:12:34
---
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 309 ++++++++++++++++++++++++++++++++++----------------
1 files changed, 208 insertions(+), 101 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 578f42a..011bf72 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -42,6 +42,7 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.enums.LogoutType;
+import com.hdl.photovoltaic.enums.PowerStationType;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
import com.hdl.photovoltaic.internet.TcpClient;
@@ -1109,6 +1110,16 @@
}
break;
+ case HDLUniMP.UNI_EVENT_REPLY_BLUETOOTH_Bms_Device_Bluetooth_Get: {
+ //鑾峰彇钃濈墮鐘舵�侊紙BMS璁惧锛�
+ this.uniGetOrSetDeviceBluetooth(mode_type, data, TopicApi.GATEWAY_Bluetooth_Get, callback);
+ }
+ break;
+ case HDLUniMP.UNI_EVENT_REPLY_BLUETOOTH_Bms_Device_Bluetooth_Set: {
+ //钃濈墮璁剧疆寮�鍚�/鍏抽棴锛圔MS璁惧锛�
+ this.uniGetOrSetDeviceBluetooth(mode_type, data, TopicApi.GATEWAY_Bluetooth_Set, callback);
+ }
+ break;
}
}
@@ -1117,6 +1128,51 @@
HdlLogLogic.print("uni---鍙戦��---" + e.getMessage(), true);
}
+ }
+
+ /**
+ * 鑾峰彇璁惧钃濈墮鐘舵��,璁剧疆钃濈墮寮�寮�鍚垨鑰呭叧闂�
+ *
+ * @param callback -
+ */
+ private void uniGetOrSetDeviceBluetooth(String type, Object data, String TopicApi, DCUniMPJSCallback callback) {
+ String mac = getKeyValue("mac", getKeyValue("data", data));
+ JsonArray jsonArray = new JsonArray();
+ JsonObject jObject = null;
+ String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data));
+ if (!TextUtils.isEmpty(attribute_data)) {
+ try {
+ jObject = new Gson().fromJson(attribute_data, JsonObject.class);
+ } catch (Exception ignored) {
+ jObject = new JsonObject();
+ }
+ }
+ jsonArray.add(jObject);
+ TcpClient.getInstance().sendDataToLinkGateway(mac, true, TopicApi, jsonArray, "", new HDLLinkCallBack() {
+ @Override
+ public void onSuccess(String s) {
+ if (callback != null) {
+ try {
+ if (s.startsWith("{")) {
+ uniSuccessCallback(type, new Gson().fromJson(s, JsonObject.class), callback);
+ } else if (s.startsWith("[")) {
+ uniSuccessCallback(type, new Gson().fromJson(s, JsonArray.class), callback);
+ } else {
+ uniSuccessCallback(type, s, callback);
+ }
+ } catch (Exception e) {
+ uniSuccessCallback(type, s, callback);
+ }
+ }
+ }
+
+ @Override
+ public void onError(HDLLinkException e) {
+ if (callback != null) {
+ uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+ }
+ }
+ });
}
/**
@@ -1320,6 +1376,7 @@
jsonObject.addProperty("homeId", houseIdBean.getHomeId());
jsonObject.addProperty("homeName", houseIdBean.getHomeName());
jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus() + "");
+ jsonObject.addProperty("powerStationType", houseIdBean.getPowerStationType());
HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS);
uniCallBackBaseBean.setData(jsonObject);
@@ -1969,32 +2026,11 @@
});
} else {
HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
- //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
- HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
+ //2026骞�03鏈�31鏃�14:59:10 浜戠浼氭牎楠岃澶囩姸鎬�
+ HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
@Override
- public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
- //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
- if (cloudInverterDeviceBean == null) {
- uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
- return;
- }
- if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
- uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
- return;
- }
- //4:杩愯
- HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- uniSuccessCallback(type, obj, callback);
- }
-
- @Override
- public void onFailure(HDLException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- }
- });
-
+ public void onSuccess(Boolean obj) {
+ uniSuccessCallback(type, obj, callback);
}
@Override
@@ -2002,38 +2038,50 @@
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
}
});
+// //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
+// HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, plantType, new CloudCallBeak<CloudInverterDeviceBean>() {
+// @Override
+// public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
+// //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
+// if (cloudInverterDeviceBean == null) {
+// uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+// return;
+// }
+// if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
+// uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+// return;
+// }
+// //4:杩愯
+// HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
+// @Override
+// public void onSuccess(Boolean obj) {
+// uniSuccessCallback(type, obj, callback);
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
+//
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
}
}
@Override
public void onFailure(HDLException e) {
HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
- //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
- HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
+ //2026骞�03鏈�31鏃�14:59:10 浜戠浼氭牎楠岃澶囩姸鎬�
+ HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
@Override
- public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
- //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
- if (cloudInverterDeviceBean == null) {
- uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
- return;
- }
- if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
- uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
- return;
- }
- //4:杩愯
- HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- uniSuccessCallback(type, obj, callback);
- }
-
- @Override
- public void onFailure(HDLException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- }
- });
-
+ public void onSuccess(Boolean obj) {
+ uniSuccessCallback(type, obj, callback);
}
@Override
@@ -2041,6 +2089,39 @@
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
}
});
+// //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
+// HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, plantType, new CloudCallBeak<CloudInverterDeviceBean>() {
+// @Override
+// public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
+// //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
+// if (cloudInverterDeviceBean == null) {
+// uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+// return;
+// }
+// if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
+// uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+// return;
+// }
+// //4:杩愯
+// HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
+// @Override
+// public void onSuccess(Boolean obj) {
+// uniSuccessCallback(type, obj, callback);
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
+//
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
}
});
@@ -2172,6 +2253,7 @@
private void uniUpgradeGatewayDriver(String type, Object data, DCUniMPJSCallback callback) {
String homeId = UserConfigManage.getInstance().getHomeId();
+ String plantType = getKeyValue("plantType", getKeyValue("data", data));
String deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛�
String deviceOid = getKeyValue("oid", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噊id
String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id
@@ -2223,32 +2305,11 @@
});
} else {
HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
- //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
- HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
+ //2026骞�03鏈�31鏃�14:59:10 浜戠浼氭牎楠岃澶囩姸鎬�
+ HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
@Override
- public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
- //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
- if (cloudInverterDeviceBean == null) {
- uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
- return;
- }
- if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
- uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
- return;
- }
- //4:杩愯
- HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- uniSuccessCallback(type, obj, callback);
- }
-
- @Override
- public void onFailure(HDLException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- }
- });
-
+ public void onSuccess(Boolean obj) {
+ uniSuccessCallback(type, obj, callback);
}
@Override
@@ -2256,38 +2317,50 @@
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
}
});
+// //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
+// HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, plantType, new CloudCallBeak<CloudInverterDeviceBean>() {
+// @Override
+// public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
+// //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
+// if (cloudInverterDeviceBean == null) {
+// uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+// return;
+// }
+// if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
+// uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+// return;
+// }
+// //4:杩愯
+// HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
+// @Override
+// public void onSuccess(Boolean obj) {
+// uniSuccessCallback(type, obj, callback);
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
+//
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
}
}
@Override
public void onFailure(HDLException e) {
HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
- //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
- HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
+ //2026骞�03鏈�31鏃�14:59:10 浜戠浼氭牎楠岃澶囩姸鎬�
+ HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
@Override
- public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
- //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
- if (cloudInverterDeviceBean == null) {
- uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
- return;
- }
- if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
- uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
- return;
- }
- //4:杩愯
- HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
- @Override
- public void onSuccess(Boolean obj) {
- uniSuccessCallback(type, obj, callback);
- }
-
- @Override
- public void onFailure(HDLException e) {
- uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
- }
- });
-
+ public void onSuccess(Boolean obj) {
+ uniSuccessCallback(type, obj, callback);
}
@Override
@@ -2295,6 +2368,39 @@
uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
}
});
+// //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
+// HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, plantType, new CloudCallBeak<CloudInverterDeviceBean>() {
+// @Override
+// public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
+// //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
+// if (cloudInverterDeviceBean == null) {
+// uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+// return;
+// }
+// if (cloudInverterDeviceBean.getDeviceStatus() == 1 || cloudInverterDeviceBean.getDeviceStatus() == 4) {
+// uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+// return;
+// }
+// //4:杩愯
+// HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
+// @Override
+// public void onSuccess(Boolean obj) {
+// uniSuccessCallback(type, obj, callback);
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
+//
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+// }
+// });
}
});
@@ -2787,8 +2893,9 @@
*/
private void uniGetCurrentHomeLocalAndCloudGatewayList(String type, Object data, DCUniMPJSCallback callback) {
String homeId = getKeyValue("homeId", getKeyValue("data", data));
+ String plantType = getKeyValue("plantType", getKeyValue("data", data));
// UserConfigManage.getInstance().setHomeId(homeId);
- HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, new CloudCallBeak<List<GatewayBean>>() {
+ HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, plantType, new CloudCallBeak<List<GatewayBean>>() {
@Override
public void onSuccess(List<GatewayBean> list) {
List<GatewayBean> newList = sortLogic(list);
--
Gitblit v1.8.0