2024-11-14 16:38:55 +08:00
|
|
|
|
using DM_Weight.msg;
|
|
|
|
|
using DM_Weight.Port;
|
2024-11-26 15:05:37 +08:00
|
|
|
|
using DM_Weight.ViewModels;
|
|
|
|
|
using log4net;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
using log4net.Repository.Hierarchy;
|
2024-12-21 21:02:52 +08:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
using Prism.Events;
|
|
|
|
|
using System;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
using System.Collections.Generic;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
using System.Configuration;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
using System.Threading;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
using System.Threading.Tasks;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
using System.Timers;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
using System.Windows.Data;
|
|
|
|
|
using System.Windows.Documents;
|
|
|
|
|
using System.Windows.Input;
|
|
|
|
|
using System.Windows.Media;
|
|
|
|
|
using System.Windows.Media.Imaging;
|
|
|
|
|
using System.Windows.Navigation;
|
|
|
|
|
using System.Windows.Shapes;
|
|
|
|
|
|
|
|
|
|
namespace DM_Weight.Views
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Interaction logic for MainWindow.xaml
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class HomeWindow : UserControl
|
|
|
|
|
{
|
2024-12-21 21:02:52 +08:00
|
|
|
|
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindow));
|
2024-11-14 16:38:55 +08:00
|
|
|
|
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
2024-12-21 21:02:52 +08:00
|
|
|
|
public static System.Timers.Timer idleTimer;//= new System.Timers.Timer(60000);
|
2024-11-14 16:38:55 +08:00
|
|
|
|
IEventAggregator _eventAggregator;
|
2024-12-16 16:44:02 +08:00
|
|
|
|
SocketHelper _socketHelper;
|
|
|
|
|
public HomeWindow(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
2024-11-14 16:38:55 +08:00
|
|
|
|
if (autoExit > 0)
|
|
|
|
|
{
|
2024-12-16 16:44:02 +08:00
|
|
|
|
idleTimer = new System.Timers.Timer(autoExit * 1000);
|
2024-11-14 16:38:55 +08:00
|
|
|
|
idleTimer.Elapsed += OnTimerElapsed;
|
|
|
|
|
this.MouseDown += OnUserActivity;
|
|
|
|
|
this.MouseMove += OnUserActivity;
|
|
|
|
|
this.KeyDown += OnUserActivity;
|
|
|
|
|
idleTimer.Start();
|
|
|
|
|
_eventAggregator = eventAggregator;
|
|
|
|
|
}
|
2024-12-16 16:44:02 +08:00
|
|
|
|
_socketHelper = socketHelper;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
2024-11-14 16:38:55 +08:00
|
|
|
|
private void OnUserActivity(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
idleTimer.Stop();
|
2024-12-21 21:02:52 +08:00
|
|
|
|
|
|
|
|
|
idleTimer.AutoReset = true;
|
|
|
|
|
idleTimer.Interval =autoExit * 1000;
|
2024-11-14 16:38:55 +08:00
|
|
|
|
idleTimer.Start();
|
|
|
|
|
}
|
|
|
|
|
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
// 串口无人操作
|
2024-12-06 17:51:01 +08:00
|
|
|
|
//bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
|
|
|
|
|
//bool allTrue = Array.TrueForAll(boolArrs, b => b == false);
|
2024-12-21 21:02:52 +08:00
|
|
|
|
logger.Info($"进入自动退出定时方法{ModbusHelper.BoxOperate}");
|
|
|
|
|
//if (ModbusHelper.BoxOperate)
|
|
|
|
|
if (!_socketHelper.OpenStatus)
|
2024-11-14 16:38:55 +08:00
|
|
|
|
{
|
2024-12-21 21:02:52 +08:00
|
|
|
|
if (idleTimer.Enabled)
|
|
|
|
|
{
|
|
|
|
|
idleTimer.Stop();
|
|
|
|
|
//无人操作,自动退出
|
|
|
|
|
_eventAggregator.GetEvent<LoginOutEvent>().Publish();
|
|
|
|
|
}
|
2024-11-14 16:38:55 +08:00
|
|
|
|
}
|
2024-12-21 21:02:52 +08:00
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// idleTimer.Interval = autoExit * 1000;
|
|
|
|
|
// idleTimer.AutoReset = true;
|
|
|
|
|
//}
|
2024-11-14 16:38:55 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
}
|