using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.GatewayAdd
{
///
/// 添加网关的帮助界面
///
public class AddGatewayHelpForm : EditorCommonForm
{
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 区分
public void ShowForm(string i_div)
{
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSearchHelp));
//初始化中部信息
this.InitMiddleFrame(i_div);
}
///
/// 初始化中部信息
///
private void InitMiddleFrame(string i_div)
{
//清空bodyFrame
this.ClearBodyFrame();
Dictionary> 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);
}
}
///
/// 初始化网关帮助控件
///
/// 显示文本
private void InitGatewayHelpControl(Dictionary> 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 ■ 有线网关帮助消息___________________
///
/// 获取有线网关的帮助消息
///
///
private Dictionary> GetWiredGatewayHelpMsg()
{
var dic = new Dictionary>();
//网关添加指引
var keyMsg = Language.StringByID(R.MyInternationalizationString.uAddGatewayGuide);
dic[keyMsg] = new List();
//请用网线连接网关网口到路由器,网关上电或者恢复出厂设
//置之后,系统进行重启,持续50秒(系统指示灯SYS常亮),
//待系统指示灯SYS变成1秒周期闪烁,此时可以使用手机APP
//进行添加网关步骤。
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWiredGatewayHelp1));
//操作指引
keyMsg = Language.StringByID(R.MyInternationalizationString.uOperationGuide);
dic[keyMsg] = new List();
//恢复出厂设置:长按ZB/RST按键10秒,此时Z igee网络指
//示灯(ZB)状态为快闪,待三个灯全灭,表示恢复出厂设置
//成功,则可松开按键,网关开始重启系统
dic[keyMsg].Add(Language.StringByID(R.MyInternationalizationString.uAddWiredGatewayHelp2));
return dic;
}
#endregion
#region ■ 无线网关帮助消息___________________
///
/// 获取无线网关的帮助消息
///
///
private Dictionary> GetWirelessGatewayHelpMsg()
{
var dic = new Dictionary>();
//网关硬件文件帮助
var keyMsg = Language.StringByID(R.MyInternationalizationString.uGatewayHardwareFileHelp);
dic[keyMsg] = new List();
//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();
//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();
//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网关帮助消息___________________
///
/// 获取mini网关的帮助消息
///
///
private Dictionary> GetMiniGatewayHelpMsg()
{
var dic = new Dictionary>();
//网关硬件文件帮助
var keyMsg = Language.StringByID(R.MyInternationalizationString.uGatewayHardwareFileHelp);
dic[keyMsg] = new List();
//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();
//恢复出厂设置:用卡针长按恢复出厂设置按键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();
//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 ■ 一般方法___________________________
///
/// 根据文本长度,获取行数
///
///
///
///
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
}
}