using System;
|
using System.Collections.Generic;
|
|
namespace Shared.SimpleControl.Phone
|
{
|
/// <summary>
|
/// 后面界面主页面
|
/// </summary>
|
public class SysHomePage : FrameLayout
|
{
|
/// <summary>
|
/// 初始化当前视图
|
/// </summary>
|
public void Init ()
|
{
|
BackgroundColor = SkinStyle.Current.MainColor;
|
InitTop ();
|
|
sysMiddleInit ();
|
|
//sysMiddle = new SysMiddle ();
|
//sysMiddle.Init ();
|
}
|
|
void InitTop ()
|
{
|
FrameLayout topView = new FrameLayout () {
|
Height = Application.GetRealHeight (126),
|
} ;
|
AddChidren (topView);
|
|
Button btnBack = new Button () {
|
Y = Application.GetRealHeight (35),
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (85),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
} ;
|
|
topView.AddChidren (btnBack);
|
btnBack.MouseUpEventHandler += (sender, e) => {
|
(Parent as PageLayout).PageIndex -= 1;
|
} ;
|
|
Button btnPageTitle = new Button () {
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetMinReal (90),
|
TextID = R.MyInternationalizationString.GateWay,// = UserConfig.Instance.CurrentRegion.RegionName,
|
TextColor = SkinStyle.Current.TextColor1,
|
Gravity = Gravity.CenterHorizontal,
|
TextAlignment = TextAlignment.Center,
|
Y = Application.GetRealHeight (30),
|
TextSize = 20,
|
} ;
|
topView.AddChidren (btnPageTitle);
|
|
var logo = new Button () {
|
Width = Application.GetRealWidth (154),
|
Height = Application.GetRealHeight (90),
|
X = Application.GetRealWidth (486),
|
Y = Application.GetRealHeight (36),
|
UnSelectedImagePath = MainPage.LogoString,
|
};
|
topView.AddChidren (logo);
|
}
|
|
/// <summary>
|
/// 记录当前选择的网关是哪个,在搜索设备的时候做记录
|
/// </summary>
|
public static string curGatewayMAC = "";
|
public static string curGatewayIP = "";
|
|
/// <summary>
|
/// 初始化当前视图
|
/// </summary>
|
public void sysMiddleInit ()
|
{
|
AddChidren (new Button () { Y = Application.GetRealHeight (126), BackgroundColor = SkinStyle.Current.ViewColor, Height = 1 });
|
var VerticalScrolViewMiddle = new VerticalScrolViewLayout () {
|
Y = Application.GetRealHeight (126) + 1,
|
Height = Application.GetRealHeight (Application.DesignHeight - 126 - 90),
|
BackgroundColor = SkinStyle.Current.ViewColor
|
};
|
AddChidren (VerticalScrolViewMiddle);
|
|
ShowGateWayView (VerticalScrolViewMiddle);
|
|
/// <summary>
|
/// 底部
|
/// </summary>
|
var AddSystemEquipmentButton = new Button () {
|
Y = VerticalScrolViewMiddle.Bottom,
|
Height = Application.GetRealHeight (90),
|
TextID = R.MyInternationalizationString.AddSystemEquipment,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.TextColor1,
|
BackgroundColor = SkinStyle.Current.MainColor
|
};
|
AddChidren (AddSystemEquipmentButton);
|
|
AddSystemEquipmentButton.MouseUpEventHandler += (sender, e) => {
|
MainPage.Loading.Start ();
|
System.Threading.Tasks.Task.Run (() => {
|
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<Common> 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 (VerticalScrolViewMiddle);
|
});
|
} catch (Exception ex) {
|
Console.WriteLine (ex.ToString ());
|
} finally {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
};
|
}
|
|
/// <summary>
|
/// 显示出已经查找到的网关设备
|
/// </summary>
|
public void ShowGateWayView (VerticalScrolViewLayout VerticalScrolViewMiddle )
|
{
|
VerticalScrolViewMiddle.RemoveAll ();
|
bool firstInitWireless = true;
|
bool firstInitMusic = true;
|
bool firstInitOnePortBus = true;
|
bool firstInitOfflintOnePortBus = true;
|
bool firstInitRCU = true;
|
try {
|
List<string> 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<Common> (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 (110),
|
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 (110),
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
};
|
VerticalScrolViewMiddle.AddChidren (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<OnePortWirelessFR> (one);
|
if (onePortWirelessFR == null) {
|
continue;
|
}
|
if (firstInitWireless) {
|
FrameLayout OnePortWirelessFRFrameLayout = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
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 (110),
|
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<OnePortBus> (one);
|
if (onePortBus == null) {
|
continue;
|
}
|
if (firstInitOnePortBus) {
|
FrameLayout OnePortBusFrameLayout = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
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 (110),
|
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<RCU> (one);
|
if (RCU_Devcie == null) {
|
continue;
|
}
|
if (!RCU_Devcie.LinkNetworkLine) {
|
continue;
|
}
|
if (firstInitRCU) {
|
FrameLayout OnePortBusFrameLayout = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
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 (110),
|
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<MusicModel> (one);
|
if (musicModel == null) {
|
continue;
|
}
|
|
if (firstInitMusic) {
|
FrameLayout MusicTitleView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
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 (110),
|
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 ();
|
});
|
}
|
} catch (Exception ex) {
|
Console.WriteLine (ex.ToString ());
|
}
|
}
|
|
/// <summary>
|
/// 显示网关
|
/// </summary>
|
void AddWirelessGateway (Common common, EventHandler<MouseEventArgs> eHandler, RowLayout rowView)
|
{
|
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]);
|
}
|
rowView.RemoveFromParent ();
|
}
|
};
|
};
|
rowView.AddRightView (btnDelFile);
|
|
Button pointButton1 = new Button () {
|
Width = Application.GetRealHeight (13),
|
Height = Application.GetRealHeight (13),
|
X = Application.GetRealWidth (60),
|
UnSelectedImagePath = "Item/Point.png",
|
SelectedImagePath = "Item/PointSelected.png",
|
Gravity = Gravity.CenterVertical,
|
};
|
rowView.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
|
};
|
rowView.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",
|
};
|
rowView.AddChidren (rightButton1);
|
|
rightButton1.MouseUpEventHandler += eHandler;
|
rowView.MouseUpEventHandler += eHandler;
|
nameButton1.MouseUpEventHandler += eHandler;
|
}
|
|
}
|
}
|