using System; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.SAUB { /// <summary> /// телеметрия спин мастер /// </summary> public class TelemetryDataSpinDto : ITelemetryData { /// <summary> /// Идентификатор телеметрии /// </summary> public int IdTelemetry { get; set; } /// <summary> /// Дата /// </summary> [Required] public DateTime DateTime { get; set; } /// <summary> /// Ограничение числа оборотов вправо /// </summary> public float? RevolsRightLimit { get; set; } /// <summary> /// Ограничение числа оборотов влево /// </summary> public float? RevolsLeftLimit { get; set; } /// <summary> /// Заданная скорость вращения вправо /// </summary> public float? SpeedRightSp { get; set; } /// <summary> /// Заданная скорость вращения влево /// </summary> public float? SpeedLeftSp { get; set; } /// <summary> /// Суммарное количество оборотов вправо /// </summary> public float? RevolsRightTotal { get; set; } /// <summary> /// Суммарное количество оборотов влево /// </summary> public float? RevolsLeftTotal { get; set; } /// <summary> /// Нулевая позиция осцилляции /// </summary> public float? PositionZero { get; set; } /// <summary> /// Крайний правый угол осцилляции /// </summary> public float? PositionRight { get; set; } /// <summary> /// Выбранный режим управления /// </summary> public short? Mode { get; set; } /// <summary> /// Переменная этапа /// </summary> public short? State { get; set; } /// <summary> /// Осцилляция включена /// </summary> [Required] public bool IsOscillating => State != 0 & State != 6 & State != 7; /// <summary> /// Демпфирование включено /// </summary> [Required] public bool IsDampening => State == 7 && (Mode & 2) > 0; } }