using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter.GatewayAdd
|
{
|
/// <summary>
|
/// 添加网关的帮助界面
|
/// </summary>
|
public class AddGatewayHelpForm : EditorCommonForm
|
{
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_div">区分</param>
|
public void ShowForm(string i_div)
|
{
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSearchHelp));
|
|
//初始化中部信息
|
this.InitMiddleFrame(i_div);
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
private void InitMiddleFrame(string i_div)
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
Dictionary<string, List<string>> dicText = null;
|
|
if (i_div == "Wired")
|
{
|
//获取有线网关的帮助消息
|
dicText = this.GetWiredGatewayHelpMsg();
|
}
|
else if (i_div == "Udp")
|
{
|
//获取无线网关的帮助消息
|
dicText = this.GetWirelessGatewayHelpMsg();
|
}
|
else if (i_div == "Ap")
|
{
|
//获取无线网关的帮助消息
|
dicText = this.GetWirelessGatewayHelpMsg();
|
}
|
else if (i_div == "Mini")
|
{
|
//获取mini网关的帮助消息
|
dicText = this.GetMiniGatewayHelpMsg();
|
}
|
|
if (dicText != null)
|
{
|
//初始化网关帮助控件
|
this.InitGatewayHelpControl(dicText);
|
}
|
}
|
|
/// <summary>
|
/// 初始化网关帮助控件
|
/// </summary>
|
/// <param name="dicText">显示文本</param>
|
private void InitGatewayHelpControl(Dictionary<string, List<string>> dicText)
|
{
|
var listView = new VerticalFrameControl();
|
listView.Height = bodyFrameLayout.Height;
|
bodyFrameLayout.AddChidren(listView);
|
|
//计算高度使用
|
var btnTemp = new NormalViewControl(100, 50, true);
|
btnTemp.TextSize = 12;
|
|
int YY = Application.GetRealHeight(55);
|
foreach (var titleText in dicText.Keys)
|
{
|
//标题
|
var btnTitle = new NormalViewControl(600, 60, true);
|
btnTitle.X = ControlCommonResourse.XXLeft;
|
btnTitle.Y = YY;
|
btnTitle.Text = titleText;
|
listView.frameTable.AddChidren(btnTitle);
|
YY = btnTitle.Bottom + Application.GetRealHeight(46);
|
|
//内容
|
foreach (var content in dicText[titleText])
|
{
|
//根据文本长度,获取行数
|
btnTemp.Text = content;
|
int heightCount = this.GetRowCountByTextLength(btnTemp, 933);
|
var btnMsg = new NormalViewControl(Application.GetRealWidth(933), Application.GetRealHeight(50) * heightCount, false);
|
btnMsg.IsMoreLines = true;
|
btnMsg.TextSize = 12;
|
btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnMsg.X = btnTitle.X;
|
btnMsg.Y = YY;
|
btnMsg.Text = content;
|
listView.frameTable.AddChidren(btnMsg);
|
//内容间距35
|
YY = btnMsg.Bottom + Application.GetRealHeight(35);
|
}
|
//下一个标题的间距是58
|
YY += Application.GetRealHeight(58 - 35);
|
}
|
|
var frameSpace = new FrameLayout();
|
frameSpace.Y = YY;
|
frameSpace.Height = 1;
|
listView.frameTable.AddChidren(frameSpace);
|
|
listView.AdjustTableHeight();
|
}
|
|
#endregion
|
|
#region ■ 有线网关帮助消息___________________
|
|
/// <summary>
|
/// 获取有线网关的帮助消息
|
/// </summary>
|
/// <returns></returns>
|
private Dictionary<string, List<string>> GetWiredGatewayHelpMsg()
|
{
|
var dic = new Dictionary<string, List<string>>();
|
//网关添加指引
|
var keyMsg = Language.StringByID(R.MyInternationalizationString.uAddGatewayGuide);
|
dic[keyMsg] = new List<string>();
|
//请用网线连接网关网口到路由器,网关上电或者恢复出厂设
|
//置之后,系统进行重启,持续50秒(系统指示灯SYS常亮),
|
//待系统指示灯SYS变成1秒周期闪烁,此时可以使用手机APP
|
//进行添加网关步骤。
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWiredGatewayHelp1));
|
|
//操作指引
|
keyMsg = Language.StringByID(R.MyInternationalizationString.uOperationGuide);
|
dic[keyMsg] = new List<string>();
|
//恢复出厂设置:长按ZB/RST按键10秒,此时Z igee网络指
|
//示灯(ZB)状态为快闪,待三个灯全灭,表示恢复出厂设置
|
//成功,则可松开按键,网关开始重启系统
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWiredGatewayHelp2));
|
|
return dic;
|
}
|
|
#endregion
|
|
#region ■ 无线网关帮助消息___________________
|
|
/// <summary>
|
/// 获取无线网关的帮助消息
|
/// </summary>
|
/// <returns></returns>
|
private Dictionary<string, List<string>> GetWirelessGatewayHelpMsg()
|
{
|
var dic = new Dictionary<string, List<string>>();
|
//网关硬件文件帮助
|
var keyMsg = Language.StringByID(R.MyInternationalizationString.uGatewayHardwareFileHelp);
|
dic[keyMsg] = new List<string>();
|
//1、短按ZB/RST按键 ,ZB网络指示灯一直闪烁,则表面此按键和指示灯均正常
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp1));
|
//2、短按HID/WCFG按键,系统指示灯SYS闪烁,表面此按键和指示灯均正常
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp2));
|
//3、RESTART按键为重启键,短按此按键,网关重启,系统指示灯开始常亮
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp3));
|
|
//操作指引
|
keyMsg = Language.StringByID(R.MyInternationalizationString.uOperationGuide);
|
dic[keyMsg] = new List<string>();
|
//1、恢复出厂设置:长按ZB/RST键位10秒,10秒内,Zigbee
|
//网络指示灯(ZB)状态为快闪,10秒钟后,系统指示灯SYS
|
//快闪5秒,5秒内连续按ZB / RST键两次,若所有灯熄灭,则恢
|
//复出厂设置成功,网关开始重启系统。
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp4));
|
//2、确认手机APP是否连接网关,可在APP进行定位操作,若连接正常,网关系统指示灯会快闪
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp5));
|
//3、AP配网模式:可通过长按HID/WCFG按键 5秒,使网关直
|
//接进入建立热点模式,灯光状态变化为按下按键,系统指示灯
|
//SYS快闪5秒后,系统指示灯SYS变为常亮模式,此时热点完成建立
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp6));
|
|
//异常情况处理
|
keyMsg = Language.StringByID(R.MyInternationalizationString.uExceptionHandling);
|
dic[keyMsg] = new List<string>();
|
//1、添加网关过程中,局域网账号和密码发送错误,系统重启
|
//后,网关一直持续保持正在联网状态(系统指示灯SYS 3秒周
|
//期闪烁,灯光偏暗,持续3分钟),随后转成建立网关热点状
|
//态(系统指示灯SYS 5秒间隔闪烁,灯光偏亮),此时可手机
|
//APP退出至网关添加页面,重新进行网关添加,重新发送账号,密码
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp7));
|
//2、在网关已经连接局域网状态下(系统指示灯SYS 1秒间隔
|
//闪烁),手机APP不小心退出了连接界面,可前往添加有线网
|
//关界面,直接进行网关连接
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp8));
|
//3、在网关已经连接局域网状态下(系统指示灯SYS 1秒间隔
|
//闪烁),手机APP一直连接不上网关,可以先退出APP后台,
|
//重新登入进行连接或在有线网关界面直接搜索网关
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp9));
|
//4、WIFI有波动,导致网关联网失败,可重新上电
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWirelessGatewayHelp10));
|
|
return dic;
|
}
|
|
#endregion
|
|
#region ■ mini网关帮助消息___________________
|
|
/// <summary>
|
/// 获取mini网关的帮助消息
|
/// </summary>
|
/// <returns></returns>
|
private Dictionary<string, List<string>> GetMiniGatewayHelpMsg()
|
{
|
var dic = new Dictionary<string, List<string>>();
|
//网关硬件文件帮助
|
var keyMsg = Language.StringByID(R.MyInternationalizationString.uGatewayHardwareFileHelp);
|
dic[keyMsg] = new List<string>();
|
//1、按击开关键,若开关键和夜灯无异常,则夜灯亮起白色环形灯光
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp1));
|
//2、长按或短按恢复出厂设置设置按键,若按键和状态指示灯无异常,则快闪绿色灯光
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp2));
|
|
//操作指引
|
keyMsg = Language.StringByID(R.MyInternationalizationString.uOperationGuide);
|
dic[keyMsg] = new List<string>();
|
//恢复出厂设置:用卡针长按恢复出厂设置按键10秒,此时网
|
//关状态为指示灯绿色快闪,待灯光闪烁停止,即可松开按键,
|
//网关开始系统重启(绿光一秒周期闪烁)
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp3));
|
//换绑:若需要更换绑定账号,不清除数据,短按恢复出厂键,60秒内重新用新的账号搜索网关即可
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp4));
|
|
//异常情况处理
|
keyMsg = Language.StringByID(R.MyInternationalizationString.uExceptionHandling);
|
dic[keyMsg] = new List<string>();
|
//1、添加网关过程中,局域网账号和密码发送错误,网关一直
|
//持续保持正在联网状态(持续蓝灯)3分钟,随后转成建立网
|
//关热点状态(蓝灯5秒间隔闪烁),此时可手机APP退出至网
|
//关添加页面,重新进行网关添加,重新发送账号,密码
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp5));
|
//2、在网关已经连接局域网状态下(蓝色灯1秒间隔闪烁),
|
//手机APP不小心退出了连接界面,可前往有线网关界面,直
|
//接进行网关连接
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp6));
|
//3、在网关已经连接局域网状态下(蓝色灯1秒间隔闪烁),
|
//手机APP一直连接不上网关,可以先退出APP后台,重新登
|
//入进行连接
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp7));
|
//4、WIFI有波动,导致网关联网失败(持续蓝灯),可重新上电
|
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddMiniGatewayHelp8));
|
|
return dic;
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 根据文本长度,获取行数
|
/// </summary>
|
/// <param name="btnContr"></param>
|
/// <param name="i_width"></param>
|
/// <returns></returns>
|
private int GetRowCountByTextLength(NormalViewControl btnContr, int i_width)
|
{
|
int realWidth = btnContr.GetRealWidthByText();
|
int myWidth = Application.GetRealWidth(i_width);
|
|
int row = realWidth / myWidth;
|
int value = realWidth % myWidth;
|
if (value > 8)
|
{
|
row++;
|
}
|
return row;
|
}
|
|
#endregion
|
}
|
}
|