|
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 = "读取中";
|
/// <summary>
|
/// 已升级
|
/// </summary>
|
string text_Upgraded = "已升级";
|
/// <summary>
|
/// 正在升级
|
/// </summary>
|
string text_Upgrading = "正在升级";
|
/// <summary>
|
/// 升级失败
|
/// </summary>
|
string text_UpgradeFailed = "升级失败";
|
/// <summary>
|
/// 未知版本
|
/// </summary>
|
string text_UnknownVersion = "未知版本";
|
/// <summary>
|
/// 读取失败
|
/// </summary>
|
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
|
|
|
/// <summary>
|
/// 中间界面
|
/// </summary>
|
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 ();
|
};
|
|
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
/// 显示
|
/// </summary>
|
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<MouseEventArgs> 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 ();
|
|
}
|
|
|
|
|
}
|
}
|