using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.Gateway { /// /// 网关固件信息界面★ /// public class GatewayFirmwareInfoForm : UserCenterCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalScrolViewLayout listView = null; /// /// 当前选择的网关 /// private ZbGateway zbGateway = null; /// /// 升级固件信息(0:Linux新版本 1:协调器新版本 2~X:都是虚拟驱动的) /// private List listVersionInfo = null; /// /// 虚拟驱动号 /// private List listVode = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 当前选择的网关 public void ShowForm(ZbGateway i_zbGateway) { if (zbGateway != null && Common.LocalGateway.Current.GetGatewayId(zbGateway) != Common.LocalGateway.Current.GetGatewayId(i_zbGateway)) { //不是同一个东西 return; } this.zbGateway = i_zbGateway; //设置标题信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareInformation)); //初始化中部控件 this.InitMiddleFrame(); } /// /// 初始化中部控件 /// private void InitMiddleFrame() { bodyFrameLayout.RemoveAll(); listView = new VerticalScrolViewLayout(); listView.Height = bodyFrameLayout.Height; bodyFrameLayout.AddChidren(listView); if (this.NowFormIsAction() == true) { //开启进度条 this.ShowProgressBar(); } new System.Threading.Thread(async () => { //获取网关新版本信息 this.listVersionInfo = await Common.LocalGateway.Current.GetGatewayAllNewVersion(this.zbGateway); if (listVersionInfo == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return; } //虚拟驱动号 this.listVode = await Common.LocalGateway.Current.GetListVDDriveCode(this.zbGateway); //关闭进度条 this.CloseProgressBar(); //添加网关版本行 Application.RunOnMainThread(() => { //添加网关行 this.AddGatewayRow(); //添加协调器行 this.AddCoordinatorRow(); if (listVode != null) { //添加虚拟驱动行 this.AddVirtualRow(listVode); } //添加固件升级行 this.AddFirmwareUpdateRow(); }); }) { IsBackground = true }.Start(); } #endregion #region ■ 添加网关行_________________________ /// /// 添加网关行 /// private void AddGatewayRow() { var row = new StatuRowLayout(listView); //网关 var btnUpview = new RowCenterView(false); btnUpview.TextID = R.MyInternationalizationString.uGateWay; row.AddChidren(btnUpview); row.AddRightIconControl(); row.MouseUpEvent += (sender, e) => { var form = new GatewayLinuxInfoForm(); this.AddForm(form, zbGateway); }; } #endregion #region ■ 添加协调器行_______________________ /// /// 添加协调器行 /// private void AddCoordinatorRow() { var row = new StatuRowLayout(listView); //协调器 var btnUpview = new RowCenterView(false); btnUpview.TextID = R.MyInternationalizationString.uCoordinator; row.AddChidren(btnUpview); row.AddRightIconControl(); row.MouseUpEvent += (sender, e) => { var form = new GatewayCoordinatorInfoForm(); this.AddForm(form, zbGateway); }; } #endregion #region ■ 添加虚拟驱动行_____________________ /// /// 添加虚拟驱动行 /// /// 虚拟驱动列表 private void AddVirtualRow(List listCode) { var row = new StatuRowLayout(listView); //虚拟驱动 var btnUpview = new RowCenterView(false); btnUpview.TextID = R.MyInternationalizationString.uVirtualDrive; row.AddChidren(btnUpview); row.AddRightIconControl(); row.MouseUpEvent += (sender, e) => { var form = new GatewayVirtualDriveListForm(); this.AddForm(form, listCode); }; } #endregion #region ■ 添加固件升级行_____________________ /// /// 添加固件升级行 /// private void AddFirmwareUpdateRow() { var statuRow = new StatuRowLayout(); listView.AddChidren(statuRow); //固件升级 var btnUpview = new RowCenterView(false); btnUpview.TextID = R.MyInternationalizationString.uFirmwareUpdate; statuRow.AddChidren(btnUpview); //版本向右的图标 statuRow.AddRightIconControl(); if (listVersionInfo[0] != null || listVersionInfo[1] != null || listVersionInfo[2] != null) { //提示有新版本 var btnNewVersion = new RowNewVersionTipView(); statuRow.AddChidren(btnNewVersion); } statuRow.MouseUpEvent += (sender, e) => { ZbGateway realway = null; if (Common.LocalGateway.Current.GetRealGateway(ref realway, zbGateway) == false) { //错误:网关对象丢失 string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg); this.ShowErrorMsg(msg); return; } var form = new GatewayFirmwareUpdateForm(); this.AddForm(form, realway, listVersionInfo[2], listVersionInfo[1], listVersionInfo[0], this.listVode); }; } #endregion } }