现场增加日志功能

This commit is contained in:
2026-05-14 10:41:23 +08:00
parent e954988fb5
commit 4cdda056b4

View File

@@ -39,9 +39,9 @@ namespace CapMachine.Wpf.ViewModels
IEventAggregator eventAggregator, IRegionManager regionManager, SysRunService sysRunService, IEventAggregator eventAggregator, IRegionManager regionManager, SysRunService sysRunService,
ComActionService actionService, ComActionService actionService,
ConfigService configService, CanDriveService canDriveService, ConfigService configService, CanDriveService canDriveService,
IMapper mapper, MachineRtDataService machineRtDataService) IMapper mapper, MachineRtDataService machineRtDataService, ILogService logService)
{ {
//LogService = logService; LogService = logService;
FreeSql = freeSql; FreeSql = freeSql;
EventAggregator = eventAggregator; EventAggregator = eventAggregator;
RegionManager = regionManager; RegionManager = regionManager;
@@ -52,7 +52,6 @@ namespace CapMachine.Wpf.ViewModels
Mapper = mapper; Mapper = mapper;
this.MachineRtDataService = machineRtDataService; this.MachineRtDataService = machineRtDataService;
//MachineDataService = machineDataService;
DialogService = dialogService; DialogService = dialogService;
WriteNameCbxItems = new ObservableCollection<CbxItems>() WriteNameCbxItems = new ObservableCollection<CbxItems>()
@@ -89,6 +88,7 @@ namespace CapMachine.Wpf.ViewModels
public CanDriveService CanDriveService { get; } public CanDriveService CanDriveService { get; }
public IMapper Mapper { get; } public IMapper Mapper { get; }
private MachineRtDataService MachineRtDataService { get; } private MachineRtDataService MachineRtDataService { get; }
public ILogService LogService { get; }
/// <summary> /// <summary>
/// 弹窗服务 /// 弹窗服务
@@ -104,55 +104,58 @@ namespace CapMachine.Wpf.ViewModels
/// </summary> /// </summary>
private void InitLoadCanConfigPro() private void InitLoadCanConfigPro()
{ {
//CAN配置集合数据 try
canLinConfigPros = FreeSql.Select<CanLinConfigPro>().Where(a => a.CANLINInfo == CANLIN.CAN)
.Include(a => a.CANConfigExd)
.IncludeMany(a => a.CanLinConfigContents)
.ToList();
ListCanLinConfigPro = new ObservableCollection<CanLinConfigPro>(canLinConfigPros);
if (SelectCanLinConfigPro != null)
{ {
SelectCanLinConfigPro = canLinConfigPros.Where(a => a.Id == SelectCanLinConfigPro.Id).FirstOrDefault()!; LogService.Info("开始加载CAN配置数据");
//无数据就返回 //CAN配置集合数据
if (SelectCanLinConfigPro == null) return; canLinConfigPros = FreeSql.Select<CanLinConfigPro>().Where(a => a.CANLINInfo == CANLIN.CAN)
.Include(a => a.CANConfigExd)
SelectedCANConfigExdDto = Mapper.Map<CANConfigExdDto>(SelectCanLinConfigPro!.CANConfigExd); .IncludeMany(a => a.CanLinConfigContents)
.ToList();
//配置信息 ListCanLinConfigPro = new ObservableCollection<CanLinConfigPro>(canLinConfigPros);
var WirteData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Write).ToList(); if (SelectCanLinConfigPro != null)
if (WirteData != null && WirteData.Count > 0)
{ {
ListWriteCanLinRWConfigDto = new ObservableCollection<CanLinRWConfigDto>(Mapper.Map<List<CanLinRWConfigDto>>(WirteData)); SelectCanLinConfigPro = canLinConfigPros.Where(a => a.Id == SelectCanLinConfigPro.Id).FirstOrDefault()!;
//无数据就返回
if (SelectCanLinConfigPro == null) return;
SelectedCANConfigExdDto = Mapper.Map<CANConfigExdDto>(SelectCanLinConfigPro!.CANConfigExd);
//加载把当前的配置信息给指令 //配置信息
CanDriveService.CmdData.Clear(); var WirteData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Write).ToList();
foreach (var item in WirteData) if (WirteData != null && WirteData.Count > 0)
{ {
CanDriveService.AddCmdData(new CanCmdData() ListWriteCanLinRWConfigDto = new ObservableCollection<CanLinRWConfigDto>(Mapper.Map<List<CanLinRWConfigDto>>(WirteData));
{
ConfigName = item.Name,
MsgName = item.MsgFrameName,
SignalName = item.SignalName,
SignalCmdValue = double.TryParse(item.DefautValue, out double result) == true ? result : 0,
});
//CanDriveService.CmdData.Add(new CanCmdData()
//{
// ConfigName = item.Name,
// MsgName = item.MsgFrameName,
// SignalName = item.SignalName,
// SignalCmdValue = double.TryParse(item.DefautValue, out double result) == true ? result : 0,
//});
}
}
var ReadData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Read).ToList();
if (ReadData != null && ReadData.Count > 0)
{
ListReadCanLinRWConfigDto = new ObservableCollection<CanLinRWConfigDto>(Mapper.Map<List<CanLinRWConfigDto>>(ReadData));
}
//匹配选中的SelectCanLinConfigPro.CanLinConfigContents和ListCanDbcModel //加载把当前的配置信息给指令
MatchSeletedAndCanDbcModel(); CanDriveService.CmdData.Clear();
foreach (var item in WirteData)
{
CanDriveService.AddCmdData(new CanCmdData()
{
ConfigName = item.Name,
MsgName = item.MsgFrameName,
SignalName = item.SignalName,
SignalCmdValue = double.TryParse(item.DefautValue, out double result) == true ? result : 0,
});
}
}
var ReadData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Read).ToList();
if (ReadData != null && ReadData.Count > 0)
{
ListReadCanLinRWConfigDto = new ObservableCollection<CanLinRWConfigDto>(Mapper.Map<List<CanLinRWConfigDto>>(ReadData));
}
//匹配选中的SelectCanLinConfigPro.CanLinConfigContents和ListCanDbcModel
MatchSeletedAndCanDbcModel();
}
LogService.Info("CAN配置数据加载成功");
}
catch (Exception ex)
{
LogService.Error($"加载CAN配置数据失败: {ex.Message}\r\n堆栈: {ex.StackTrace}");
System.Windows.MessageBox.Show($"加载CAN配置数据失败: {ex.Message}", "错误", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error);
} }
} }
@@ -373,41 +376,54 @@ namespace CapMachine.Wpf.ViewModels
} }
break; break;
case "Active": case "Active":
try
//激活到取消的状态的判断
if (IsCanConfigProActive == true)
{ {
//控件的激活 LogService.Info("开始执行CAN配置激活操作");
IsCanConfigProActive = !IsCanConfigProActive; //激活到取消的状态的判断
//控件的激活配置信息 if (IsCanConfigProActive == true)
IsCANConfigDatagridActive = !IsCanConfigProActive;
return;
}
if ((CanDriveService.ToomossCanDrive.OpenState == true && CanDriveService.ToomossCanDrive.DbcParserState == true))
{
if (SelectCanLinConfigPro != null)
{ {
//控件的激活 //控件的激活
IsCanConfigProActive = !IsCanConfigProActive; IsCanConfigProActive = !IsCanConfigProActive;
//控件的激活配置信息 //控件的激活配置信息
IsCANConfigDatagridActive = !IsCanConfigProActive; IsCANConfigDatagridActive = !IsCanConfigProActive;
//当前使用的CAN 配置信息 LogService.Info("CAN配置已取消激活");
CanDriveService.InitCanConfig(SelectCanLinConfigPro); return;
}
if ((CanDriveService.ToomossCanDrive.OpenState == true && CanDriveService.ToomossCanDrive.DbcParserState == true))
{
if (SelectCanLinConfigPro != null)
{
//控件的激活
IsCanConfigProActive = !IsCanConfigProActive;
//控件的激活配置信息
IsCANConfigDatagridActive = !IsCanConfigProActive;
//当前使用的CAN 配置信息
CanDriveService.InitCanConfig(SelectCanLinConfigPro);
InitLoadCanConfigPro();
LogService.Info($"CAN配置激活成功: {SelectCanLinConfigPro.ConfigName}");
}
else
{
System.Windows.MessageBox.Show("选中后再操作", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
}
InitLoadCanConfigPro();
} }
else else
{ {
System.Windows.MessageBox.Show("选中后再操作", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand); System.Windows.MessageBox.Show("请确保CAN连接打开和Dbc解析成功后再激活", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
} }
} }
else catch (Exception ex)
{ {
System.Windows.MessageBox.Show("请确保CAN连接打开和Dbc解析成功后再激活", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand); LogService.Error($"CAN配置激活操作失败: {ex.Message}\r\n堆栈: {ex.StackTrace}");
System.Windows.MessageBox.Show($"CAN配置激活操作失败: {ex.Message}", "错误", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error);
//恢复状态
IsCanConfigProActive = false;
IsCANConfigDatagridActive = true;
} }
break; break;
default: default: