using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.Gateway
|
{
|
/// <summary>
|
/// 网关固件信息界面★
|
/// </summary>
|
public class GatewayFirmwareInfoForm : UserCenterCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalScrolViewLayout listView = null;
|
/// <summary>
|
/// 当前选择的网关
|
/// </summary>
|
private ZbGateway zbGateway = null;
|
/// <summary>
|
/// 升级固件信息(0:Linux新版本 1:协调器新版本 2~X:都是虚拟驱动的)
|
/// </summary>
|
private List<FirmwareVersionInfo> listVersionInfo = null;
|
/// <summary>
|
/// 虚拟驱动号
|
/// </summary>
|
private List<ZbGatewayData.DriveCodeObj> listVode = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_zbGateway">当前选择的网关</param>
|
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();
|
}
|
|
/// <summary>
|
/// 初始化中部控件
|
/// </summary>
|
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 ■ 添加网关行_________________________
|
|
/// <summary>
|
/// 添加网关行
|
/// </summary>
|
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 ■ 添加协调器行_______________________
|
|
/// <summary>
|
/// 添加协调器行
|
/// </summary>
|
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 ■ 添加虚拟驱动行_____________________
|
|
/// <summary>
|
/// 添加虚拟驱动行
|
/// </summary>
|
/// <param name="listCode">虚拟驱动列表</param>
|
private void AddVirtualRow(List<ZbGatewayData.DriveCodeObj> 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 ■ 添加固件升级行_____________________
|
|
/// <summary>
|
/// 添加固件升级行
|
/// </summary>
|
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
|
}
|
}
|