using System; using Shared; using Shared.SimpleControl; namespace SmartHome { public class SearchServerOnePortListPage : FrameLayout { #region 文本 string text_Title = "远程"; string text_userName = "组名"; string text_projectName = "工程名"; string text_password = "密码"; string text_entry_userName_tip = "请输入组名。"; string text_entry_projectName_tip = "请输入工程名。"; string text_entry_password_tip = "请输入密码。"; string text_link = "连接"; string text_back = "后退"; string text_reading = "读取中"; /// /// 已升级 /// string text_Upgraded = "已升级"; /// /// 正在升级 /// string text_Upgrading = "正在升级"; /// /// 升级失败 /// string text_UpgradeFailed = "升级失败"; /// /// 未知版本 /// string text_UnknownVersion = "未知版本"; /// /// 读取失败 /// string text_readFailure = "读取失败"; string txt_breakLink = "断开连接"; string txt_connectionSucceeded = "搜索完成"; string txt_linkSeverFailed = "连接服务器失败"; string txt_DataError = "数据异常"; string txt_QueryFailed = "查询失败"; string txt_NoData = "无数据"; string txt_Search = "搜索"; #endregion /// /// 中间界面 /// public VerticalScrolViewLayout contentView; public VerticalScrolViewLayout infoView; public VerticalScrolViewLayout listView; public override void RemoveFromParent () { CommonPage.IsRemote = false; base.RemoveFromParent (); } public SearchServerOnePortListPage () { if (Language.CurrentLanguage != "Chinese") { text_Title = "Remote"; text_userName = "Group name"; text_projectName = "project name"; text_password = "Password"; text_entry_userName_tip = "Please enter the group name."; text_entry_projectName_tip = "Please enter the project name."; text_entry_password_tip = "Please input a password."; text_Upgraded = "Upgraded"; text_Upgrading = "Upgrading"; text_UpgradeFailed = "Upgrade failed"; text_UnknownVersion = "Unknown version"; text_readFailure = "Read failure"; text_back = "Back"; text_link = "Link"; text_reading = "Reading"; txt_breakLink = "Break link"; txt_connectionSucceeded = "Search complete"; txt_linkSeverFailed = "Failed to connect to the server"; txt_DataError = "Data exception"; txt_QueryFailed = "Query failed"; txt_Search = "search"; txt_NoData = "No data"; } } public void ShowPage () { BackgroundColor = SkinStyle.Current.MainColor; initTop (); initContentView (); } void initTop () { FrameLayout topView = new FrameLayout () { Height = Application.GetRealHeight (126), }; AddChidren (topView); Button NameButton = new Button () { Width = Application.GetRealWidth (400), Height = Application.GetMinReal (90), Text = text_Title, TextColor = SkinStyle.Current.TextColor1, Gravity = Gravity.CenterHorizontal, TextAlignment = TextAlignment.Center, Y = Application.GetRealHeight (30), TextSize = 20, }; topView.AddChidren (NameButton); var btnBack = new Button () { X = Application.GetRealWidth (34), Y = Application.GetRealHeight (30), Width = Application.GetRealWidth (200), Height = Application.GetMinReal (90), TextAlignment = TextAlignment.CenterLeft, Text = text_back, TextColor = 0xCC0195F9, }; topView.AddChidren (btnBack); btnBack.MouseUpEventHandler = (sender, e) => { this.RemoveFromParent (); }; } void initContentView () { var remoteClient = new SystemRemote (); string userName = ""; string projectName = ""; string password = ""; contentView = new VerticalScrolViewLayout () { Y = Application.GetRealHeight (126), Height = Application.GetRealHeight (1136 - 126), BackgroundColor = SkinStyle.Current.ViewColor, ScrollEnabled = false, }; AddChidren (contentView); infoView = new VerticalScrolViewLayout () { Height = Application.GetRealHeight (1136 - 126 - 90), ScrollEnabled = false, }; contentView.AddChidren (infoView); #region var userNameView = new FrameLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; infoView.AddChidren (userNameView); var btnUserNameTitle = new Button () { X = Application.GetRealWidth (32), Text = text_userName, TextColor = SkinStyle.Current.TextColor1, }; btnUserNameTitle.Width = btnUserNameTitle.GetTextWidth () + Application.GetRealWidth (30); userNameView.AddChidren (btnUserNameTitle); var tvUserName = new EditText () { Width = Application.GetRealWidth (400), X = btnUserNameTitle.Right, TextColor = SkinStyle.Current.TextColor1, }; userNameView.AddChidren (tvUserName); var btnLine = new Button () { Height = Application.GetRealHeight (2), BackgroundColor = SkinStyle.Current.LineColor, }; infoView.AddChidren (btnLine); #endregion var rightButton1 = new Button () { Height = Application.GetRealHeight (93), TextAlignment = TextAlignment.Center, }; infoView.AddChidren (rightButton1); listView = new VerticalScrolViewLayout () { Height = Application.GetRealHeight (1136 - 126 - 90 - 93 * 2), }; infoView.AddChidren (listView); //-------------- var btnOption = new Button () { TextAlignment = TextAlignment.Center, TextColor = SkinStyle.Current.TextColor1, BackgroundColor = SkinStyle.Current.MainColor, Text = txt_Search, Height = Application.GetRealHeight (90), }; contentView.AddChidren (btnOption); #if DEBUG userName = tvUserName.Text = "gs"; //projectName = tvProjectName.Text = "www"; //password = tvPassword.Text = "wwwwww"; #endif btnOption.MouseUpEventHandler = (sender, e) => { userName = tvUserName.Text.Trim (); if (string.IsNullOrEmpty (userName)) { MainPage.AddTip (text_entry_userName_tip); return; } listView.RemoveAll (); rightButton1.Text = ""; CommonPage.IsRemote = true; var sendBytes = new byte [29]; var b1 = System.Text.Encoding.UTF8.GetBytes (userName); byte [] ggn = new byte [20]; Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length); Array.Copy (ggn, 0, sendBytes, 9, 20); new System.Threading.Thread (() => { CommonPage.IsRemote = true; Application.RunOnMainThread (() => { MainPage.Loading.Start (); }); try { var sss = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortListInfo, 0xFB, 0xFB, sendBytes); if (sss != null) { try { if (sss [1] == 248) { Application.RunOnMainThread (() => { MainPage.Loading.Start (); rightButton1.Text = txt_connectionSucceeded; rightButton1.TextColor = SkinStyle.Current.TextColor1; }); var count = sss [2] * 256 + sss [3]; for (int i = 1; i <= count; i++) { byte [] arayImp = new byte [23]; if (b1.Length <= 20) Array.Copy (b1, 0, arayImp, 1, b1.Length); else Array.Copy (b1, 0, arayImp, 1, 20); arayImp [21] = (byte)(i / 256); arayImp [22] = (byte)(i % 256); var oneProtData = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortInfo, 0xFB, 0xFB, arayImp); if (oneProtData != null) { try { var groupName = System.Text.Encoding.UTF8.GetString (oneProtData, 1, 20).Trim ('\0');//============= var projectName22 = System.Text.Encoding.UTF8.GetString (oneProtData, 23, 20).Trim ('\0');//============= var userName22 = System.Text.Encoding.UTF8.GetString (oneProtData, 43, 8).Trim ('\0');//============= var isOnline = oneProtData [57] == 1; Application.RunOnMainThread (() => { RowLayout wirelessView = new RowLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; listView.AddChidren (wirelessView); showGatewayRow (userName22,projectName22, wirelessView,isOnline); }); }catch (Exception ex) { } } else { } } } else if(sss[1] == 245) { Application.RunOnMainThread (() => { rightButton1.Text = txt_NoData; rightButton1.TextColor = 0x99FF0000; }); } else { Application.RunOnMainThread (() => { rightButton1.Text = txt_QueryFailed; rightButton1.TextColor = 0x99FF0000; }); } } catch (Exception ex) { Application.RunOnMainThread (() => { rightButton1.Text = txt_DataError; rightButton1.TextColor = 0x99FF0000; }); } finally { } } else { Application.RunOnMainThread (() => { rightButton1.Text = txt_linkSeverFailed; rightButton1.TextColor = 0x99FF0000; }); } }catch(Exception ex) { } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); }); } }) { IsBackground = true }.Start (); }; } /// /// 显示 /// void showGatewayRow (string userName,string projectName, RowLayout wirelessView,bool isOnline) { Button pointButton1 = new Button () { Width = Application.GetRealHeight (20), Height = Application.GetRealHeight (20), X = Application.GetRealWidth (60), Radius = (uint)Application.GetRealHeight (7), Gravity = Gravity.CenterVertical, BackgroundColor = isOnline ? 0xFF00FF00: 0xFF000000 }; wirelessView.AddChidren (pointButton1); Button nameButton1 = new Button () { Width = Application.GetRealWidth (342), Height = LayoutParams.MatchParent, Text = projectName, TextAlignment = TextAlignment.CenterLeft, X = pointButton1.Right + Application.GetRealWidth (20), TextColor = SkinStyle.Current.TextColor1, }; wirelessView.AddChidren (nameButton1); Button rightButton1 = new Button () { X = Application.GetRealWidth (480), Width = Application.GetRealWidth (150), Height = Application.GetRealHeight (40), Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, IsMoreLines = true, TextSize = 12, Text = text_link, }; if (isOnline) wirelessView.AddChidren (rightButton1); EventHandler eventHandler = (sender, e) => { LinkOnePort (userName,projectName); }; nameButton1.MouseUpEventHandler = eventHandler; rightButton1.MouseUpEventHandler = eventHandler; wirelessView.MouseUpEventHandler = eventHandler; } void LinkOnePort (string userName, string projectName) { var page = new RemoteOnePort (userName, projectName); MainPage.MainFrameLayout.AddChidren (page); page.ShowPage (); } } }