监控逻辑

This commit is contained in:
hsc
2026-07-10 11:57:56 +08:00
parent 52d486e2b1
commit db8baed9c7
9 changed files with 435 additions and 97 deletions

View File

@@ -27,9 +27,6 @@ namespace UIShare.GlobalVariable
private readonly string _scopeName;
private readonly IEventAggregator _eventAggregator;
/// <summary>CAN 信号广播器:将 DBC 解码后的信号值广播给监控系统</summary>
private CANSignalBroadcaster? _canSignalBroadcaster;
/// <summary>按 DeviceName 索引的设备字典,便于业务层按名取实例。</summary>
public IDictionary<string, IBaseInterface> DeviceMap { get; private set; }
= new Dictionary<string, IBaseInterface>(StringComparer.OrdinalIgnoreCase);
@@ -439,10 +436,6 @@ namespace UIShare.GlobalVariable
bool ok = await Task.Run(() =>
{
if (!CANFD.()) return false;
// 启动 CAN 信号广播器
_canSignalBroadcaster = new CANSignalBroadcaster(_eventAggregator, _scopeName);
_canSignalBroadcaster.Bind(CANFD);
// 自动加载 DBC 文件
if (_systemConfig?.DBCAutoLoadList != null)
{
@@ -528,10 +521,6 @@ namespace UIShare.GlobalVariable
return;
}
// 先释放 CAN 信号广播器,取消事件订阅,防止关闭过程中仍触发回调
_canSignalBroadcaster?.Dispose();
_canSignalBroadcaster = null;
await Task.Run(() => CANFD.CAN卡设备());
LoggerHelper.Info($"CAN 设备 [{name}] 已成功关闭连接。");
}
@@ -591,10 +580,6 @@ namespace UIShare.GlobalVariable
public void Dispose()
{
// 释放 CAN 信号广播器
_canSignalBroadcaster?.Dispose();
_canSignalBroadcaster = null;
if (string.IsNullOrEmpty(_scopeName)) return;
// 遍历当前作用域用到的所有指纹,逐一移除本作用域的引用