黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
@@ -36,7 +36,7 @@
        public void ShowForm(CommonDevice i_deviceAc)
        {
            this.deviceAc = i_deviceAc;
            this.otaDevice = Common.LocalDevice.Current.GetOTADevice(i_deviceAc.DeviceAddr);
            this.otaDevice = HdlDeviceCommonLogic.Current.GetOTADevice(i_deviceAc.DeviceAddr);
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAirConditioningModule));
@@ -77,8 +77,8 @@
        /// </summary>
        private void InitAirConditioningModuleList(VerticalListControl listView)
        {
            var list = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.ZigbeeDevice, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString());
            if (list.Count == 0)
            var listUpdate = this.GetAirConditioningModuleData();
            if (listUpdate.Count == 0)
            {
                //没有可升级的空调模块
                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAirConditioningUpdateModule));
@@ -86,10 +86,10 @@
            }
            HdlThreadLogic.Current.RunMainInThread(() =>
            {
                for (int i = 0; i < list.Count; i++)
                for (int i = 0; i < listUpdate.Count; i++)
                {
                    //添加模块行
                    this.AddModuleRow(listView, list[i], i.ToString(), i != list.Count - 1);
                    this.AddModuleRow(listView, listUpdate[i], i.ToString(), i != listUpdate.Count - 1);
                }
                //调整高度
                listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
@@ -100,7 +100,7 @@
                bodyFrameLayout.AddChidren(btnUpdate);
                btnUpdate.ButtonClickEvent += (sender, e) =>
                {
                    var selectInfo = this.GetSelectFirmware(listView, list);
                    var selectInfo = this.GetSelectFirmware(listView, listUpdate);
                    if (selectInfo == null)
                    {
                        //没有选择固件
@@ -121,7 +121,7 @@
        /// <param name="listView"></param>
        /// <param name="info"></param>
        /// <param name="mainkeys"></param>
        private void AddModuleRow(VerticalListControl listView, FirmwareVersionInfo info, string mainkeys,bool addLine)
        private void AddModuleRow(VerticalListControl listView, FirmwareVersionInfo info, string mainkeys, bool addLine)
        {
            //获取空调模块的名字
            string textView = this.GetAirConditioningModuleName(info);
@@ -175,12 +175,73 @@
                //日立空调模块
                textView = Language.StringByID(R.MyInternationalizationString.uHitachiAirConditioningModule);
            }
            else if (info.Name.Contains("IRACC_SAEC") == true)
            {
                //电机空调模块
                textView = Language.StringByID(R.MyInternationalizationString.uSaecAirConditioningModule);
            }
            else if (info.Name.Contains("IRACC_TOSHIBA") == true)
            {
                //东芝空调模块
                textView = Language.StringByID(R.MyInternationalizationString.uToshibaAirConditioningModule);
            }
            else if (info.Name.Contains("IRACC_GREE") == true)
            {
                //格力空调模块
                textView = Language.StringByID(R.MyInternationalizationString.uGreeAirConditioningModule);
            }
            else if (info.Name.Contains("IRACC_MIDEA") == true)
            {
                //美的空调模块
                textView = Language.StringByID(R.MyInternationalizationString.uMideaAirConditioningModule);
            }
            else
            {
                //空调升级模块
                textView = Language.StringByID(R.MyInternationalizationString.uAirConditioningUpdateModule);
            }
            return textView;
        }
        #endregion
        #region ■ 获取空调模块数据___________________
        /// <summary>
        /// 获取空调模块数据
        /// </summary>
        /// <returns></returns>
        private List<FirmwareVersionInfo> GetAirConditioningModuleData()
        {
            var listUpdate = new List<FirmwareVersionInfo>();
            var list = HdlFirmwareUpdateLogic.Current.GetFirmwareVersionListInfo(FirmwareLevelType.A设备, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString());
            foreach (var data in list)
            {
                if (data.Name.EndsWith(".bin") == true)
                {
                    //只要.bin文件
                    listUpdate.Add(data);
                }
            }
            if (Common.Config.Instance.Home.TemplateMode == 2 && listUpdate.Count == 0)
            {
                //从本地获取
                var listFile = HdlFileLogic.Current.GetFileFromDirectory(HdlFileNameResourse.FirmwareUpdateDirectory);
                string otaKey = otaDevice.HwVersion.ToString() + "_" + otaDevice.ImgTypeId.ToString();
                foreach (var file in listFile)
                {
                    if (file.StartsWith("AC_" + otaKey) == true && file.EndsWith(".bin") == true)
                    {
                        var info = new FirmwareVersionInfo();
                        info.Name = System.IO.Path.Combine(HdlFileNameResourse.FirmwareUpdateDirectory, file);
                        info.ImagType = "-100";
                        listUpdate.Add(info);
                    }
                }
            }
            return listUpdate;
        }
        #endregion
@@ -262,12 +323,12 @@
            ProgressFormBar.Current.CloseEvent += () =>
            {
                //升级对象
                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(deviceAc.DeviceAddr) == true
                    && FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].IsFinishUpdate == true)
                if (HdlFirmwareUpdateResourse.dicUpdateList.ContainsKey(deviceAc.DeviceAddr) == true
                    && HdlFirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].IsFinishUpdate == true)
                {
                    //如果设备已经升级完成,界面关闭时,则移除内存
                    FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].Dispose();
                    FirmwareUpdateResourse.dicUpdateList.Remove(deviceAc.DeviceAddr);
                    HdlFirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].Dispose();
                    HdlFirmwareUpdateResourse.dicUpdateList.Remove(deviceAc.DeviceAddr);
                }
            };
        }