| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- using CommunityToolkit.Mvvm.ComponentModel;
- namespace YZWater.Core.Models;
- /// <summary>
- /// 系统配置模型
- /// </summary>
- public partial class SystemConfig : ObservableObject
- {
- /// <summary>
- /// PLC IP 地址
- /// </summary>
- [ObservableProperty]
- private string _plcIp = "192.168.0.150";
- /// <summary>
- /// PLC 端口
- /// </summary>
- [ObservableProperty]
- private int _plcPort = 5000;
- /// <summary>
- /// 是否自动连接
- /// </summary>
- [ObservableProperty]
- private bool _autoConnect = true;
- /// <summary>
- /// 液位高报警值
- /// </summary>
- [ObservableProperty]
- private float _levelHighAlarm = 80f;
- /// <summary>
- /// 液位低报警值
- /// </summary>
- [ObservableProperty]
- private float _levelLowAlarm = 20f;
- /// <summary>
- /// 流量高报警值
- /// </summary>
- [ObservableProperty]
- private float _flowHighAlarm = 100f;
- /// <summary>
- /// 流量低报警值
- /// </summary>
- [ObservableProperty]
- private float _flowLowAlarm = 5f;
- /// <summary>
- /// 泵频率设置
- /// </summary>
- [ObservableProperty]
- private float _pumpFrequency = 50f;
- /// <summary>
- /// 系统名称
- /// </summary>
- [ObservableProperty]
- private string _systemName = "污水处理监控系统";
- /// <summary>
- /// 公司名称
- /// </summary>
- [ObservableProperty]
- private string _companyName = "扬州旭轩科技有限公司";
- /// <summary>
- /// 联系人
- /// </summary>
- [ObservableProperty]
- private string _contactPerson = "赵经理";
- /// <summary>
- /// 联系电话
- /// </summary>
- [ObservableProperty]
- private string _contactPhone = "18115099090";
- /// <summary>
- /// 是否深色主题
- /// </summary>
- [ObservableProperty]
- private bool _isDarkTheme;
- /// <summary>
- /// 是否中文语言
- /// </summary>
- [ObservableProperty]
- private bool _isChinese = true;
- /// <summary>
- /// 中控服务端口
- /// </summary>
- [ObservableProperty]
- private int _hubPort = 8765;
- /// <summary>
- /// 中控服务端地址(客户端模式使用)
- /// </summary>
- [ObservableProperty]
- private string _hubServerUrl = "ws://localhost:8765";
- /// <summary>
- /// 运行模式:Direct/Server/Client
- /// </summary>
- [ObservableProperty]
- private string _runMode = "Direct";
- /// <summary>
- /// Hub 通信令牌(服务端和客户端必须匹配)
- /// </summary>
- [ObservableProperty]
- private string _hubToken = string.Empty;
- /// <summary>
- /// 是否记住登录用户名
- /// </summary>
- [ObservableProperty]
- private bool _rememberUserName;
- /// <summary>
- /// 保存的用户名
- /// </summary>
- [ObservableProperty]
- private string _savedUserName = string.Empty;
- /// <summary>
- /// 当前激活的项目名称(对应 projects/ 目录下的 JSON 文件名,不含后缀)
- /// 空字符串表示使用内置默认项目配置
- /// </summary>
- [ObservableProperty]
- private string _activeProject = string.Empty;
- /// <summary>
- /// PLC 轮询间隔(毫秒)
- /// </summary>
- [ObservableProperty]
- private int _plcPollingIntervalMs = 1000;
- /// <summary>
- /// 是否开机自启动
- /// </summary>
- [ObservableProperty]
- private bool _runAtStartup;
- /// <summary>
- /// PLC 地址覆盖(key=标签名如 Tank1Level, value=地址如 VD100)
- /// 空则使用默认地址
- /// </summary>
- public Dictionary<string, string> PlcAddresses { get; set; } = new();
- /// <summary>
- /// PLC 协议类型:SiemensS7 / MitsubishiMC / OmronFins / ModbusTcp / AllenBradley
- /// 默认 SiemensS7(当前项目使用 S7-200 Smart)
- /// </summary>
- [ObservableProperty]
- private string _plcProtocol = "SiemensS7";
- // ═══ 数据保留配置 ═══
- /// <summary>
- /// 数据保留配置
- /// </summary>
- public DataRetentionConfig DataRetention { get; set; } = new();
- // ═══ 备份配置 ═══
- /// <summary>
- /// 备份配置
- /// </summary>
- public BackupConfig Backup { get; set; } = new();
- }
- /// <summary>
- /// 数据保留配置
- /// </summary>
- public class DataRetentionConfig
- {
- /// <summary>报警记录保留天数(默认 90 天)</summary>
- public int AlarmRecordRetentionDays { get; set; } = 90;
- /// <summary>流量记录保留天数(默认 360 天)</summary>
- public int FlowRecordRetentionDays { get; set; } = 360;
- /// <summary>模拟量记录保留天数(默认 360 天)</summary>
- public int AnalogRecordRetentionDays { get; set; } = 360;
- /// <summary>审计日志保留天数(默认 365 天)</summary>
- public int AuditLogRetentionDays { get; set; } = 365;
- }
- /// <summary>
- /// 备份配置
- /// </summary>
- public class BackupConfig
- {
- /// <summary>是否启用定时备份</summary>
- public bool EnableScheduledBackup { get; set; } = true;
- /// <summary>定时备份间隔(小时,默认 24 小时)</summary>
- public int BackupIntervalHours { get; set; } = 24;
- /// <summary>保留备份数量(默认 7 个)</summary>
- public int KeepBackupCount { get; set; } = 7;
- }
|