- 在 appConfig.json 中添加 EndianFormat 配置项并更新相关输入输出地址 - 修改 ResultCode 类型为 short,确保与 PLC 通信一致 - 新增 DesignTimePlcService 以支持设计时的 PLC 测试写入功能 - 更新 SystemSettingViewModel 和 DashboardPage 以支持手动测试写入 - 调整多个视图模型和服务以适应新的 PLC 写入逻辑 - 更新相关单元测试以验证新功能的正确性
44 lines
1.9 KiB
C#
44 lines
1.9 KiB
C#
using AxiOmron.PcbCheck.Options;
|
|
using AxiOmron.PcbCheck.Services.Interfaces;
|
|
using AxiOmron.PcbCheck.ViewModels;
|
|
|
|
namespace AxiOmron.PcbCheck.DesignTime;
|
|
|
|
/// <summary>
|
|
/// 为 XAML 设计器提供基于真实 ViewModel 的设计时定位器。
|
|
/// </summary>
|
|
public sealed class DesignTimeViewModelLocator
|
|
{
|
|
private readonly DesignTimeAppStateStore _appStateStore = new();
|
|
private readonly DesignTimeDispatcherService _dispatcherService = new();
|
|
private readonly DesignTimeWorkflowControlService _workflowControlService = new();
|
|
private readonly DesignTimeAppConfigService _appConfigService = new();
|
|
private readonly DesignTimeAdminUnlockDialogService _adminUnlockDialogService = new();
|
|
private readonly DesignTimeSftpLookupService _sftpLookupService = new();
|
|
private readonly DesignTimePlcService _plcService = new();
|
|
private MainWindowViewModel? _mainWindowViewModel;
|
|
private SystemSettingViewModel? _systemSettingViewModel;
|
|
|
|
/// <summary>
|
|
/// 获取首页设计时视图模型。
|
|
/// </summary>
|
|
public MainWindowViewModel MainWindowViewModel
|
|
=> _mainWindowViewModel ??= CreateMainWindowViewModel();
|
|
|
|
/// <summary>
|
|
/// 获取系统设置设计时视图模型。
|
|
/// </summary>
|
|
public SystemSettingViewModel SystemSettingViewModel
|
|
=> _systemSettingViewModel ??= new SystemSettingViewModel(_appConfigService, _sftpLookupService, _appStateStore, _dispatcherService, _plcService);
|
|
|
|
/// <summary>
|
|
/// 创建首页设计时视图模型。
|
|
/// </summary>
|
|
/// <returns>填充了设计时演示数据的真实视图模型实例。</returns>
|
|
private MainWindowViewModel CreateMainWindowViewModel()
|
|
{
|
|
AppConfig config = _appConfigService.Load();
|
|
return new MainWindowViewModel(_appStateStore, _dispatcherService, _workflowControlService, config, _adminUnlockDialogService);
|
|
}
|
|
}
|