34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using Modbus.Device;
|
||
using System;
|
||
using System.Net.Sockets;
|
||
using System.Windows;
|
||
|
||
namespace 自救器呼吸器综合检验仪.Data
|
||
{
|
||
public partial class BaseWindow : Window
|
||
{
|
||
// 共享资源(从管理器获取,不自己创建)
|
||
protected TcpClient _tcpClient => ModbusResourceManager.Instance.TcpClient;
|
||
protected IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
|
||
protected System.Timers.Timer _readTimer { get; set; } = new System.Timers.Timer();
|
||
|
||
// 窗口关闭时仅停止定时器,不释放资源(资源由管理器统一释放)
|
||
protected override void OnClosed(EventArgs e)
|
||
{
|
||
base.OnClosed(e);
|
||
_readTimer?.Stop();
|
||
_readTimer?.Dispose();
|
||
}
|
||
|
||
// 检查资源是否可用(避免空引用报错)
|
||
protected bool CheckResourceAvailable()
|
||
{
|
||
if (_tcpClient == null || !_tcpClient.Connected || _modbusMaster == null)
|
||
{
|
||
MessageBox.Show("TCP连接已断开,请重新初始化连接!", "提示");
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
}
|
||
} |