DD.WellWorkover.Cloud/AsbCloudDb/Model/TelemetryDataSpin.cs
Фролов 864d851b6a BIG. Add timescaleDB into DB.
Adapt contect to use hypertables.
Refactor TelemetryDataBaseService to avoid duplicate keys and try to save as more as posible
2021-11-13 18:47:11 +05:00

152 lines
9.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
namespace AsbCloudDb.Model
{
[Table("t_telemetry_data_spin"), Comment("набор основных данных по SpinMaster")]
public class TelemetryDataSpin : ITelemetryData
{
[Column("id_telemetry")]
public int IdTelemetry { get; set; }
[Column("date", TypeName = "timestamp with time zone"), Comment("'2021-10-19 18:23:54+05'")]
public DateTime Date { get; set; }
[Column("top_drive_speed"), Comment("Скорость СВП")]
public float? TopDriveSpeed { get; set; }
[Column("top_drive_speed_min"), Comment("нижний предел")]
public float? TopDriveSpeedMin { get; set; }
[Column("top_drive_speed_max"), Comment("верхний предел")]
public float? TopDriveSpeedMax { get; set; }
[Column("top_drive_speed_offset"), Comment("смещение")]
public float? TopDriveSpeedOffset { get; set; }
[Column("top_drive_torque"), Comment("Момент СВП")]
public float? TopDriveTorque { get; set; }
[Column("top_drive_torque_min")]
public float? TopDriveTorqueMin { get; set; }
[Column("top_drive_torque_max")]
public float? TopDriveTorqueMax { get; set; }
[Column("top_drive_torque_offset")]
public float? TopDriveTorqueOffset { get; set; }
[Column("top_drive_speed_sp_from"), Comment("Заданная скорость c СВП")]
public float? TopDriveSpeedSpFrom { get; set; }
[Column("top_drive_speed_sp_from_min")]
public float? TopDriveSpeedSpFromMin { get; set; }
[Column("top_drive_speed_sp_from_max")]
public float? TopDriveSpeedSpFromMax { get; set; }
[Column("top_drive_speed_sp_from_offset")]
public float? TopDriveSpeedSpFromOffset { get; set; }
[Column("top_drive_torque_sp_from"), Comment("Заданный момент c СВП")]
public float? TopDriveTorqueSpFrom { get; set; }
[Column("top_drive_torque_sp_from_min")]
public float? TopDriveTorqueSpFromMin { get; set; }
[Column("top_drive_torque_sp_from_max")]
public float? TopDriveTorqueSpFromMax { get; set; }
[Column("top_drive_torque_sp_from_offset")]
public float? TopDriveTorqueSpFromOffset { get; set; }
[Column("top_drive_speed_sp_to"), Comment("Задание скорости на СВП")]
public float? TopDriveSpeedSpTo { get; set; }
[Column("top_drive_speed_sp_to_min")]
public float? TopDriveSpeedSpToMin { get; set; }
[Column("top_drive_speed_sp_to_max")]
public float? TopDriveSpeedSpToMax { get; set; }
[Column("top_drive_speed_sp_to_offset")]
public float? TopDriveSpeedSpToOffset { get; set; }
[Column("top_drive_torque_sp_to"), Comment("Задание момента на СВП")]
public float? TopDriveTorqueSpTo { get; set; }
[Column("top_drive_torque_sp_to_min")]
public float? TopDriveTorqueSpToMin { get; set; }
[Column("top_drive_torque_sp_to_max")]
public float? TopDriveTorqueSpToMax { get; set; }
[Column("top_drive_torque_sp_to_offset")]
public float? TopDriveTorqueSpToOffset { get; set; }
[Column("torque_starting"), Comment(" Страгивающий момент")]
public float? TorqueStarting { get; set; }
[Column("rotor_torque_avg"), Comment(" Момент в роторе средний")]
public float? RotorTorqueAvg { get; set; }
[Column("encoder_resolution "), Comment(" Разрешение энкодера")]
public float? EncoderResolution { get; set; }
[Column("ratio"), Comment(" Коэффициент редукции редектора")]
public float? Ratio { get; set; }
[Column("torque_right_limit"), Comment("Ограничение крутящего момента вправо")]
public float? TorqueRightLimit { get; set; }
[Column("torque_left_limit"), Comment("Ограничение крутящего момента влево")]
public float? TorqueLeftLimit { get; set; }
[Column("revols_right_limit"), Comment("Ограничение числа оборотов вправо")]
public float? RevolsRightLimit { get; set; }
[Column("revols_left_limit"), Comment("Ограничение числа оборотов влево")]
public float? RevolsLeftLimit { get; set; }
[Column("speed_right_sp"), Comment("Заданная скорость вращения вправо")]
public float? SpeedRightSp { get; set; }
[Column("speed_left_sp"), Comment("Заданная скорость вращения влево")]
public float? SpeedLeftSp { get; set; }
[Column("revols_right_total"), Comment("Суммарное количество оборотов вправо")]
public float? RevolsRightTotal { get; set; }
[Column("revols_left_total"), Comment("Суммарное количество оборотов влево")]
public float? RevolsLeftTotal { get; set; }
[Column("turn_right_once_by_torque"), Comment("Доворот по моменту единожды вправо")]
public float? TurnRightOnceByTorque { get; set; }
[Column("turn_left_once_by_torque"), Comment("Доворот по моменту единожды влево")]
public float? TurnLeftOnceByTorque { get; set; }
[Column("turn_right_once_by_angle"), Comment("Доворот по градусам единожды вправо")]
public float? TurnRightOnceByAngle { get; set; }
[Column("turn_left_once_by_angle"), Comment("Доворот по градусам единожды влево")]
public float? TurnLeftOnceByAngle { get; set; }
[Column("turn_right_once_by_revols"), Comment("Доворот по оборотам единожды вправо")]
public float? TurnRightOnceByRevols { get; set; }
[Column("turn_left_once_by_revols"), Comment("Доворот по оборотам единожды влево")]
public float? TurnLeftOnceByRevols { get; set; }
[Column("break_angle_k"), Comment("Коэффициент для расчёта за какой угол нужно тормозить")]
public float? BreakAngleK { get; set; }
[Column("reverse_k_torque"), Comment("Коэффициент на который умножается момент, для того чтобы система поняла что мы движемся в обратную сторону")]
public float? ReverseKTorque { get; set; }
[Column("position_zero"), Comment("Нулевая позиция осциляции")]
public float? PositionZero { get; set; }
[Column("position_right"), Comment("Крайний правый угол осциляции")]
public float? PositionRight { get; set; }
[Column("torque_ramp_time"), Comment("Время нарастания момента")]
public float? TorqueRampTime { get; set; }
[Column("ver"), Comment("Версия ПО ПЛК")]
public float? Ver { get; set; }
[Column("unlock_by_sector_out"), Comment(" Градус отклонения от сектора для автоматического сброса блокировки")]
public float? UnlockBySectorOut { get; set; }
[Column("pid_mux_torque_left_limit"), Comment(" Момент при котором определяется ехать назад по моменту или по скорости")]
public float? PidMuxTorqueLeftLimit { get; set; }
[Column("break_angle_left"), Comment("Угол торможения влево при работе по моменту")]
public float? BreakAngleLeft { get; set; }
[Column("top_drive_speed_err")]
public short? TopDriveSpeedErr { get; set; }
[Column("top_drive_torque_err")]
public short? TopDriveTorqueErr { get; set; }
[Column("top_drive_speed_sp_from_err")]
public short? TopDriveSpeedSpFromErr { get; set; }
[Column("top_drive_torque_sp_from_err")]
public short? TopDriveTorqueSpFromErr { get; set; }
[Column("top_drive_speed_sp_to_err")]
public short? TopDriveSpeedSpToErr { get; set; }
[Column("top_drive_torque_sp_to_err")]
public short? TopDriveTorqueSpToErr { get; set; }
[Column("w2800"), Comment("Установка нуля энкодера")]
public short? W2800 { get; set; }
[Column("w2810"), Comment(" автоматический сброс блокировки")]
public short? W2810 { get; set; }
[Column("mode"), Comment("Выбранный режим управления")]
public short? Mode { get; set; }
[Column("w2808"), Comment("Неисправность энкодера")]
public short? W2808 { get; set; }
[Column("reverse_speed_sp_zero_time"), Comment("Время выдачи сигнала нулевой скорости на при смене направления")]
public short? ReverseSpeedSpZeroTime { get; set; }
[Column("state"), Comment("Переменная этапа")]
public short? State { get; set; }
[JsonIgnore]
[ForeignKey(nameof(IdTelemetry))]
[InverseProperty(nameof(Model.Telemetry.DataSpin))]
public virtual Telemetry Telemetry { get; set; }
}
}