From 2a57455755359597eeef11b8e56b9588e9563724 Mon Sep 17 00:00:00 2001 From: Tyrone CT Date: Mon, 2 Mar 2026 23:04:25 +0800 Subject: [PATCH] =?UTF-8?q?LIN=20SCH=20Dialog=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/DialogLINSchConfigViewModel.cs | 42 ++++--------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/CapMachine.Wpf/ViewModels/DialogLINSchConfigViewModel.cs b/CapMachine.Wpf/ViewModels/DialogLINSchConfigViewModel.cs index b8cb0f4..3557829 100644 --- a/CapMachine.Wpf/ViewModels/DialogLINSchConfigViewModel.cs +++ b/CapMachine.Wpf/ViewModels/DialogLINSchConfigViewModel.cs @@ -15,11 +15,12 @@ namespace CapMachine.Wpf.ViewModels { public class DialogLINSchConfigViewModel : DialogViewModel { - public DialogLINSchConfigViewModel(IFreeSql freeSql, IMapper mapper) + public DialogLINSchConfigViewModel(IFreeSql freeSql, IMapper mapper, LinDriveService linDriveService) { Title = "调度表 LIN 配置"; FreeSql = freeSql; Mapper = mapper; + LinDriveService = linDriveService; //默认只能用1号调度器 SchTabIndexCbxItems = new ObservableCollection() @@ -53,6 +54,7 @@ namespace CapMachine.Wpf.ViewModels public IFreeSql FreeSql { get; } public IMapper Mapper { get; } + public LinDriveService LinDriveService { get; } private string name; /// @@ -413,45 +415,17 @@ namespace CapMachine.Wpf.ViewModels /// private void LoadSch() { - if (ListMsg == null || ListMsg.Count == 0) - { - MessageBox.Show("当前没有可配置的消息帧(ListMsg 为空)", "提示", MessageBoxButton.OK, MessageBoxImage.Hand); - return; - } - - // 覆盖当前配置程序的调度表(系统层面的调度表,来源于 UI 选择的消息帧集合) + var ListLINScheduleConfig = LinDriveService.ToomossLinDrive.GetLINScheduleConfigs(); + ListLINScheduleConfigDto.Clear(); + //先清空 FreeSql.Delete() .Where(a => a.CanLinConfigProId == SelectCanLinConfigProId) .ExecuteAffrows(); - var schTabName = "Default"; - var schTabIndex = 0; - var defaultCycle = 100; - - var idx = 0; - foreach (var msg in ListMsg.Where(a => !string.IsNullOrWhiteSpace(a)).Distinct(StringComparer.Ordinal)) + foreach (var item in ListLINScheduleConfig) { - var dto = new LINScheduleConfigDto - { - CanLinConfigProId = SelectCanLinConfigProId, - SchTabName = schTabName, - SchTabIndex = schTabIndex, - MsgName = msg, - MsgNameIndex = idx++, - Cycle = defaultCycle, - IsActive = true, - IsMsgActived = true, - }; - - FreeSql.InsertOrUpdate() - .SetSource(Mapper.Map(dto)) - .ExecuteAffrows(); + ListLINScheduleConfigDto.Add(Mapper.Map(item)); } - - ListLINScheduleConfigDto = new ObservableCollection( - Mapper.Map>( - FreeSql.Select().Where(a => a.CanLinConfigProId == SelectCanLinConfigProId).ToList())); - // 重新构建树 BuildTree(); }