| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Converters;
- using SWRIS.Enums;
- using System;
- using System.Collections.Generic;
- using System.IO.Ports;
- using System.Linq;
- namespace SWRIS.Models
- {
- public class ConfigModel
- {
- /// <summary>
- /// 系统名称
- /// </summary>
- public string AppName { get; set; }
- /// <summary>
- /// 软件版本号
- /// </summary>
- public string Version { get; set; }
- /// <summary>
- /// 版权/技术支持
- /// </summary>
- public string Copyright { get; set; }
- /// <summary>
- /// Tcp Server 服务Ip地址
- /// </summary>
- public string IpAddress { get; set; }
- /// <summary>
- /// Tcp Server 端口号
- /// </summary>
- public int Port { get; set; }
- /// <summary>
- /// 数据保存天数
- /// </summary>
- public int DataSaveDays { get; set; } = 120;
- /// <summary>
- /// 数据清理时间点
- /// </summary>
- public TimeSpan CleanScheduledTime { get; set; }
- /// <summary>
- /// 损伤附近点数(检测报告内用)
- /// </summary>
- public int DamageNearPointCount { get; set; } = 20;
- /// <summary>
- /// 是否显示调试信息
- /// </summary>
- public bool ShowDebugMessage { get; set; } = false;
- /// <summary>
- /// 语音报警级别
- /// </summary>
- public RiskLevel SoundRiskLevel { get; set; } = RiskLevel.Moderate;
- /// <summary>
- /// 速度波动阈值
- /// </summary>
- public double SpeedVariationThreshold { get; set; } = 0.25;
- /// <summary>
- /// 起重机名称
- /// </summary>
- public string Crane { get; set; }
- /// <summary>
- /// 小车集合
- /// </summary>
- public List<TrolleyData> Trolleys { get; set; }
- /// <summary>
- /// 设备集合
- /// </summary>
- public List<EquipmentModel> Equipments { get; set; }
- /// <summary>
- /// 应用切换
- /// </summary>
- public List<SwitchInstance> SwitchInstances { get; set; }
- /// <summary>
- /// 位置标定
- /// </summary>
- public CalibrationSettings Calibration { get; set; }
- /// <summary>
- /// 损伤容差范围
- /// </summary>
- public double DamageExtent { get; set; }
- /// <summary>
- /// 损伤确认频次
- /// </summary>
- public int AlarmValidCount { get; set; } = 1;
- public string GenerateNewSerialNo()
- {
- string prefix = DateTime.Now.ToString("yyMM");
- // 获取当前月份最大序号
- int max = Equipments.Select(e => e.SerialNo)?
- .Where(s => s != null && s.StartsWith(prefix))
- .Select(s => int.Parse(s.Substring(4)))
- .DefaultIfEmpty(0)
- .Max() ?? 0;
- // 生成新序号(最大+1,格式化为3位数)
- return $"{prefix}{(max + 1):D3}";
- }
- }
- public class CalibrationSettings
- {
- public ModuleType ModuleType { get; set; }
- public List<LimitData> Limits { get; set; }
- public TcpSettings Tcp { get; set; }
- public SerialSettings Serial { get; set; }
- }
- public class TcpSettings
- {
- public string IpAddress { get; set; }
- public int Port { get; set; }
- public byte Station { get; set; } = 1;
- }
- public class SerialSettings
- {
- public string PortName { get; set; }
- public int BaudRate { get; set; }
- public int DataBits { get; set; }
- [JsonConverter(typeof(StringEnumConverter))]
- public Parity Parity { get; set; }
- public StopBits StopBits { get; set; }
- public byte Station { get; set; } = 1;
- }
- public class TrolleyData
- {
- public int Id { get; set; }
- public string Name { get; set; }
- }
- public class LimitData
- {
- public int TrolleyId { get; set; }
- public string Name { get; set; }
- public string Address { get; set; }
- public double Position { get; set; }
- public bool IsReverse { get; set; }
- public LimitState State { get; set; }
- public bool IsEnable { get; set; }
- public List<int> RelatedRopes { get; set; } = new List<int>();
- public int SwitchIndex { get; set; }
- }
- public class SwitchInstance
- {
- public string InstanceName { get; set; }
- public string ProgressName { get; set; }
- public string ImageSource { get; set; }
- }
- }
|