From 7b00e33092ef5861ffac90c4613d8f27cf9cccb3 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 06 十二月 2023 18:52:37 +0800 Subject: [PATCH] 2023年12月06日18:52:35 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 43 ++++++++++++++++++++++++++++++++----------- 1 files changed, 32 insertions(+), 11 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 a274790..f9eebd8 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -412,18 +412,23 @@ String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//纭欢鍨嬪彿 String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//绯荤粺闀滃儚id String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id +// String oid = getKeyValue("oid", getKeyValue("data", data));//鍥轰欢oid List<DeviceFirmwareBean> list = new ArrayList<>(); String driverFileList = HdlFileLogic.getInstance().getFirmwareRootPath(); File file = new File(driverFileList); if (file.list() != null) { for (int i = 0; i < Objects.requireNonNull(file.list()).length; i++) { String path = Objects.requireNonNull(file.list())[i]; + if (!path.contains(osImageId)) { + continue; + } String[] ary = path.split("/"); String[] driverInfoAry = ary[ary.length - 1].split("_"); DeviceFirmwareBean deviceFirmwareBean = new DeviceFirmwareBean(); deviceFirmwareBean.setOid(driverInfoAry[0]); - deviceFirmwareBean.setVersion(driverInfoAry[1].replace(".zip", "")); - deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(deviceFirmwareBean.getOid(), deviceFirmwareBean.getVersion())); + deviceFirmwareBean.setImageId(driverInfoAry[1]); + deviceFirmwareBean.setVersion(driverInfoAry[2].replace(".zip", "")); + deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(deviceFirmwareBean.getOid(), osImageId, deviceFirmwareBean.getVersion())); list.add(deviceFirmwareBean); } } @@ -439,7 +444,7 @@ */ private void uniDeviceFirmwareDownload(Object data, DCUniMPJSCallback callback) { String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d - String oid = getKeyValue("oid", getKeyValue("data", data));//璁惧oid + String oid = getKeyValue("oid", getKeyValue("data", data));//璇ュ浐浠剁殑oid String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id String version = getKeyValue("version", getKeyValue("data", data));//鍥轰欢鐗堟湰 String localUrl = getKeyValue("localUrl", getKeyValue("data", data));//鍌ㄥ瓨鍦ㄦ湰鍦板浐浠舵枃浠惰矾寰� @@ -448,7 +453,7 @@ HdlOtaLogic.getInstance().getDeviceUpgradeDownloadFile(url, new CloudCallBeak<ResponseBody>() { @Override public void onSuccess(ResponseBody responseBody) { - String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, version); + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version); boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(firmwarePathFileName, responseBody, md5, HdlOtaLogic.firmware_type); if (isBoolean) { HdlFileLogic.getInstance().deleteFile(localUrl);//涓嬭浇鎴愬姛,鍒犻櫎鏃у浐浠舵枃浠�; @@ -470,12 +475,13 @@ * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护 */ private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) { - String deviceMac = getKeyValue("mac", getKeyValue("data", data));//缃戝叧璁惧mac锛堟煡鎵緎ocket锛� + String deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛� String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d - String oid = getKeyValue("oid", getKeyValue("data", data));//璁惧id + String oid = getKeyValue("oid", getKeyValue("data", data));//鍗囩骇鍥轰欢鐨刼id String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id String version = getKeyValue("version", getKeyValue("data", data));//鍥轰欢鐗堟湰 String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//浜戠涓婃枃浠禡D5 + String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇 boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac); @@ -488,8 +494,12 @@ @Override public void onServiceConnected(ComponentName name, IBinder service) { //鏈湴鍗囩骇鍥轰欢鏂囦欢璺緞 - String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, version); + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version); String data = HdlFileLogic.getInstance().readFile(firmwarePathFileName); + if (TextUtils.isEmpty(data)) { + uniCallbackData(null, -2, "鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + return; + } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕� //鍗囩骇鍥轰欢鏂囦欢鍦板潃 String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName; @@ -629,7 +639,7 @@ * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄤ笅杞姐�戞寚浠� */ private void uniGatewayDriverDownload(Object data, DCUniMPJSCallback callback) { - String deviceOid = getKeyValue("oid", getKeyValue("data", data));//缃戝叧璁惧oid + String deviceOid = getKeyValue("oid", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噊id String driverCode = getKeyValue("driverCode", getKeyValue("data", data));//椹卞姩缂栫爜 String imageId = getKeyValue("imageId", getKeyValue("data", data));//椹卞姩闀滃儚id String version = getKeyValue("version", getKeyValue("data", data));//椹卞姩鐗堟湰 @@ -663,8 +673,8 @@ */ 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 deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛� + String deviceOid = getKeyValue("oid", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噊id String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id String module = getKeyValue("module", getKeyValue("data", data));//妯″潡淇℃伅 String version = getKeyValue("version", getKeyValue("data", data));//椹卞姩鐗堟湰鍙� @@ -682,6 +692,10 @@ //鏈湴鍗囩骇椹卞姩鏂囦欢璺緞 String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version); String data = HdlFileLogic.getInstance().readFile(drivePathFileName); + if (TextUtils.isEmpty(data)) { + uniCallbackData(null, -2, "鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + return; + } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕� //鍗囩骇椹卞姩鏂囦欢鍦板潃 String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName; @@ -996,11 +1010,18 @@ public void onSuccess(List<GatewayBean> list) { if (callback != null) { uniCallbackData(list, callback); - //EventBus浜嬩欢鍒嗗彂 + //EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰� BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST); baseEventBus.setData(list); EventBus.getDefault().post(baseEventBus); + GatewayBean gatewayBean = HdlDeviceLogic.getInstance().queryCurrentHomeMainGateway(list); + if (gatewayBean != null) { + //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�; + HdlDeviceLogic.getInstance().uploadDataToCloud(gatewayBean.getDevice_mac(), null); + } + + } } -- Gitblit v1.8.0