mac
2023-12-19 74d51db562aea6e2d8cb8f861a5eeeeb750696fb
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -487,6 +487,7 @@
        String version = getKeyValue("version", getKeyValue("data", data));//固件版本
        String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//云端上文件MD5
        String imageId = getKeyValue("imageId", getKeyValue("data", data));//固件镜像id
        String module = "FW#" + imageId;
        //升级本地优先->云端升级
        boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
@@ -495,21 +496,24 @@
            //1,建立本地服务;
            //2,告诉网关手机ip和端口;
            //实例化 获取ip 地址
            if (HdlOtaLogic.getInstance().mServiceStart) {
                HdlOtaLogic.getInstance().unLocalService();
            }
            HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() {
                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                    //本地升级固件文件路径
                    String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version);
                    String data = HdlFileLogic.getInstance().readFile(firmwarePathFileName);
                    if (TextUtils.isEmpty(data)) {
                    byte[] data = HdlFileLogic.getInstance().readFileByte(firmwarePathFileName);
                    if (data == null || data.length == 0) {
                        uniCallbackData(null, -2, "本地找不到升级固件文件,请下载好固件文件,再重新升级.", callback);
                        return;
                    }
                    String md5 = HDLMD5Utils.encodeMD5(data);//网关固件需要
                    //升级固件文件地址
                    String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName;
                    String upgradeFileLocalPathUrl = "http://" + AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName;
                    //通知给网关升级固件文件地址等信息
                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, hardwareModel, version, data.length() + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                        @Override
                        public void onSuccess(String obj) {
                            HdlLogLogic.print("通知给网关升级固件文件地址成功.", true);
@@ -681,9 +685,10 @@
        String deviceMac = getKeyValue("mac", getKeyValue("data", data));//逆变器设备mac(查找socket)
        String deviceOid = getKeyValue("oid", getKeyValue("data", data));//逆变器设备oid
        String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//驱动版本id
        String module = getKeyValue("module", getKeyValue("data", data));//模块信息
        String version = getKeyValue("version", getKeyValue("data", data));//驱动版本号
        String driverCode = getKeyValue("driverCode", getKeyValue("data", data));//驱动编码
        String imageId = getKeyValue("imageId", getKeyValue("data", data));//固件镜像id
        String module = driverCode + "#" + imageId;
        //升级本地优先->云端升级
        boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
        if (isLocalConnect) {
@@ -696,24 +701,24 @@
                public void onServiceConnected(ComponentName name, IBinder service) {
                    //本地升级驱动文件路径
                    String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version);
                    String data = HdlFileLogic.getInstance().readFile(drivePathFileName);
                    if (TextUtils.isEmpty(data)) {
                    byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName);
                    if (data == null || data.length == 0) {
                        uniCallbackData(null, -2, "本地找不到升级驱动文件,请下载好驱动文件,再重新升级.", callback);
                        return;
                    }
                    String md5 = HDLMD5Utils.encodeMD5(data);//网关驱动需要
                    //升级驱动文件地址
                    String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName;
                    String upgradeFileLocalPathUrl = "http://" + AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName;
                    //通知给网关升级驱动文件地址等信息
                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, deviceOid, module, version, data.length() + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, deviceOid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                        @Override
                        public void onSuccess(String obj) {
                            HdlLogLogic.print("通知给网关升级驱动文件地址成功.", false);
                            HdlLogLogic.print("通知给网关升级驱动文件地址成功.", true);
                        }
                        @Override
                        public void onError(HDLLinkException e) {
                            HdlLogLogic.print("通知给网关升级驱动文件地址失败,无法升级.", false);
                            HdlLogLogic.print("通知给网关升级驱动文件地址失败,无法升级.", true);
                            uniCallbackData(null, -2, "通知给网关升级驱动文件地址失败,无法升级,", callback);
                        }
                    });