From 3d9a11739a3972deea2aa45f2b4dd219740ffa70 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 23 十一月 2023 21:29:10 +0800 Subject: [PATCH] 2023年11月23日21:28:21 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 107 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 91 insertions(+), 16 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 36f0772..f18ca66 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -272,6 +272,16 @@ this.uniCancelDownloadingUpgradeFile(data, callback); } break; + //鎵撳紑鏈嶅姟 + case HDLUniMP.UNI_EVENT_REPLY_OTA_OPEN_SERVICE: { + this.uniOpenService(data, callback); + } + break; + //鍏抽棴鏈嶅姟 + case HDLUniMP.UNI_EVENT_REPLY_OTA_CLOSE_SERVICE: { + this.uniCloseService(data, callback); + } + break; } } @@ -345,7 +355,7 @@ * 鍓嶆彁鏉′欢:璁惧鑷姩涓婃姤oid淇℃伅缁欎簯绔� */ private void uniGetCurrentDeviceFirmwares(Object data, DCUniMPJSCallback callback) { - String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data)); + String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, new CloudCallBeak<List<DeviceFirmwareBean>>() { @Override public void onSuccess(List<DeviceFirmwareBean> obj) { @@ -409,19 +419,32 @@ } /** - * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戜笅杞芥寚浠� + * 鍚戜簯绔彂璧枫�愯澶囧浐浠朵笅杞姐�戞寚浠� */ 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().getDeviceFirmwareDownloadUrl(firmwareVersionId, new CloudCallBeak<DownloadUrlBean>() { + String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d + 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));//鍌ㄥ瓨鍦ㄦ湰鍦伴┍鍔ㄦ枃浠惰矾寰� + String url = getKeyValue("url", getKeyValue("data", data));//浜戠涓婃枃浠跺湴鍧� + String md5 = getKeyValue("md5", getKeyValue("data", data));//浜戠涓婃枃浠禡D5 + HdlOtaLogic.getInstance().getDeviceUpgradeDownloadFile(url, new CloudCallBeak<ResponseBody>() { @Override - public void onSuccess(DownloadUrlBean obj) { - uniCallbackData(obj, callback); + public void onSuccess(ResponseBody responseBody) { + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, version); + boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(firmwarePathFileName, responseBody, md5, HdlOtaLogic.firmware_type); + if (isBoolean) { + HdlFileLogic.getInstance().deleteFile(localUrl);//涓嬭浇鎴愬姛,鍒犻櫎鏃ф枃浠�; + } else { + HdlFileLogic.getInstance().deleteFile(firmwarePathFileName);//涓嬭浇澶辫触鍒犻櫎涓嶅畬鎴愭暟鎹�; + } + HdlLogLogic.print("鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛.", false); } @Override public void onFailure(HDLException e) { + HdlLogLogic.print("涓嬭浇鍥轰欢鏂囦欢鍒板唴瀛樺け璐�.", false); uniCallbackData(null, e.getCode(), e.getMsg(), callback); } }); @@ -431,30 +454,61 @@ * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾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 deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d + 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 //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇 boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac); if (isLocalConnect) { //鏈湴 //1,寤虹珛鏈湴鏈嶅姟锛� - // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱 + //2,鍛婅瘔缃戝叧鎵嬫満ip鍜岀鍙o紱 + //瀹炰緥鍖� 鑾峰彇ip 鍦板潃 + HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + //鏈湴鍗囩骇鍥轰欢鏂囦欢璺緞 + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, version); + String data = HdlFileLogic.getInstance().readFile(firmwarePathFileName); + String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕� + //鍗囩骇鍥轰欢鏂囦欢鍦板潃 + String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName; + //閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�绛変俊鎭� + HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, hardwareModel, version, data.length() + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() { + @Override + public void onSuccess(String obj) { + HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�鎴愬姛.", false); + } + + @Override + public void onError(HDLLinkException e) { + HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.", false); + uniCallbackData(null, -2, "閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback); + } + }); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + uniCallbackData(null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback); + } + }); } else { //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() { @Override public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) { - //1:寰呮満,2:杩炴帴涓�,3:鏁呴殰,4:杩愯,5:绂荤嚎,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) + //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) if (cloudInverterDeviceBean == null) { uniCallbackData(null, 6, HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); return; } - if (cloudInverterDeviceBean.getDeviceStatus() != 4) { + if (cloudInverterDeviceBean.getDeviceStatus() != 3) { uniCallbackData(null, cloudInverterDeviceBean.getDeviceStatus(), getDeviceStatusString(cloudInverterDeviceBean.getDeviceStatus()), callback); return; } @@ -480,8 +534,6 @@ }); } - - } /** @@ -569,7 +621,7 @@ String localUrl = getKeyValue("localUrl", getKeyValue("data", data));//鍌ㄥ瓨鍦ㄦ湰鍦伴┍鍔ㄦ枃浠惰矾寰� String url = getKeyValue("url", getKeyValue("data", data));//浜戠涓婃枃浠跺湴鍧� String md5 = getKeyValue("md5", getKeyValue("data", data));//浜戠涓婃枃浠禡D5 - HdlOtaLogic.getInstance().getDeviceDriverDownloadFile(url, new CloudCallBeak<ResponseBody>() { + HdlOtaLogic.getInstance().getDeviceUpgradeDownloadFile(url, new CloudCallBeak<ResponseBody>() { @Override public void onSuccess(ResponseBody responseBody) { String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version); @@ -682,6 +734,29 @@ HdlOtaLogic.getInstance().setStopDriversDownload(); } + /** + * 寮�鍚湇鍔� + */ + private void uniOpenService(Object data, DCUniMPJSCallback callback) { + HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + } + + @Override + public void onServiceDisconnected(ComponentName name) { + HdlOtaLogic.getInstance().mServiceStart = false; + } + }); + } + + /** + * 鍏抽棴鏈嶅姟 + */ + private void uniCloseService(Object data, DCUniMPJSCallback callback) { + HdlOtaLogic.getInstance().unLocalService(); + } + /** * @param deviceStatus 閫嗗彉鍣ㄨ繛鎺ヤ簯绔姸鎬佸�硷紙 1:寰呮満,2:杩炴帴涓�,3:鏁呴殰,4:杩愯,5:绂荤嚎锛� -- Gitblit v1.8.0