From 734babb3a7348050fdffe845c560ba8b0b218152 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 20 十一月 2023 18:24:43 +0800 Subject: [PATCH] 2023年11月20日18:24:36 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 107 insertions(+), 6 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 ff4307a..78ed634 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -10,6 +10,7 @@ import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean; import com.hdl.linkpm.sdk.ota.bean.CloudGatewayDriversBean; import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean; +import com.hdl.linkpm.sdk.ota.bean.DownloadUrlBean; import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.bean.ModBusBean; @@ -210,6 +211,16 @@ this.uniGetNewDeviceFirmwares(data, callback); } break; + //璁惧鏈湴鍥轰欢鍒楄〃 + case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_LOCAL: { + this.uniGetLocalFirmwares(data, callback); + } + break; + //璁惧鍥轰欢涓嬭浇 + case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_DOWNLOAD: { + this.uniDeviceFirmwareDownload(data, callback); + } + break; //璁惧鍥轰欢鍗囩骇 case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_UPGRADE: { this.uniUpgradeDeviceFirmware(data, callback); @@ -223,6 +234,16 @@ //璁惧鏂伴┍鍔ㄥ垪琛� case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_NEW: { this.uniGetNewGatewayDrivers(data, callback); + } + break; + //璁惧鏈湴椹卞姩鍒楄〃 + case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_LOCAL: { + this.uniGetLocalDrivers(data, callback); + } + break; + //璁惧椹卞姩涓嬭浇 + case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_DOWNLOAD: { + this.uniGatewayDriverDownload(data, callback); } break; //璁惧椹卞姩鍗囩骇 @@ -338,14 +359,23 @@ } /** - * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护 + * 鑾峰彇銆愯澶囨湰鍦板浐浠躲�戝垪琛� */ - private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) { + private void uniGetLocalFirmwares(Object data, DCUniMPJSCallback callback) { + String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//纭欢鍨嬪彿 + String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//绯荤粺闀滃儚id + String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//绯荤粺闀滃儚id + } + + /** + * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戜笅杞芥寚浠� + */ + private void uniDeviceFirmwareDownload(Object data, DCUniMPJSCallback callback) { String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//璁惧id String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id - HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() { + HdlOtaLogic.getInstance().getDeviceFirmwareDownloadUrl(firmwareVersionId, new CloudCallBeak<DownloadUrlBean>() { @Override - public void onSuccess(Boolean obj) { + public void onSuccess(DownloadUrlBean obj) { uniCallbackData(obj, callback); } @@ -354,6 +384,37 @@ uniCallbackData(null, e.getCode(), e.getMsg(), callback); } }); + } + + /** + * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护 + */ + private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) { + + String deviceMac = getKeyValue("mac", getKeyValue("data", data));//缃戝叧璁惧mac锛堟煡鎵緎ocket锛� + String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//璁惧id + String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id + + boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac); + if (isLocalConnect) { + //鏈湴 + //1,寤虹珛鏈湴鏈嶅姟锛� + // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱 + + } else { + //浜戠 + HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + uniCallbackData(obj, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(null, e.getCode(), e.getMsg(), callback); + } + }); + } } /** @@ -396,9 +457,20 @@ } /** - * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戝崌绾TA鎸囦护 + * 鑾峰彇銆愯澶囨湰鍦伴┍鍔ㄣ�戝垪琛� */ - private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) { + private void uniGetLocalDrivers(Object data, DCUniMPJSCallback callback) { + String driveCode = getKeyValue("driveCode", getKeyValue("data", data));//椹卞姩缂栧彿鎴栭┍鍔ㄥ悕绉� + String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//椹卞姩绫诲瀷id + String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩绫诲瀷id + } + + /** + * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戜笅杞芥寚浠� + */ + private void uniGatewayDriverDownload(Object data, DCUniMPJSCallback callback) { + + String deviceOid = getKeyValue("oid", getKeyValue("data", data));//缃戝叧璁惧oid String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() { @@ -415,6 +487,35 @@ } /** + * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戝崌绾TA鎸囦护 + */ + private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) { + + String deviceMac = getKeyValue("mac", getKeyValue("data", data));//缃戝叧璁惧mac锛堟煡鎵緎ocket锛� + String deviceOid = getKeyValue("oid", getKeyValue("data", data));//缃戝叧璁惧oid + String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id + boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac); + if (isLocalConnect) { + //鏈湴 + //1,寤虹珛鏈湴鏈嶅姟锛� + // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱 + + } else { + HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + uniCallbackData(obj, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(null, e.getCode(), e.getMsg(), callback); + } + }); + } + } + + /** * 閫嗗彉鍣ㄦ竻绌轰綇瀹卛d * * @param data uni鏁版嵁 -- Gitblit v1.8.0