From d87400af518ebc9274f4447f06476959c3aa5102 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 14 七月 2020 16:29:42 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into dev-2020xm
---
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