using FATrace.WPLApp.Models; using Prism.Events; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FATrace.WPLApp.Services { public class SysRunService : BindableBase { public SysRunService(IEventAggregator eventAggregator) { // 创建一个定时器,设置间隔时间为2000毫秒(即2秒) CurTimer = new System.Timers.Timer(5000); CurTimer.AutoReset = true; // 设置Elapsed事件处理程序 CurTimer.Elapsed += CurTimer_Elapsed; // 启动定时器 CurTimer.Start(); } private string _PlcIp; /// /// PLC IP /// public string PlcIp { get => _PlcIp; set { _PlcIp = value; RaisePropertyChanged(); UpdatePlcEndPoint(); } } private int _PlcPort; /// /// PLC 端口 /// public int PlcPort { get => _PlcPort; set { _PlcPort = value; RaisePropertyChanged(); UpdatePlcEndPoint(); } } private string _PlcEndPoint; /// /// PLC 终端显示:IP:Port /// public string PlcEndPoint { get => _PlcEndPoint; private set { _PlcEndPoint = value; RaisePropertyChanged(); } } private void UpdatePlcEndPoint() { PlcEndPoint = string.IsNullOrWhiteSpace(PlcIp) ? string.Empty : $"{PlcIp}:{PlcPort}"; } private bool _PlcLinkState = false; /// /// PLC连接状态 /// public bool PlcLinkState { get { return _PlcLinkState; } set { _PlcLinkState = value;RaisePropertyChanged(); } } private int _PlcScanState = 0; /// /// PLC扫描循环状态 /// 0=已停止,1=运行中,2=异常退出 /// public int PlcScanState { get { return _PlcScanState; } set { if (_PlcScanState != value) { _PlcScanState = value; switch (value) { case 1: PlcScanMsg = "扫描运行"; break; case 2: PlcScanMsg = "扫描异常"; break; default: PlcScanMsg = "扫描停止"; break; } RaisePropertyChanged(); } } } private string? _PlcScanMsg = "扫描停止"; /// /// PLC扫描循环状态消息 /// public string? PlcScanMsg { get { return _PlcScanMsg; } set { _PlcScanMsg = value; RaisePropertyChanged(); } } private string? _CurUser; /// /// 当前的用户 /// public string? CurUser { get { return _CurUser; } set { if (_CurUser != value) { _CurUser = value; if (string.IsNullOrEmpty(value)) { IsLogin = false; CurAccessLevel = null; } else { IsLogin = true; } RaisePropertyChanged(); } } } private string? _CurAccessLevel; /// /// 当前用户等级(管理员/操作员/访客) /// public string? CurAccessLevel { get { return _CurAccessLevel; } set { if (_CurAccessLevel != value) { _CurAccessLevel = value; RaisePropertyChanged(); } } } private bool _IsLogin; /// /// 登录 /// public bool IsLogin { get { return _IsLogin; } set { _IsLogin = value; RaisePropertyChanged(); } } /// /// 运行状态 /// public SysRunState SysRunState { get; set; } = new SysRunState(); /// /// 定时器 /// private System.Timers.Timer CurTimer { get; set; } private DateTime _CurDateTime; /// /// 当前时间信息 /// public DateTime CurDateTime { get { return _CurDateTime; } set { _CurDateTime = value; RaisePropertyChanged(); } } private void CurTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) { CurDateTime = DateTime.Now; } } }