62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
using InSituLaboratory.Common;
|
|
using InSituLaboratory.Entities;
|
|
using Prism.Regions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace InSituLaboratory.ViewModels.Pages
|
|
{
|
|
/// <summary>
|
|
/// 局部电源开关控制
|
|
/// </summary>
|
|
public class RelayViewModel : ViewModelBase
|
|
{
|
|
public ClientModel clientModel { get; set; } = new ClientModel();
|
|
|
|
public static SocketInfo SocketInfo { get; set; } = new SocketInfo()
|
|
{
|
|
IP = tools.GetAppSetting("IP"),
|
|
Port = Convert.ToInt32(tools.GetAppSetting("Port"))
|
|
};
|
|
|
|
public RelayViewModel(IRegionManager regionManager) : base(regionManager)
|
|
{
|
|
this.PageTitle = "通信与电源控制";
|
|
SocketInfo.ConnectionMessage = "连接";
|
|
}
|
|
|
|
public override void DoConnection(object o)
|
|
{
|
|
if (clientModel.IsConnected)
|
|
{
|
|
Task.Run(new Action(async () =>
|
|
{
|
|
await Task.Delay(100);
|
|
clientModel.DisConnect();
|
|
SocketInfo.ConnectionMessage = "连接";
|
|
}));
|
|
}
|
|
else
|
|
{
|
|
Task.Run(new Action(async () =>
|
|
{
|
|
await Task.Delay(150);
|
|
|
|
if (clientModel.DoConnect(SocketInfo))
|
|
{
|
|
//更新下App.config中的配置信息
|
|
tools.UpdateAppSettings("IP", SocketInfo.IP);
|
|
tools.UpdateAppSettings("Port", SocketInfo.Port.ToString());
|
|
SocketInfo.ConnectionMessage = "断开";
|
|
}
|
|
}));
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|