整理了错误的捕捉
关闭窗口验证
This commit is contained in:
@@ -311,69 +311,77 @@ namespace CapMachine.Wpf.Services
|
||||
{
|
||||
if (RecoredChannelInfo.Reader.TryRead(out var recordChannelData))
|
||||
{
|
||||
////第一次计时
|
||||
//stopwatch.Start(); //启动Stopwatch
|
||||
|
||||
//新增数据
|
||||
CacheRecordData.Add(recordChannelData);
|
||||
MaxCacheCellCount++;
|
||||
|
||||
//先判断缓存的单元大小,防止每次都检查删除,数据达到时间范围外的话,则删除,即是600次后进行一次判断删除
|
||||
if (MaxCacheCellCount >= 600)
|
||||
try
|
||||
{
|
||||
//不在缓存的时间范围内的话,则删除数据
|
||||
if (CacheRecordData.Where(a => a.CreateTime <= DateTime.Now.AddSeconds(-ConfigService.ChartRtDataCacheTimeSec)).Any())
|
||||
////第一次计时
|
||||
//stopwatch.Start(); //启动Stopwatch
|
||||
|
||||
//新增数据
|
||||
CacheRecordData.Add(recordChannelData);
|
||||
MaxCacheCellCount++;
|
||||
|
||||
//先判断缓存的单元大小,防止每次都检查删除,数据达到时间范围外的话,则删除,即是600次后进行一次判断删除
|
||||
if (MaxCacheCellCount >= 600)
|
||||
{
|
||||
CacheRecordData.RemoveAll(a => a.CreateTime <= DateTime.Now.AddSeconds(-ConfigService.ChartRtDataCacheTimeSec));
|
||||
//不在缓存的时间范围内的话,则删除数据
|
||||
if (CacheRecordData.Where(a => a.CreateTime <= DateTime.Now.AddSeconds(-ConfigService.ChartRtDataCacheTimeSec)).Any())
|
||||
{
|
||||
CacheRecordData.RemoveAll(a => a.CreateTime <= DateTime.Now.AddSeconds(-ConfigService.ChartRtDataCacheTimeSec));
|
||||
}
|
||||
MaxCacheCellCount = 0;
|
||||
}
|
||||
MaxCacheCellCount = 0;
|
||||
|
||||
//ConcurrentQueueData.
|
||||
|
||||
//Prism发布数据
|
||||
_EventAggregator.GetEvent<RecordDataEvent>().Publish(recordChannelData.DeepClone());
|
||||
|
||||
//判断集合的数据是否达到要求
|
||||
//if (CacheRecordData.Count >= MaxCacheCount)
|
||||
//{
|
||||
//CacheRecordData可能存在多个表格数据,依据表名进行分类
|
||||
|
||||
//考虑多个表结构
|
||||
//var GroupTableData = CacheRecordData.GroupBy(a => a.TableName).ToList();
|
||||
|
||||
//foreach (var ItemData in GroupTableData)
|
||||
//{
|
||||
//表名称
|
||||
//var TableName = ItemData.Key;
|
||||
//当前表格的数据
|
||||
//var Datas = ItemData.Select(item => item.Data).ToList();
|
||||
|
||||
//var Datas = recordChannelData.Select(item => item.Data).ToList();
|
||||
|
||||
//List<CsvRecordModel> models = Datas.Select(dict => ConvertToCsvRecordModel(dict)).ToList();
|
||||
|
||||
//转换到CSV的数据
|
||||
var models = ConvertToCsvRecordModel(recordChannelData.Data);
|
||||
//填充工况名称
|
||||
models.WorkCond = ConfigService.CurExpInfo.Name;
|
||||
|
||||
//数据库保存
|
||||
//zeroDbContext.Insert(Datas);
|
||||
|
||||
//CSV文件保存
|
||||
SaveToCsv(new List<CsvRecordModel>() { models });
|
||||
//}
|
||||
|
||||
//CacheRecordData.Clear();
|
||||
|
||||
//Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss:fff")}-{LineName}-保存成功!");
|
||||
//}
|
||||
|
||||
|
||||
//stopwatch.Stop(); //停止Stopwatch
|
||||
//Console.WriteLine("保存数据耗时::{0}", stopwatch.Elapsed.TotalSeconds.ToString());
|
||||
//stopwatch.Reset();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogService.Error(ex.Message);
|
||||
}
|
||||
|
||||
//ConcurrentQueueData.
|
||||
|
||||
//Prism发布数据
|
||||
_EventAggregator.GetEvent<RecordDataEvent>().Publish(recordChannelData.DeepClone());
|
||||
|
||||
//判断集合的数据是否达到要求
|
||||
//if (CacheRecordData.Count >= MaxCacheCount)
|
||||
//{
|
||||
//CacheRecordData可能存在多个表格数据,依据表名进行分类
|
||||
|
||||
//考虑多个表结构
|
||||
//var GroupTableData = CacheRecordData.GroupBy(a => a.TableName).ToList();
|
||||
|
||||
//foreach (var ItemData in GroupTableData)
|
||||
//{
|
||||
//表名称
|
||||
//var TableName = ItemData.Key;
|
||||
//当前表格的数据
|
||||
//var Datas = ItemData.Select(item => item.Data).ToList();
|
||||
|
||||
//var Datas = recordChannelData.Select(item => item.Data).ToList();
|
||||
|
||||
//List<CsvRecordModel> models = Datas.Select(dict => ConvertToCsvRecordModel(dict)).ToList();
|
||||
|
||||
//转换到CSV的数据
|
||||
var models = ConvertToCsvRecordModel(recordChannelData.Data);
|
||||
//填充工况名称
|
||||
models.WorkCond = ConfigService.CurExpInfo.Name;
|
||||
|
||||
//数据库保存
|
||||
//zeroDbContext.Insert(Datas);
|
||||
|
||||
//CSV文件保存
|
||||
SaveToCsv(new List<CsvRecordModel>() { models });
|
||||
//}
|
||||
|
||||
//CacheRecordData.Clear();
|
||||
|
||||
//Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss:fff")}-{LineName}-保存成功!");
|
||||
//}
|
||||
|
||||
|
||||
//stopwatch.Stop(); //停止Stopwatch
|
||||
//Console.WriteLine("保存数据耗时::{0}", stopwatch.Elapsed.TotalSeconds.ToString());
|
||||
//stopwatch.Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -400,9 +408,9 @@ namespace CapMachine.Wpf.Services
|
||||
//增加日期和时间两个列
|
||||
model.WorkDay = model.CreateTime.ToString("yyyy-MM-dd");
|
||||
model.Time = model.CreateTime.ToString("HH:mm:ss");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
@@ -452,7 +460,7 @@ namespace CapMachine.Wpf.Services
|
||||
var DataInfo = MachineRtDataService.TagManger.DicTags
|
||||
.ToDictionary(kvp => kvp.Key, kvp => (object)MachineRtDataService.TagManger.TryGetRecordPVValue(kvp.Value.Name));
|
||||
DataInfo.Add("创建时间", DateTime.Now);
|
||||
|
||||
|
||||
var RecordData = new RecordChannelData()
|
||||
{
|
||||
CreateTime = DateTime.Now,
|
||||
@@ -474,7 +482,7 @@ namespace CapMachine.Wpf.Services
|
||||
catch (Exception ex)
|
||||
{
|
||||
//CycleTimer.Start(); //执行完毕后再开启器
|
||||
LogService.Info($"时间:{DateTime.Now.ToString()}-【PwAnalyze-CycleAction】-{ex.Message}");
|
||||
LogService.Error($"时间:{DateTime.Now.ToString()}-【RecoredCycleAction】-{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using NLog;
|
||||
using CapMachine.Wpf.PrismEvent;
|
||||
using NLog;
|
||||
using Prism.Events;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -15,6 +17,16 @@ namespace CapMachine.Wpf.Services
|
||||
{
|
||||
private static Logger Logger = LogManager.GetCurrentClassLogger(); //初始化日志类
|
||||
|
||||
public IEventAggregator EventAggregator { get; }
|
||||
|
||||
/// <summary>
|
||||
/// NLog服务构造函数
|
||||
/// </summary>
|
||||
public LogService(IEventAggregator eventAggregator)
|
||||
{
|
||||
EventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 调试日志
|
||||
/// </summary>
|
||||
@@ -48,6 +60,8 @@ namespace CapMachine.Wpf.Services
|
||||
public void Error(string msg)
|
||||
{
|
||||
Logger.Error(msg);
|
||||
//发布错误状态消息,给页脚显示用
|
||||
EventAggregator.GetEvent<ErrStateEvent>().Publish(new ErrStateMsg() { ErrMsg=msg});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace CapMachine.Wpf.Services
|
||||
private IEventAggregator _EventAggregator { get; set; }
|
||||
public AlarmService AlarmService { get; }
|
||||
public ConfigService ConfigService { get; }
|
||||
public ILogService LogService { get; }
|
||||
public CanDriveService CanDriveService { get; }
|
||||
public CanFdDriveService CanFdDriveService { get; }
|
||||
public LinDriveService LinDriveService { get; }
|
||||
@@ -121,7 +122,7 @@ namespace CapMachine.Wpf.Services
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
/// <param name="eventAggregator"></param>
|
||||
public MachineRtDataService(IEventAggregator eventAggregator, AlarmService alarmService, ConfigService configService,
|
||||
public MachineRtDataService(IEventAggregator eventAggregator, AlarmService alarmService, ConfigService configService,ILogService logService,
|
||||
CanDriveService canDriveService, CanFdDriveService canFdDriveService, LinDriveService linDriveService, SysRunService sysRunService)//, AlarmService alarmService
|
||||
{
|
||||
//ConcurrentDictionary<DateTime, RecordInfo> keyValuePairs = new ConcurrentDictionary<DateTime, RecordInfo>();
|
||||
@@ -139,6 +140,7 @@ namespace CapMachine.Wpf.Services
|
||||
_EventAggregator = eventAggregator;
|
||||
AlarmService = alarmService;
|
||||
ConfigService = configService;
|
||||
LogService = logService;
|
||||
CanDriveService = canDriveService;
|
||||
CanFdDriveService = canFdDriveService;
|
||||
LinDriveService = linDriveService;
|
||||
@@ -1728,7 +1730,7 @@ namespace CapMachine.Wpf.Services
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||
LogService.Error(ex.Message);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using CapMachine.Wpf.Models;
|
||||
using CapMachine.Wpf.PrismEvent;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using System;
|
||||
@@ -10,11 +11,11 @@ using System.Threading.Tasks;
|
||||
namespace CapMachine.Wpf.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统
|
||||
/// 系统运行服务
|
||||
/// </summary>
|
||||
public class SysRunService : BindableBase
|
||||
{
|
||||
public SysRunService(IEventAggregator eventAggregator,ConfigService configService,CanDriveService canDriveService,LinDriveService linDriveService)
|
||||
public SysRunService(IEventAggregator eventAggregator, ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService)
|
||||
{
|
||||
// 创建一个定时器,设置间隔时间为2000毫秒(即2秒)
|
||||
CurTimer = new System.Timers.Timer(5000);
|
||||
@@ -28,10 +29,27 @@ namespace CapMachine.Wpf.Services
|
||||
ConfigService = configService;
|
||||
CanDriveService = canDriveService;
|
||||
LinDriveService = linDriveService;
|
||||
MachineRunState1 = new MachineRunState("M1", EventAggregator, ConfigService,canDriveService,linDriveService);
|
||||
MachineRunState1 = new MachineRunState("M1", EventAggregator, ConfigService, canDriveService, linDriveService);
|
||||
|
||||
EventAggregator.GetEvent<ErrStateEvent>().Subscribe(ErrStateAction);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 错误状态处理方法
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private void ErrStateAction(ErrStateMsg errStateMsg)
|
||||
{
|
||||
SysErrStateInfo.ActiveErr(errStateMsg.ErrMsg!);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 系统错误状态
|
||||
/// </summary>
|
||||
public SysErrState SysErrStateInfo { get; set; } = new SysErrState();
|
||||
|
||||
/// <summary>
|
||||
/// 设备运行状态
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user