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 } }