using System; using System.Collections.Generic; namespace Shared.SimpleControl.Phone { /// /// 后台中间界面 /// public class SystemMiddle : FrameLayout { /// /// 记录当前选择的网关是哪个,在搜索设备的时候做记录 /// public static string curGatewayMAC = ""; public static string curGatewayIP = ""; /// /// 中间界面 /// public VerticalScrolViewLayout VerticalScrolViewMiddle = new VerticalScrolViewLayout () { Height = Application.GetRealHeight (846+90- UserMiddle.userMenuItemHeight), BackgroundColor = SkinStyle.Current.ViewColor }; /// /// 底部 /// Button AddSystemEquipmentButton = new Button () { Height = Application.GetRealHeight (90), TextID = R.MyInternationalizationString.AddSystemEquipment, TextAlignment = TextAlignment.Center, TextColor = SkinStyle.Current.TextColor1, BackgroundColor = SkinStyle.Current.MainColor }; /// /// 初始化当前视图 /// public void Init () { RemoveAll (); VerticalScrolViewMiddle.BackgroundColor = SkinStyle.Current.ViewColor; AddChidren (VerticalScrolViewMiddle); ShowGateWayView (); } /// /// 底部的按键,搜索网关 /// void InitBottomButton () { var bottomView = new FrameLayout () { Y = Application.GetRealHeight (846 + 90 - UserMiddle.userMenuItemHeight), Height = Application.GetRealHeight (UserMiddle.userMenuItemHeight + 3), BackgroundColor = SkinStyle.Current.MainColor, }; AddChidren (bottomView); bottomView.AddChidren (AddSystemEquipmentButton); AddSystemEquipmentButton.MouseUpEventHandler += (sender, e) => { MainPage.Loading.Start (); AddSystemEquipmentButton.Enable = false; new System.Threading.Thread (() => { try { #region 搜索设备 CommonPage.LocalPhoneFindDevice = true; CommonPage.RandomHigh = (byte)new Random ().Next (255); CommonPage.RandomLow = (byte)new Random ().Next (255); CommonPage.GateWayList.Clear (); CommonPage.FindGateway = true; //如果两次都没有数据反馈,就不读取 int readCount = 2; while (0 < readCount) { readCount--; System.IO.MemoryStream ms = new System.IO.MemoryStream (); ms.WriteByte (CommonPage.RandomHigh); ms.WriteByte (CommonPage.RandomLow); List list = CommonPage.GateWayList; int tempCount = list.Count; string s = ";"; for (int i = 0; i < list.Count; i++) { Common common = list [i]; if (s.Contains (";" + common.SubnetID.ToString () + ":" + common.DeviceID.ToString ())) continue; s += common.SubnetID.ToString () + ":" + common.DeviceID.ToString () + ";"; ms.WriteByte (common.SubnetID); ms.WriteByte (common.DeviceID); } Console.WriteLine ("搜索网关,搜索地址是:" + CommonPage.EndPoint.ToString () + " " + CommonPage.GateWayList.Count); Control control = new Control (); control.Send (new Target () { IPEndPoint = CommonPage.EndPoint, Command = Command.ReadGateway, SubnetID = 0xFF, DeviceID = 0xFF, AddData = ms.ToArray () }, SendCount.Zero, false); control.Send (new Target () { IPEndPoint = new System.Net.IPEndPoint (new Net.NetWiFi ().BroadcastIpAddress, 6000), Command = Command.ReadGateway, SubnetID = 0xFF, DeviceID = 0xFF, AddData = ms.ToArray () }, SendCount.Zero, false); System.Threading.Thread.Sleep (800); //如果数量不相等,就重置次数 if (tempCount != CommonPage.GateWayList.Count) { readCount = 2; } } CommonPage.FindGateway = false; if (CommonPage.GateWayList.Count > 0) { bool inLAN = false; if (CommonPage.GateWayList.Find ((obj) => UserConfig.Instance.GatewayMAC == obj.MAC.Replace (".", "")) != null) { inLAN = true; } if (inLAN) { foreach (var gateway in CommonPage.GateWayList) { IO.FileUtils.SaveEquipmentMessage (gateway); } } else if (MainPage.LoginUser.AccountString == "464027401@qq.com") { foreach (var gateway in CommonPage.GateWayList) { IO.FileUtils.SaveEquipmentMessage (gateway); } } else { Application.RunOnMainThread (() => { new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipHasNotInListMAC), Language.StringByID (R.MyInternationalizationString.confirm)).Show (); }); } } CommonPage.LocalPhoneFindDevice = false; #endregion Application.RunOnMainThread (() => { ShowGateWayView (); }); } catch (Exception ex) { Console.WriteLine (ex.ToString ()); } finally { System.Threading.Thread.Sleep (5000); Application.RunOnMainThread (() => { MainPage.Loading.Hide (); AddSystemEquipmentButton.Enable = true; }); } }) { IsBackground = true }.Start (); }; } /// /// 显示出已经查找到的网关设备 /// public void ShowGateWayView () { VerticalScrolViewMiddle.RemoveAll (); AddChidren (AddSystemEquipmentButton); VerticalScrolViewMiddle.Height = Application.GetRealHeight (846); InitBottomButton (); bool firstInitWireless = true; bool firstInitMusic = true; bool firstInitOnePortBus = true; bool firstInitOfflintOnePortBus = true; bool firstInitRCU = true; try { List filesList = IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Split ('_').Length == 4 && obj.Split ('_') [0] == "Equipment"); foreach (var f in filesList) { string [] str = f.Split ('_'); if (str.Length == 4 && str [0] == "Equipment") { var one = System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (f)); var commGateway = Newtonsoft.Json.JsonConvert.DeserializeObject (one); if (commGateway == null) { continue; } // buspro上传的数据 if (commGateway.obj1 == 1 && (str [1].ToString () == DeviceType.OnePortWirelessFR.ToString () || str [1].ToString () == DeviceType.SuperWireless.ToString () || str [1].ToString () == DeviceType.OnePortBus.ToString ())) { if (firstInitOfflintOnePortBus) { FrameLayout OnePortWirelessFRFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), Width = LayoutParams.MatchParent, BackgroundColor = SkinStyle.Current.TitileView, }; VerticalScrolViewMiddle.AddChidren (OnePortWirelessFRFrameLayout);//如果有无线网关才把顶栏加上 firstInitOfflintOnePortBus = false; Button btnIcon = new Button () { X = Application.GetRealWidth (15), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/Wireless.png", SelectedImagePath = "Item/WirelessSelected.png", Gravity = Gravity.CenterVertical, }; OnePortWirelessFRFrameLayout.AddChidren (btnIcon); Button btnGatewayName = new Button () { X = btnIcon.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), TextID = R.MyInternationalizationString.OfflineDevice, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; OnePortWirelessFRFrameLayout.AddChidren (btnGatewayName); } RowLayout wirelessView = new RowLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; VerticalScrolViewMiddle.AddChidren (wirelessView); //2020-03-14 取消跳转一键配置页面 //AddWirelessGateway (commGateway, (sender, e) => { // GotoSystemMqttGatewaySetting (commGateway); //}, wirelessView); //AddWirelessGateway (commGateway, null, wirelessView); } else if (str [1].ToString () == DeviceType.OnePortWirelessFR.ToString () || str [1].ToString () == DeviceType.SuperWireless.ToString ()) { var onePortWirelessFR = Newtonsoft.Json.JsonConvert.DeserializeObject (one); if (onePortWirelessFR == null) { continue; } if (firstInitWireless) { FrameLayout OnePortWirelessFRFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), Width = LayoutParams.MatchParent, BackgroundColor = SkinStyle.Current.MainColor, }; VerticalScrolViewMiddle.AddChidren (OnePortWirelessFRFrameLayout); firstInitWireless = false; Button btnIcon = new Button () { X = Application.GetRealWidth (15), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/Wireless.png", SelectedImagePath = "Item/WirelessSelected.png", Gravity = Gravity.CenterVertical, }; OnePortWirelessFRFrameLayout.AddChidren (btnIcon); Button btnGatewayName = new Button () { X = btnIcon.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), TextID = R.MyInternationalizationString.WirelessGateWay, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; OnePortWirelessFRFrameLayout.AddChidren (btnGatewayName); } RowLayout wirelessView = new RowLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; VerticalScrolViewMiddle.AddChidren (wirelessView); AddWirelessGateway (onePortWirelessFR, (sender, e) => { //new SystemWirelessGateway ().ShowWirelessGateway (onePortWirelessFR); var sysOneBus = new SystemWirelessGateway (); SystemHomePage.sysMiddleGatewayPageView.AddChidren (sysOneBus); sysOneBus.ShowWirelessGateway (onePortWirelessFR); SystemHomePage.sysMiddleGatewayPageView.PageIndex = SystemHomePage.sysMiddleGatewayPageView.ChildrenCount - 1; }, wirelessView); } else if (str [1].ToString () == DeviceType.OnePortBus.ToString ()) { var onePortBus = Newtonsoft.Json.JsonConvert.DeserializeObject (one); if (onePortBus == null) { continue; } if (firstInitOnePortBus) { FrameLayout OnePortBusFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), BackgroundColor = SkinStyle.Current.MainColor, }; VerticalScrolViewMiddle.AddChidren (OnePortBusFrameLayout); firstInitOnePortBus = false; Button button1 = new Button () { X = Application.GetRealWidth (15), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/OnePort.png", SelectedImagePath = "Item/OnePortSelected.png", Gravity = Gravity.CenterVertical, }; OnePortBusFrameLayout.AddChidren (button1); Button textButton1 = new Button () { X = button1.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), TextID = R.MyInternationalizationString.CableGateWay, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; OnePortBusFrameLayout.AddChidren (textButton1); } RowLayout wirelessView = new RowLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; VerticalScrolViewMiddle.AddChidren (wirelessView); AddWirelessGateway (onePortBus, (sender, e) => { var sysOneBus = new SystemOnePortBus (); SystemHomePage.sysMiddleGatewayPageView.AddChidren (sysOneBus); sysOneBus.ShowOnePortBus (onePortBus); SystemHomePage.sysMiddleGatewayPageView.PageIndex = SystemHomePage.sysMiddleGatewayPageView.ChildrenCount - 1; }, wirelessView); } else if (str [1].ToString () == DeviceType.RCU.ToString ()) { var RCU_Devcie = Newtonsoft.Json.JsonConvert.DeserializeObject (one); if (RCU_Devcie == null) { continue; } if (!RCU_Devcie.LinkNetworkLine) { continue; } if (firstInitRCU) { FrameLayout OnePortBusFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), BackgroundColor = SkinStyle.Current.MainColor, }; VerticalScrolViewMiddle.AddChidren (OnePortBusFrameLayout); firstInitRCU = false; Button button1 = new Button () { X = Application.GetRealWidth (15), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/OnePort.png", SelectedImagePath = "Item/OnePortSelected.png", Gravity = Gravity.CenterVertical, }; OnePortBusFrameLayout.AddChidren (button1); Button textButton1 = new Button () { X = button1.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), Text = "RCU", Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; OnePortBusFrameLayout.AddChidren (textButton1); } RowLayout wirelessView = new RowLayout () { Height = Application.GetRealHeight (93), BackgroundColor = SkinStyle.Current.ViewColor, }; VerticalScrolViewMiddle.AddChidren (wirelessView); AddWirelessGateway (RCU_Devcie, (sender, e) => { //new SystemRCU ().ShowRCU (RCU_Devcie); var sysOneBus = new SystemRCU (); SystemHomePage.sysMiddleGatewayPageView.AddChidren (sysOneBus); sysOneBus.ShowRCU (RCU_Devcie); SystemHomePage.sysMiddleGatewayPageView.PageIndex = SystemHomePage.sysMiddleGatewayPageView.ChildrenCount - 1; }, wirelessView); } else if (str [1].ToString () == DeviceType.MusicModel.ToString () || str [1].ToString () == DeviceType.MusicA31.ToString ()) { var musicModel = Newtonsoft.Json.JsonConvert.DeserializeObject (one); if (musicModel == null) { continue; } if (firstInitMusic) { FrameLayout MusicTitleView = new FrameLayout () { Height = Application.GetRealHeight (98), Width = LayoutParams.MatchParent, BackgroundColor = SkinStyle.Current.MainColor, }; VerticalScrolViewMiddle.AddChidren (MusicTitleView);//如果有无线网关才把顶栏加上 firstInitMusic = false; Button btnIcon = new Button () { X = Application.GetRealWidth (15), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/Music.png", SelectedImagePath = "Item/Music.png", Gravity = Gravity.CenterVertical, }; MusicTitleView.AddChidren (btnIcon); Button btnGatewayName = new Button () { X = btnIcon.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), TextID = R.MyInternationalizationString.MusicModel, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; MusicTitleView.AddChidren (btnGatewayName); } RowLayout rlMusicModel = new RowLayout () { Height = Application.GetRealHeight (98), Width = LayoutParams.MatchParent, BackgroundColor = SkinStyle.Current.ViewColor, }; VerticalScrolViewMiddle.AddChidren (rlMusicModel); AddWirelessGateway (musicModel, (sender, e) => { //new SystemRCU ().ShowRCU (RCU_Devcie); var sysMusic = new SystemMusicModel (); SystemHomePage.sysMiddleGatewayPageView.AddChidren (sysMusic); sysMusic.ShowMusicModel (musicModel); SystemHomePage.sysMiddleGatewayPageView.PageIndex = SystemHomePage.sysMiddleGatewayPageView.ChildrenCount - 1; }, rlMusicModel); } } Application.RunOnMainThread (() => { MainPage.Loading.Hide (); }); } //InitBottomButton (); } catch (Exception ex) { Console.WriteLine (ex.ToString ()); } } /// /// 显示网关 /// void AddWirelessGateway (Common common, EventHandler eHandler, RowLayout wirelessView) { int subnetID = common.SubnetID; string remark = common.Name; Button btnDelFile = new Button () { TextID = R.MyInternationalizationString.Del, BackgroundColor = SkinStyle.Current.DelColor, }; btnDelFile.MouseUpEventHandler += (sender, e) => { Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage) , Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.Show (); alert.ResultEventHandler += ( sender1, e1) => { if (e1) { var delFile = IO.FileUtils.ReadFiles ().FindAll ((w) => { return (w.Split ('_') [0] == "Equipment") && (w.Split ('_') [2] == subnetID.ToString ()); }); for (int k = 0; k < delFile.Count; k++) { IO.FileUtils.DeleteFile (delFile [k]); } ShowGateWayView (); } }; }; wirelessView.AddRightView (btnDelFile); Button pointButton1 = new Button () { Width = Application.GetRealHeight (13), Height = Application.GetRealHeight (13), X = Application.GetRealWidth (80), UnSelectedImagePath = "Item/Point.png", SelectedImagePath = "Item/PointSelected.png", Gravity = Gravity.CenterVertical, }; wirelessView.AddChidren (pointButton1); Button nameButton1 = new Button () { Width = Application.GetRealWidth (342), Height = LayoutParams.MatchParent, Text = remark, TextAlignment = TextAlignment.CenterLeft, X = pointButton1.Right + Application.GetRealWidth (20), TextColor = SkinStyle.Current.TextColor1 }; wirelessView.AddChidren (nameButton1); Button rightButton1 = new Button () { X = Application.GetRealWidth (550), Width = Application.GetRealWidth (28), Height = Application.GetRealHeight (40), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Item/Right.png", SelectedImagePath = "Item/RightSelected.png", }; wirelessView.AddChidren (rightButton1); rightButton1.MouseUpEventHandler += eHandler; wirelessView.MouseUpEventHandler += eHandler; nameButton1.MouseUpEventHandler += eHandler; } /// /// 跳转Mqtt网关配置页面 /// /// void GotoSystemMqttGatewaySetting (Common common) { //if (common.Type == DeviceType.OnePortMqttFR || common.Type == DeviceType.OnePortBusMqtt) { SystemMqttGatewaySetting mSystemMqttGatewaySetting = new SystemMqttGatewaySetting (); UserMiddle.SettingPageView.AddChidren (mSystemMqttGatewaySetting); mSystemMqttGatewaySetting.ShowView (common); UserMiddle.SettingPageView.PageIndex = UserMiddle.SettingPageView.ChildrenCount - 1; //} else { //} } } public class SysMiddle : FrameLayout { /// /// 中间界面 /// public VerticalScrolViewLayout VerticalScrolViewMiddle = new VerticalScrolViewLayout () { Height = Application.GetRealHeight (846), BackgroundColor = SkinStyle.Current.ViewColor }; public static List hideListCommon = new List (); public void Init () { RemoveAll (); VerticalScrolViewMiddle.BackgroundColor = SkinStyle.Current.ViewColor; AddChidren (VerticalScrolViewMiddle); ShowEquipmentBase (); } /// /// 显示设备列表信息. /// void ShowEquipmentBase () { VerticalScrolViewMiddle.RemoveAll (); VerticalScrolViewMiddle.Height = Application.GetRealHeight (846 + 90); hideListCommon = new List (); List localFileList = IO.FileUtils.ReadFiles (); List offlineDeviceList = new List (); var gateWayListZ = localFileList.FindAll ((obj) => { return obj.Split ('_').Length == 4 && obj.StartsWith ("Equipment_") ; }); var gateWayList = gateWayListZ.FindAll ((obj) => { return obj.Split ('_') [1].ToString () == DeviceType.OnePortBus.ToString () || obj.Split ('_') [1].ToString () == DeviceType.RCU.ToString () || obj.Split ('_') [1].ToString () == DeviceType.OnePortWirelessFR.ToString (); }); foreach (var offline in localFileList) { if (offline.Split ('_').Length == 5 && offline.Split ('_') [0] == "Equipment") { var ss = IO.FileUtils.ReadFile (offline); Common commonOffline = Newtonsoft.Json.JsonConvert.DeserializeObject (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (offline))); if (commonOffline == null) continue; if (commonOffline.obj1 == 1) { offlineDeviceList.Add (offline); } } } foreach (var gatewayFileName in gateWayList) { if (offlineDeviceList.Contains (gatewayFileName)) continue; var tempStrings = gatewayFileName.Split ('_'); if (tempStrings [1].ToString () == DeviceType.OnePortBus.ToString () || tempStrings [1].ToString () == DeviceType.RCU.ToString () || tempStrings [1].ToString () == DeviceType.OnePortWirelessFR.ToString ()) { var one = System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (gatewayFileName)); if (one.Length == 0) { IO.FileUtils.DeleteFile (gatewayFileName); continue; } #region titel FrameLayout OnePortBusFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), BackgroundColor = SkinStyle.Current.MainColor }; VerticalScrolViewMiddle.AddChidren (OnePortBusFrameLayout); Button btnLineTop = new Button () { Height = 1, BackgroundColor = 0xFF2f2f2f, }; VerticalScrolViewMiddle.AddChidren (btnLineTop); FrameLayout busEquipmentBody = new FrameLayout () { Height = 0, Tag = 0, }; VerticalScrolViewMiddle.AddChidren (busEquipmentBody); Button button1 = new Button () { X = Application.GetRealWidth (20), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/OnePort.png", SelectedImagePath = "Item/OnePortSelected.png", Gravity = Gravity.CenterVertical, }; OnePortBusFrameLayout.AddChidren (button1); Button textButton1 = new Button () { X = Application.GetRealWidth (20) + button1.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, }; OnePortBusFrameLayout.AddChidren (textButton1); Button downSelectedButton1 = new Button () { X = Application.GetRealWidth (550), Height = Application.GetRealHeight (46), Width = Application.GetRealWidth (47), UnSelectedImagePath = "Item/Down.png", SelectedImagePath = "Item/DownSelected.png", Gravity = Gravity.CenterVertical, IsSelected = true, }; OnePortBusFrameLayout.AddChidren (downSelectedButton1); EventHandler eHandler = (sender, e) => { downSelectedButton1.IsSelected = !downSelectedButton1.IsSelected; if (downSelectedButton1.IsSelected) { busEquipmentBody.Height = Convert.ToInt32 (busEquipmentBody.Tag); } else { busEquipmentBody.Height = 0; } }; downSelectedButton1.MouseUpEventHandler += eHandler; button1.MouseUpEventHandler += eHandler; textButton1.MouseUpEventHandler += eHandler; #endregion if (tempStrings [1].ToString () == DeviceType.OnePortWirelessFR.ToString ()) { var onePortWirelessFR = Newtonsoft.Json.JsonConvert.DeserializeObject (one); textButton1.Text = onePortWirelessFR.Name; button1.SelectedImagePath = "Item/WirelessSelected.png"; button1.UnSelectedImagePath = "Item/Wireless.png"; } else if (tempStrings [1].ToString () == DeviceType.OnePortBus.ToString ()) { var onePortBus = Newtonsoft.Json.JsonConvert.DeserializeObject (one); textButton1.Text = onePortBus.Name; button1.SelectedImagePath = "Item/OnePortSelected.png"; button1.UnSelectedImagePath = "Item/OnePort.png"; } else if (tempStrings [1].ToString () == DeviceType.RCU.ToString ()) { var rcu = Newtonsoft.Json.JsonConvert.DeserializeObject (one); textButton1.Text = rcu.Name; button1.SelectedImagePath = "Item/OnePortSelected.png"; button1.UnSelectedImagePath = "Item/OnePort.png"; } button1.IsSelected = false; int equipmentHeight = 0; int count = 0; foreach (var deviceFile in localFileList) { if (tempStrings [1].ToString () != DeviceType.RCU.ToString ()) { if (deviceFile == gatewayFileName || deviceFile.Split ('_') [0] != "Equipment" || deviceFile.Split ('_').Length != 4) { continue; } } else { if (deviceFile.Split ('_') [0] != "Equipment" || deviceFile.Split ('_').Length != 4) { continue; } } if (offlineDeviceList.Contains (deviceFile)) continue; if (deviceFile.Split ('_') [2] != tempStrings [2]) { continue; } string localFileType = deviceFile.Split ('_') [1]; byte [] equipmentUsefullBytes = IO.FileUtils.ReadFile (deviceFile); string equipmentString; Common common = null; equipmentString = CommonPage.MyEncodingUTF8.GetString (equipmentUsefullBytes); common = Newtonsoft.Json.JsonConvert.DeserializeObject (equipmentString); if (common == null) { continue; } if (common.isMixBox) { hideListCommon.Add (common); } else { RowLayout frameLayout = new RowLayout () { Height = Application.GetRealHeight (93), }; frameLayout.Y = count++ * frameLayout.Height; busEquipmentBody.AddChidren (frameLayout); Button btnDelFile = new Button () { TextID = R.MyInternationalizationString.Del, BackgroundColor = SkinStyle.Current.DelColor }; btnDelFile.MouseUpEventHandler += (sender, e) => { Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage) , Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.Show (); alert.ResultEventHandler += (sender1, e1) => { if (e1) { //"_" + deviceFile.Split ('_') [1] + string delFlag = "_" + deviceFile.Split ('_') [2] + "_" + deviceFile.Split ('_') [3]; var delFile = IO.FileUtils.ReadFiles ().FindAll ((w) => { return w.Contains (delFlag); }); for (int i = 0; i < delFile.Count; i++) { IO.FileUtils.DeleteFile (delFile [i]); } ShowEquipmentBase (); } }; }; frameLayout.AddRightView (btnDelFile); busEquipmentBody.Height += Application.GetRealHeight (93); equipmentHeight += Application.GetRealHeight (93); busEquipmentBody.Tag = equipmentHeight; Button pointButton = new Button () { Width = Application.GetRealHeight (13), Height = Application.GetRealHeight (13), X = Application.GetRealWidth (80), UnSelectedImagePath = "Item/Point.png", SelectedImagePath = "Item/PointSelected.png", Gravity = Gravity.CenterVertical, }; frameLayout.AddChidren (pointButton); Button btnName = new Button () { Width = Application.GetRealWidth (642), Height = LayoutParams.MatchParent, Text = common.Name, TextAlignment = TextAlignment.CenterLeft, X = pointButton.Right + Application.GetRealWidth (20), TextColor = SkinStyle.Current.TextColor1 }; frameLayout.AddChidren (btnName); if (common.Type != DeviceType.DeviceCommon) { Button btnRight = new Button () { X = Application.GetRealWidth (550), Width = Application.GetRealWidth (28), Height = Application.GetRealHeight (40), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Item/Right.png", SelectedImagePath = "Item/RightSelected.png", }; frameLayout.AddChidren (btnRight); EventHandler mouseEvent = (sender, e) => { //new SystemEquipmentBase ().EquipmentBaseViewShow (common); var systemEquipmentBase = new SystemEquipmentBase (); SystemHomePage.sysMiddleDevicePageView.AddChidren (systemEquipmentBase); systemEquipmentBase.EquipmentBaseViewShow (common); SystemHomePage.sysMiddleDevicePageView.PageIndex = SystemHomePage.sysMiddleDevicePageView.ChildrenCount - 1; }; btnRight.MouseUpEventHandler += mouseEvent; btnName.MouseUpEventHandler += mouseEvent; frameLayout.MouseUpEventHandler += mouseEvent; } } } } } if (offlineDeviceList.Count != 0) { #region titel FrameLayout OnePortBusFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (98), BackgroundColor = SkinStyle.Current.MainColor }; VerticalScrolViewMiddle.AddChidren (OnePortBusFrameLayout); Button btnLineTop = new Button () { Height = 1, BackgroundColor = 0xFF2f2f2f, }; VerticalScrolViewMiddle.AddChidren (btnLineTop); FrameLayout busEquipmentBody = new FrameLayout () { Height = 0, Tag = 0, }; VerticalScrolViewMiddle.AddChidren (busEquipmentBody); Button button1 = new Button () { X = Application.GetRealWidth (20), Height = Application.GetRealHeight (66), Width = Application.GetRealWidth (66), UnSelectedImagePath = "Item/OnePort.png", SelectedImagePath = "Item/OnePortSelected.png", Gravity = Gravity.CenterVertical, }; OnePortBusFrameLayout.AddChidren (button1); Button textButton1 = new Button () { X = Application.GetRealWidth (20) + button1.Right, Height = Application.GetRealHeight (41), Width = Application.GetRealWidth (400), Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.OfflineDevice, TextColor = SkinStyle.Current.TextColor1 }; OnePortBusFrameLayout.AddChidren (textButton1); Button downSelectedButton1 = new Button () { X = Application.GetRealWidth (550), Height = Application.GetRealHeight (46), Width = Application.GetRealWidth (47), UnSelectedImagePath = "Item/Down.png", SelectedImagePath = "Item/DownSelected.png", Gravity = Gravity.CenterVertical, IsSelected = true, }; OnePortBusFrameLayout.AddChidren (downSelectedButton1); EventHandler eHandler = (sender, e) => { downSelectedButton1.IsSelected = !downSelectedButton1.IsSelected; if (downSelectedButton1.IsSelected) { busEquipmentBody.Height = Convert.ToInt32 (busEquipmentBody.Tag); } else { busEquipmentBody.Height = 0; } }; downSelectedButton1.MouseUpEventHandler += eHandler; button1.MouseUpEventHandler += eHandler; textButton1.MouseUpEventHandler += eHandler; #endregion int count = 0; int equipmentHeight = 0; foreach (var offlineDevice in offlineDeviceList) { string localFileType = offlineDevice.Split ('_') [1]; byte [] equipmentUsefullBytes = IO.FileUtils.ReadFile (offlineDevice); string equipmentString; Common common = null; //设备界面要显示的设备,必须在这里添加显示 equipmentString = CommonPage.MyEncodingUTF8.GetString (equipmentUsefullBytes); common = Newtonsoft.Json.JsonConvert.DeserializeObject (equipmentString); if (common == null) { continue; } if (common.isMixBox) { hideListCommon.Add (common); } else { RowLayout frameLayout = new RowLayout () { Height = Application.GetRealHeight (93), }; frameLayout.Y = count++ * frameLayout.Height; busEquipmentBody.AddChidren (frameLayout); Button btnDelFile = new Button () { TextID = R.MyInternationalizationString.Del, BackgroundColor = SkinStyle.Current.DelColor }; btnDelFile.MouseUpEventHandler += (sender, e) => { Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage) , Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.Show (); alert.ResultEventHandler += ( sender1, e1) => { if (e1) { IO.FileUtils.DeleteFile (offlineDevice); ShowEquipmentBase (); } }; }; frameLayout.AddRightView (btnDelFile); busEquipmentBody.Height += Application.GetRealHeight (93); equipmentHeight += Application.GetRealHeight (93); busEquipmentBody.Tag = equipmentHeight; Button pointButton = new Button () { Width = Application.GetRealHeight (13), Height = Application.GetRealHeight (13), X = Application.GetRealWidth (80), UnSelectedImagePath = "Item/Point.png", SelectedImagePath = "Item/PointSelected.png", Gravity = Gravity.CenterVertical, }; frameLayout.AddChidren (pointButton); Button btnName = new Button () { Width = Application.GetRealWidth (642), Height = LayoutParams.MatchParent, Text = common.Name, TextAlignment = TextAlignment.CenterLeft, X = pointButton.Right + Application.GetRealWidth (20), TextColor = SkinStyle.Current.TextColor1 }; frameLayout.AddChidren (btnName); } } } } } }