DD.WellWorkover.Cloud/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs
2024-01-17 11:51:57 +05:00

95 lines
2.7 KiB
C#

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>
[Required]
public DateTime Date
{
get { return DateTime; }
set { DateTime = value; }
}
/// <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;
}
}