20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/RelayViewModel.cs

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 = "断开";
}
}));
}
}
}
}