From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs |  306 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 306 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
new file mode 100755
index 0000000..4cd1d83
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
@@ -0,0 +1,306 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.DeviceAirConditioner
+{
+    /// <summary>
+    /// 涓ぎ绌鸿皟鐨勬ā鍧楀崌绾х晫闈�
+    /// </summary>
+    public class ACZbGatewayModuleUpdateForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 璁惧Ota
+        /// </summary>
+        private OTADevice otaDevice = null;
+        /// <summary>
+        /// 璁惧
+        /// </summary>
+        private CommonDevice deviceAc = null;
+        /// <summary>
+        /// 鍓嶅洖閫夋嫨鐨勬帶浠�
+        /// </summary>
+        private NormalSelectControl oldSelectContr = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_deviceAc">璁惧</param>
+        public void ShowForm(CommonDevice i_deviceAc)
+        {
+            this.deviceAc = i_deviceAc;
+            this.otaDevice = Common.LocalDevice.Current.GetOTADevice(i_deviceAc.DeviceAddr);
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAirConditioningModule));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var frameBack = new FrameLayout();
+            frameBack.Height = Application.GetRealHeight(3);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(frameBack);
+
+            var listView = new VerticalListControl(29);
+            listView.Y = frameBack.Bottom;
+            listView.Height = bodyFrameLayout.Height - frameBack.Height;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            //鍒濆鍖栫┖璋冩ā鍧楀垪琛�
+            this.InitAirConditioningModuleList(listView);
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栫┖璋冩ā鍧楀垪琛╛________________
+
+        /// <summary>
+        /// 鍒濆鍖栫┖璋冩ā鍧楀垪琛�
+        /// </summary>
+        private void InitAirConditioningModuleList(VerticalListControl listView)
+        {
+            var list = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.ZigbeeDevice, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString());
+            var listUpdate = new List<FirmwareVersionInfo>();
+            foreach (var data in list)
+            {
+                if (data.Name.EndsWith(".bin") == true)
+                {
+                    //鍙.bin鏂囦欢
+                    listUpdate.Add(data);
+                }
+            }
+            if (listUpdate.Count == 0)
+            {
+                //娌℃湁鍙崌绾х殑绌鸿皟妯″潡
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAirConditioningUpdateModule));
+                return;
+            }
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                for (int i = 0; i < listUpdate.Count; i++)
+                {
+                    //娣诲姞妯″潡琛�
+                    this.AddModuleRow(listView, listUpdate[i], i.ToString(), i != listUpdate.Count - 1);
+                }
+                //璋冩暣楂樺害
+                listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
+
+                //鍗囩骇
+                var btnUpdate = new BottomClickButton();
+                btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
+                bodyFrameLayout.AddChidren(btnUpdate);
+                btnUpdate.ButtonClickEvent += (sender, e) =>
+                {
+                    var selectInfo = this.GetSelectFirmware(listView, listUpdate);
+                    if (selectInfo == null)
+                    {
+                        //娌℃湁閫夋嫨鍥轰欢
+                        return;
+                    }
+                    //璁惧鍗囩骇
+                    HdlThreadLogic.Current.RunThread(() =>
+                    {
+                        this.DoDeviceUpdate(selectInfo);
+                    });
+                };
+            });
+        }
+
+        /// <summary>
+        /// 娣诲姞妯″潡琛�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name="info"></param>
+        /// <param name="mainkeys"></param>
+        private void AddModuleRow(VerticalListControl listView, FirmwareVersionInfo info, string mainkeys,bool addLine)
+        {
+            //鑾峰彇绌鸿皟妯″潡鐨勫悕瀛�
+            string textView = this.GetAirConditioningModuleName(info);
+            var row = new NormalSelectControl(textView, listView.rowSpace / 2);
+            row.MainKeys = mainkeys;
+            listView.AddChidren(row);
+            row.InitControl("Device/AirConditionerEpoint.png");
+            if (addLine == true)
+            {
+                row.AddBottomLine();
+            }
+            row.ButtonClickEvent += (sender, e) =>
+            {
+                //鍙栨秷
+                if (row.IsSelected == true)
+                {
+                    row.IsSelected = false;
+                    oldSelectContr = null;
+                    return;
+                }
+                //閫夋嫨
+                row.IsSelected = true;
+                if (oldSelectContr != null)
+                {
+                    oldSelectContr.IsSelected = false;
+                }
+                oldSelectContr = row;
+            };
+        }
+
+        /// <summary>
+        /// 鑾峰彇绌鸿皟妯″潡鐨勫悕瀛�
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        private string GetAirConditioningModuleName(FirmwareVersionInfo info)
+        {
+            string textView = string.Empty;
+            if (info.Name.Contains("IRACC_DAK") == true)
+            {
+                //澶ч噾绌鸿皟妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uDakAirConditioningModule);
+            }
+            else if (info.Name.Contains("IRACC_HIC") == true)
+            {
+                //閲嶅伐绌鸿皟妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uHicAirConditioningModule);
+            }
+            else if (info.Name.Contains("IRACC_HITACHI") == true)
+            {
+                //鏃ョ珛绌鸿皟妯″潡
+                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>
+        /// <param name="listView"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        private FirmwareVersionInfo GetSelectFirmware(VerticalListControl listView, List<FirmwareVersionInfo> listInfo)
+        {
+            int contrCount = listView.ChildrenCount;
+            for (int i = 0; i < contrCount; i++)
+            {
+                var myView = listView.GetChildren(i) as NormalSelectControl;
+                if (myView == null || myView.IsSelected == false)
+                {
+                    continue;
+                }
+                return listInfo[i];
+            }
+            return null;
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鍗囩骇___________________________
+
+        /// <summary>
+        /// 璁惧鍗囩骇
+        /// </summary>
+        private void DoDeviceUpdate(FirmwareVersionInfo updateInfo)
+        {
+            //鎵撳紑杩涘害鏉�
+            ProgressFormBar.Current.Start();
+            //璁惧鍗囩骇
+            var updateLogic = new HdlACZbGatewayUpdateLogic(deviceAc, updateInfo);
+            //鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢
+            updateLogic.UpdateStatuChangedEvent += (div, msg) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    if (div == -1)
+                    {
+                        //寮傚父
+                        this.ShowMassage(ShowMsgType.Tip, msg);
+                        ProgressFormBar.Current.Close();
+                    }
+                    else if (div == 0)
+                    {
+                        //涓�鑸俊鎭�
+                        ProgressFormBar.Current.SetMsg(msg);
+                    }
+                    else if (div == 1)
+                    {
+                        //鍗囩骇瀹屾垚
+                        ProgressFormBar.Current.Close();
+                        this.ShowMassage(ShowMsgType.Tip, msg);
+
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鍏抽棴鐣岄潰
+                            this.CloseForm();
+                        });
+                    }
+                });
+            };
+            //杩涘害鍊兼敼鍙樹簨浠�
+            updateLogic.ProgressEvent += (value) =>
+            {
+                ProgressFormBar.Current.SetValue(value);
+            };
+            //璁惧鍗囩骇寮�濮�
+            updateLogic.StartUpdateReady();
+            //鍏抽棴浜嬩欢
+            ProgressFormBar.Current.CloseEvent += () =>
+            {
+                //鍗囩骇瀵硅薄
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(deviceAc.DeviceAddr) == true
+                    && FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].IsFinishUpdate == true)
+                {
+                    //濡傛灉璁惧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
+                    FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].Dispose();
+                    FirmwareUpdateResourse.dicUpdateList.Remove(deviceAc.DeviceAddr);
+                }
+            };
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0