using System.Diagnostics.CodeAnalysis; using InnovEnergy.Lib.Devices.Trumpf.SystemControl.DataTypes; namespace InnovEnergy.Lib.Devices.Trumpf.SystemControl; #pragma warning disable CS0649 [SuppressMessage("ReSharper", "InconsistentNaming")] public partial record SystemControlRegisters { private IEnumerable GetAlarms() { yield return Alarm1; yield return Alarm2; yield return Alarm3; yield return Alarm4; yield return Alarm5; yield return Alarm6; yield return Alarm7; yield return Alarm8; yield return Alarm9; yield return Alarm10; yield return Alarm11; yield return Alarm12; yield return Alarm13; yield return Alarm14; yield return Alarm15; yield return Alarm16; yield return Alarm17; yield return Alarm18; yield return Alarm19; yield return Alarm20; } public IReadOnlyList Alarms => GetAlarms() .Take(NumberOfAlarms) .Where(IsSystemControlAlarm) .ToList(); private static Boolean IsSystemControlAlarm(AlarmMessage alarm) => (UInt16)alarm is >= 40000 and < 50000; }