From 80434475dbaadaee177c4b2da3eefb23ff9e0c29 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Mon, 11 Apr 2022 17:22:52 +0500 Subject: [PATCH] Add telemetryWireLine. Add InstantDataRepository --- .../Data/SAUB/TelemetryWirelineRunOutDto.cs | 30 + AsbCloudApp/Services/InstantDataRepository.cs | 13 + .../UsefulQueries/timescale_restore_dump.sql | 11 + AsbCloudInfrastructure/DependencyInjection.cs | 1 + .../TelemetryDataBaseController.cs | 2 +- .../TelemetryInstantDataController.cs | 95 ++++ .../TelemetryWirelineRunOutController.cs | 26 + AsbCloudWebApi/ProtobufModel.cs | 529 +++++++++++++----- 8 files changed, 580 insertions(+), 127 deletions(-) create mode 100644 AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs create mode 100644 AsbCloudApp/Services/InstantDataRepository.cs create mode 100644 AsbCloudWebApi/Controllers/TelemetryInstantDataController.cs create mode 100644 AsbCloudWebApi/Controllers/TelemetryWirelineRunOutController.cs diff --git a/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs b/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs new file mode 100644 index 00000000..b4276962 --- /dev/null +++ b/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs @@ -0,0 +1,30 @@ +using System; + +namespace AsbCloudApp.Data.SAUB +{ + public class TelemetryWirelineRunOutDto + { + public DateTime DateTime { get; set; } + + /// + /// Наработка талевого каната с момента перетяжки каната, т*км + /// + public float Hauling { get; set; } + + /// + /// Наработка талевого каната до сигнализации о необходимости перетяжки, т*км + /// + public float HaulingWarnSp { get; set; } + + /// + /// Наработка талевого каната с момента замены каната, т*км + /// + public float Replace { get; set; } + + /// + /// Наработка талевого каната до сигнализации о необходимости замены, т*км + /// + public float ReplaceWarnSp { get; set; } + + } +} diff --git a/AsbCloudApp/Services/InstantDataRepository.cs b/AsbCloudApp/Services/InstantDataRepository.cs new file mode 100644 index 00000000..4f8b0267 --- /dev/null +++ b/AsbCloudApp/Services/InstantDataRepository.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace AsbCloudApp.Services +{ + /// + /// + /// + public class InstantDataRepository: ConcurrentDictionary> + { + } +} diff --git a/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql b/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql index c8dd8bf5..f9d908bf 100644 --- a/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql +++ b/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql @@ -7,5 +7,16 @@ SELECT timescaledb_pre_restore(); SELECT timescaledb_post_restore(); +--https://www.postgresql.org/docs/current/rules-materializedviews.html + +CREATE MATERIALIZED VIEW mv_telemetry_statistic AS select + id_telemetry, + count(*) as count, + min(date) as date_start, + max(date) as date_end, + min(well_depth) as depth_start, + max(well_depth) as depth_end +from t_telemetry_data_saub +group by id_telemetry; select * from t_telemetry_message ttm where id_event = 206; \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 79ba1f42..5c9971db 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -57,6 +57,7 @@ namespace AsbCloudInfrastructure services.AddSingleton(new WitsInfoService()); services.AddSingleton(new CacheDb()); + services.AddSingleton(new InstantDataRepository()); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); diff --git a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs index 3c1f32f5..ab1ef1fe 100644 --- a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs @@ -53,7 +53,7 @@ namespace AsbCloudWebApi.Controllers await telemetryDataService.UpdateDataAsync(uid, dtos, token).ConfigureAwait(false); var idWell = telemetryService.GetIdWellByTelemetryUid(uid); - if (idWell != null && dtos.Any()) + if (idWell is not null && dtos.Any()) _ = Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}") .SendAsync(SirnalRMethodGetDataName, dtos), CancellationToken.None); diff --git a/AsbCloudWebApi/Controllers/TelemetryInstantDataController.cs b/AsbCloudWebApi/Controllers/TelemetryInstantDataController.cs new file mode 100644 index 00000000..82780eb7 --- /dev/null +++ b/AsbCloudWebApi/Controllers/TelemetryInstantDataController.cs @@ -0,0 +1,95 @@ +using AsbCloudApp.Services; +using AsbCloudWebApi.SignalR; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.SignalR; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudWebApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public abstract class TelemetryInstantDataController : ControllerBase + { + private readonly ITelemetryService telemetryService; + private readonly IWellService wellService; + private readonly IHubContext telemetryHubContext; + private readonly InstantDataRepository repository; + + protected abstract string SirnalRMethodGetDataName { get; } + + public TelemetryInstantDataController( + ITelemetryService telemetryService, + IWellService wellService, + IHubContext telemetryHubContext, + InstantDataRepository repository) + { + this.telemetryService = telemetryService; + this.wellService = wellService; + this.telemetryHubContext = telemetryHubContext; + this.repository = repository; + } + + [HttpPost] + [Route("{uid}")] + [AllowAnonymous] + public virtual IActionResult PostData( + string uid, + [FromBody] TDto dto) + { + if (dto is null) + return BadRequest("Dto shouldn't be null"); + + var idTelemetry = telemetryService.GetOrCreateTelemetryIdByUid(uid); + + var typedStore = repository.GetOrAdd(idTelemetry, (id) => new System.Collections.Concurrent.ConcurrentDictionary()); + var typeDto = typeof(TDto); + typedStore.AddOrUpdate(typeDto, dto, (_,_) => dto); + + var idWell = telemetryService.GetIdWellByTelemetryUid(uid); + if (idWell is not null) + _ = Task.Run(async () => + { + var clients = telemetryHubContext.Clients.Group($"well_{idWell}"); + await clients.SendAsync(SirnalRMethodGetDataName, dto); + }, CancellationToken.None); + + return Ok(); + } + + [HttpGet("{idWell}")] + [Permission] + public virtual async Task> GetDataAsync( + int idWell, + CancellationToken token = default) + { + int? idCompany = User.GetCompanyId(); + + if (idCompany is null) + return Forbid(); + + bool isCompanyOwnsWell = await wellService.IsCompanyInvolvedInWellAsync((int)idCompany, + idWell, token).ConfigureAwait(false); + + if (!isCompanyOwnsWell) + return Forbid(); + + int? idTelemetry = telemetryService.GetIdTelemetryByIdWell(idWell); + if (idTelemetry is null) + return NoContent(); + + var typedStore = repository.GetValueOrDefault((int)idTelemetry, null); + + if (typedStore is null) + return NoContent(); + + var typeDto = typeof(TDto); + var dto = typedStore.GetValueOrDefault(typeDto); + + return Ok(dto); + } + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/TelemetryWirelineRunOutController.cs b/AsbCloudWebApi/Controllers/TelemetryWirelineRunOutController.cs new file mode 100644 index 00000000..752fdf98 --- /dev/null +++ b/AsbCloudWebApi/Controllers/TelemetryWirelineRunOutController.cs @@ -0,0 +1,26 @@ +using AsbCloudApp.Data.SAUB; +using AsbCloudApp.Services; +using AsbCloudWebApi.SignalR; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.SignalR; + +namespace AsbCloudWebApi.Controllers +{ + [ApiController] + [Authorize] + [Route("api/[controller]")] + public class TelemetryWirelineRunOutController : TelemetryInstantDataController + { + protected override string SirnalRMethodGetDataName => "ReceiveWirelineRunOut"; + public TelemetryWirelineRunOutController( + ITelemetryService telemetryService, + IWellService wellService, + IHubContext telemetryHubContext, + InstantDataRepository repository) + : base(telemetryService, wellService, telemetryHubContext, repository) + { + } + + } +} diff --git a/AsbCloudWebApi/ProtobufModel.cs b/AsbCloudWebApi/ProtobufModel.cs index 935438c9..f7d19491 100644 --- a/AsbCloudWebApi/ProtobufModel.cs +++ b/AsbCloudWebApi/ProtobufModel.cs @@ -3,132 +3,409 @@ using ProtoBuf.Meta; namespace AsbCloudWebApi { - public static class ProtobufModel - { - public static void EnshureRegistered() - { - EnshureRegisteredDataSpin(); - EnshureRegisteredDataSaub(); - } + public static class ProtobufModel + { + public static void EnshureRegistered() + { + EnshureRegisteredDataSpin(); + EnshureRegisteredDataSaub(); + EnshureRegisteredWITS(); + EnshureRegisteredWirelineRunOutDto(); + } - static void EnshureRegisteredDataSpin() - { - var type = typeof(TelemetryDataSpinDto); - if (RuntimeTypeModel.Default.IsDefined(type)) - return; - RuntimeTypeModel.Default.Add(type, false) - .Add(1, nameof(TelemetryDataSpinDto.IdTelemetry)) - .Add(2, nameof(TelemetryDataSpinDto.DateTime)) - .Add(3, nameof(TelemetryDataSpinDto.TopDriveSpeed)) - .Add(4, nameof(TelemetryDataSpinDto.TopDriveSpeedMin)) - .Add(5, nameof(TelemetryDataSpinDto.TopDriveSpeedMax)) - .Add(6, nameof(TelemetryDataSpinDto.TopDriveSpeedOffset)) - .Add(7, nameof(TelemetryDataSpinDto.TopDriveSpeedErr)) - .Add(8, nameof(TelemetryDataSpinDto.TopDriveTorque)) - .Add(9, nameof(TelemetryDataSpinDto.TopDriveTorqueMin)) - .Add(10, nameof(TelemetryDataSpinDto.TopDriveTorqueMax)) - .Add(11, nameof(TelemetryDataSpinDto.TopDriveTorqueOffset)) - .Add(12, nameof(TelemetryDataSpinDto.TopDriveTorqueErr)) - .Add(13, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFrom)) - .Add(14, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromMin)) - .Add(15, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromMax)) - .Add(16, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromOffset)) - .Add(17, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromErr)) - .Add(18, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFrom)) - .Add(19, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromMin)) - .Add(20, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromMax)) - .Add(21, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromOffset)) - .Add(22, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromErr)) - .Add(23, nameof(TelemetryDataSpinDto.TopDriveSpeedSpTo)) - .Add(24, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToMin)) - .Add(25, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToMax)) - .Add(26, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToOffset)) - .Add(27, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToErr)) - .Add(28, nameof(TelemetryDataSpinDto.TopDriveTorqueSpTo)) - .Add(29, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToMin)) - .Add(30, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToMax)) - .Add(31, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToOffset)) - .Add(32, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToErr)) - .Add(33, nameof(TelemetryDataSpinDto.W2800)) - .Add(34, nameof(TelemetryDataSpinDto.W2810)) - .Add(35, nameof(TelemetryDataSpinDto.Mode)) - .Add(36, nameof(TelemetryDataSpinDto.W2808)) - .Add(37, nameof(TelemetryDataSpinDto.TorqueStarting)) - .Add(38, nameof(TelemetryDataSpinDto.RotorTorqueAvg)) - .Add(39, nameof(TelemetryDataSpinDto.EncoderResolution)) - .Add(40, nameof(TelemetryDataSpinDto.Ratio)) - .Add(41, nameof(TelemetryDataSpinDto.TorqueRightLimit)) - .Add(42, nameof(TelemetryDataSpinDto.TorqueLeftLimit)) - .Add(43, nameof(TelemetryDataSpinDto.RevolsRightLimit)) - .Add(44, nameof(TelemetryDataSpinDto.RevolsLeftLimit)) - .Add(45, nameof(TelemetryDataSpinDto.SpeedRightSp)) - .Add(46, nameof(TelemetryDataSpinDto.SpeedLeftSp)) - .Add(47, nameof(TelemetryDataSpinDto.RevolsRightTotal)) - .Add(48, nameof(TelemetryDataSpinDto.RevolsLeftTotal)) - .Add(49, nameof(TelemetryDataSpinDto.TurnRightOnceByTorque)) - .Add(50, nameof(TelemetryDataSpinDto.TurnLeftOnceByTorque)) - .Add(51, nameof(TelemetryDataSpinDto.TurnRightOnceByAngle)) - .Add(52, nameof(TelemetryDataSpinDto.TurnLeftOnceByAngle)) - .Add(53, nameof(TelemetryDataSpinDto.TurnRightOnceByRevols)) - .Add(54, nameof(TelemetryDataSpinDto.TurnLeftOnceByRevols)) - .Add(55, nameof(TelemetryDataSpinDto.BreakAngleK)) - .Add(56, nameof(TelemetryDataSpinDto.ReverseKTorque)) - .Add(57, nameof(TelemetryDataSpinDto.PositionZero)) - .Add(58, nameof(TelemetryDataSpinDto.PositionRight)) - .Add(59, nameof(TelemetryDataSpinDto.TorqueRampTime)) - .Add(60, nameof(TelemetryDataSpinDto.Ver)) - .Add(61, nameof(TelemetryDataSpinDto.ReverseSpeedSpZeroTime)) - .Add(62, nameof(TelemetryDataSpinDto.UnlockBySectorOut)) - .Add(63, nameof(TelemetryDataSpinDto.PidMuxTorqueLeftLimit)) - .Add(64, nameof(TelemetryDataSpinDto.State)) - .Add(65, nameof(TelemetryDataSpinDto.BreakAngleLeft)); - } + private static void EnshureRegisteredWirelineRunOutDto() + { + var type = typeof(TelemetryWirelineRunOutDto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + RuntimeTypeModel.Default.Add(type, false) + .Add(1, nameof(TelemetryWirelineRunOutDto.DateTime)) + .Add(2, nameof(TelemetryWirelineRunOutDto.Hauling)) + .Add(3, nameof(TelemetryWirelineRunOutDto.HaulingWarnSp)) + .Add(4, nameof(TelemetryWirelineRunOutDto.Replace)) + .Add(5, nameof(TelemetryWirelineRunOutDto.ReplaceWarnSp)); + } - static void EnshureRegisteredDataSaub() - { - var type = typeof(TelemetryDataSaubDto); - if (RuntimeTypeModel.Default.IsDefined(type)) - return; - RuntimeTypeModel.Default.Add(type, false) - .Add(1, nameof(TelemetryDataSaubDto.IdTelemetry)) - .Add(2, nameof(TelemetryDataSaubDto.DateTime)) - .Add(3, nameof(TelemetryDataSaubDto.Mode)) - .Add(4, nameof(TelemetryDataSaubDto.User)) - .Add(5, nameof(TelemetryDataSaubDto.WellDepth)) - .Add(6, nameof(TelemetryDataSaubDto.BitDepth)) - .Add(7, nameof(TelemetryDataSaubDto.BlockPosition)) - .Add(8, nameof(TelemetryDataSaubDto.BlockPositionMin)) - .Add(9, nameof(TelemetryDataSaubDto.BlockPositionMax)) - .Add(10, nameof(TelemetryDataSaubDto.BlockSpeed)) - .Add(11, nameof(TelemetryDataSaubDto.BlockSpeedSp)) - .Add(12, nameof(TelemetryDataSaubDto.BlockSpeedSpRotor)) - .Add(13, nameof(TelemetryDataSaubDto.BlockSpeedSpSlide)) - .Add(14, nameof(TelemetryDataSaubDto.BlockSpeedSpDevelop)) - .Add(15, nameof(TelemetryDataSaubDto.Pressure)) - .Add(16, nameof(TelemetryDataSaubDto.PressureIdle)) - .Add(17, nameof(TelemetryDataSaubDto.PressureSp)) - .Add(18, nameof(TelemetryDataSaubDto.PressureSpRotor)) - .Add(19, nameof(TelemetryDataSaubDto.PressureSpSlide)) - .Add(20, nameof(TelemetryDataSaubDto.PressureSpDevelop)) - .Add(21, nameof(TelemetryDataSaubDto.PressureDeltaLimitMax)) - .Add(22, nameof(TelemetryDataSaubDto.AxialLoad)) - .Add(23, nameof(TelemetryDataSaubDto.AxialLoadSp)) - .Add(24, nameof(TelemetryDataSaubDto.AxialLoadLimitMax)) - .Add(25, nameof(TelemetryDataSaubDto.HookWeight)) - .Add(26, nameof(TelemetryDataSaubDto.HookWeightIdle)) - .Add(27, nameof(TelemetryDataSaubDto.HookWeightLimitMin)) - .Add(28, nameof(TelemetryDataSaubDto.HookWeightLimitMax)) - .Add(29, nameof(TelemetryDataSaubDto.RotorTorque)) - .Add(30, nameof(TelemetryDataSaubDto.RotorTorqueIdle)) - .Add(31, nameof(TelemetryDataSaubDto.RotorTorqueSp)) - .Add(32, nameof(TelemetryDataSaubDto.RotorTorqueLimitMax)) - .Add(33, nameof(TelemetryDataSaubDto.RotorSpeed)) - .Add(34, nameof(TelemetryDataSaubDto.Flow)) - .Add(35, nameof(TelemetryDataSaubDto.FlowIdle)) - .Add(36, nameof(TelemetryDataSaubDto.FlowDeltaLimitMax)) - .Add(37, nameof(TelemetryDataSaubDto.IdFeedRegulator)) - .Add(38, nameof(TelemetryDataSaubDto.MseState)) - .Add(39, nameof(TelemetryDataSaubDto.Mse)); - } - } + private static void EnshureRegisteredWITS() + { + EnshureRegisteredRecord1(); + EnshureRegisteredRecord7(); + EnshureRegisteredRecord8(); + EnshureRegisteredRecord50(); + EnshureRegisteredRecord60(); + EnshureRegisteredRecord61(); + } + + private static void EnshureRegisteredRecord1() + { + var type = typeof(AsbCloudApp.Data.WITS.Record1Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Wellid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Stknum)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Recid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Seqid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Date_)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Time)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Actcod)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Deptbitm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Deptbitv)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Deptmeas)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Deptvert)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Blkpos)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Ropa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Hkla)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Hklx)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Woba)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Wobx)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Torqa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Torqx)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Rpma)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Sppa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Chkp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spm1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spm2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spm3)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Tvolact)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Tvolcact)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mfop)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mfoa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mfia)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mdoa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mdia)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mtoa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mtia)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mcoa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Mcia)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Stkc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Lagstks)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Deptretm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Gasa)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spare1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spare2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spare3)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spare4)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record1Dto.Spare5)) + ; + } + + private static void EnshureRegisteredRecord7() + { + var type = typeof(AsbCloudApp.Data.WITS.Record7Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Wellid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Stknum)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Recid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Seqid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Date_)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Time)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Actcod)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Deptsvym)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Deptsvyv)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Passnum)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Deptmeas)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svytype)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svyinc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svyazu)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svyazc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svymtf)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svygtf)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svyns)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svyew)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svydls)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Svywalk)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Spare1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Spare2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Spare3)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Spare4)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record7Dto.Spare5)) + ; + } + + private static void EnshureRegisteredRecord8() + { + var type = typeof(AsbCloudApp.Data.WITS.Record8Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Wellid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Stknum)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Recid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Seqid)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Date_)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Time)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Actcod)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptmeas)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptvert)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptbitm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptbitv)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Passnum)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptrs1m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptrs1v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mr1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mr1c)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptrs2m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptrs2v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mr2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mr2c)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptgr1m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptgr1v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mg1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mg1c)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptgr2m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptgr2v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mg2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mg2c)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptp1m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptp1v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mpo1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptp2m)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptp2v)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mpo2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mftann)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mftpipe)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mfrann)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mfrpipe)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptfdm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptfdv)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mfd)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptcalm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Deptcalv)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mclp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mfpp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Mffp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare3)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare4)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare5)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare6)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare7)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare8)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record8Dto.Spare9)) + ; + } + + private static void EnshureRegisteredRecord60() + { + var type = typeof(AsbCloudApp.Data.WITS.Record60Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Deptbitm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Deptmeas)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Gtot)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Gx)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Gy)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Gz)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Btot)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Bx)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.By)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record60Dto.Bz)) + ; + } + + private static void EnshureRegisteredRecord61() + { + var type = typeof(AsbCloudApp.Data.WITS.Record61Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Deptbitm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Deptmeas)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Phl1f1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Phl1f2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Phl2f1)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Phl2f2)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Att06h)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Att06l)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Att10h)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Att10l)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record61Dto.Status)) + ; + } + + private static void EnshureRegisteredRecord50() + { + var type = typeof(AsbCloudApp.Data.WITS.Record50Dto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + var i = 1; + RuntimeTypeModel.Default.Add(type, false) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Id)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.IdTelemetry)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DateTime)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.TimeStamp)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Deptbitm)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasMcrstat)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Mcrstat)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasSlvlMc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.SlvlMc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasGdpMc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.GdpMc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRa33f2Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Ra33f2Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRp33f2Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Rp33f2Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRa33f4Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Ra33f4Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRp33f4Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Rp33f4Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRa33Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Ra33Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.DeptmeasRp33Mc)) + .Add(i++, nameof(AsbCloudApp.Data.WITS.Record50Dto.Rp33Mc)) + ; + } + + + + static void EnshureRegisteredDataSpin() + { + var type = typeof(TelemetryDataSpinDto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + RuntimeTypeModel.Default.Add(type, false) + .Add(1, nameof(TelemetryDataSpinDto.IdTelemetry)) + .Add(2, nameof(TelemetryDataSpinDto.DateTime)) + .Add(3, nameof(TelemetryDataSpinDto.TopDriveSpeed)) + .Add(4, nameof(TelemetryDataSpinDto.TopDriveSpeedMin)) + .Add(5, nameof(TelemetryDataSpinDto.TopDriveSpeedMax)) + .Add(6, nameof(TelemetryDataSpinDto.TopDriveSpeedOffset)) + .Add(7, nameof(TelemetryDataSpinDto.TopDriveSpeedErr)) + .Add(8, nameof(TelemetryDataSpinDto.TopDriveTorque)) + .Add(9, nameof(TelemetryDataSpinDto.TopDriveTorqueMin)) + .Add(10, nameof(TelemetryDataSpinDto.TopDriveTorqueMax)) + .Add(11, nameof(TelemetryDataSpinDto.TopDriveTorqueOffset)) + .Add(12, nameof(TelemetryDataSpinDto.TopDriveTorqueErr)) + .Add(13, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFrom)) + .Add(14, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromMin)) + .Add(15, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromMax)) + .Add(16, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromOffset)) + .Add(17, nameof(TelemetryDataSpinDto.TopDriveSpeedSpFromErr)) + .Add(18, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFrom)) + .Add(19, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromMin)) + .Add(20, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromMax)) + .Add(21, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromOffset)) + .Add(22, nameof(TelemetryDataSpinDto.TopDriveTorqueSpFromErr)) + .Add(23, nameof(TelemetryDataSpinDto.TopDriveSpeedSpTo)) + .Add(24, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToMin)) + .Add(25, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToMax)) + .Add(26, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToOffset)) + .Add(27, nameof(TelemetryDataSpinDto.TopDriveSpeedSpToErr)) + .Add(28, nameof(TelemetryDataSpinDto.TopDriveTorqueSpTo)) + .Add(29, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToMin)) + .Add(30, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToMax)) + .Add(31, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToOffset)) + .Add(32, nameof(TelemetryDataSpinDto.TopDriveTorqueSpToErr)) + .Add(33, nameof(TelemetryDataSpinDto.W2800)) + .Add(34, nameof(TelemetryDataSpinDto.W2810)) + .Add(35, nameof(TelemetryDataSpinDto.Mode)) + .Add(36, nameof(TelemetryDataSpinDto.W2808)) + .Add(37, nameof(TelemetryDataSpinDto.TorqueStarting)) + .Add(38, nameof(TelemetryDataSpinDto.RotorTorqueAvg)) + .Add(39, nameof(TelemetryDataSpinDto.EncoderResolution)) + .Add(40, nameof(TelemetryDataSpinDto.Ratio)) + .Add(41, nameof(TelemetryDataSpinDto.TorqueRightLimit)) + .Add(42, nameof(TelemetryDataSpinDto.TorqueLeftLimit)) + .Add(43, nameof(TelemetryDataSpinDto.RevolsRightLimit)) + .Add(44, nameof(TelemetryDataSpinDto.RevolsLeftLimit)) + .Add(45, nameof(TelemetryDataSpinDto.SpeedRightSp)) + .Add(46, nameof(TelemetryDataSpinDto.SpeedLeftSp)) + .Add(47, nameof(TelemetryDataSpinDto.RevolsRightTotal)) + .Add(48, nameof(TelemetryDataSpinDto.RevolsLeftTotal)) + .Add(49, nameof(TelemetryDataSpinDto.TurnRightOnceByTorque)) + .Add(50, nameof(TelemetryDataSpinDto.TurnLeftOnceByTorque)) + .Add(51, nameof(TelemetryDataSpinDto.TurnRightOnceByAngle)) + .Add(52, nameof(TelemetryDataSpinDto.TurnLeftOnceByAngle)) + .Add(53, nameof(TelemetryDataSpinDto.TurnRightOnceByRevols)) + .Add(54, nameof(TelemetryDataSpinDto.TurnLeftOnceByRevols)) + .Add(55, nameof(TelemetryDataSpinDto.BreakAngleK)) + .Add(56, nameof(TelemetryDataSpinDto.ReverseKTorque)) + .Add(57, nameof(TelemetryDataSpinDto.PositionZero)) + .Add(58, nameof(TelemetryDataSpinDto.PositionRight)) + .Add(59, nameof(TelemetryDataSpinDto.TorqueRampTime)) + .Add(60, nameof(TelemetryDataSpinDto.Ver)) + .Add(61, nameof(TelemetryDataSpinDto.ReverseSpeedSpZeroTime)) + .Add(62, nameof(TelemetryDataSpinDto.UnlockBySectorOut)) + .Add(63, nameof(TelemetryDataSpinDto.PidMuxTorqueLeftLimit)) + .Add(64, nameof(TelemetryDataSpinDto.State)) + .Add(65, nameof(TelemetryDataSpinDto.BreakAngleLeft)); + } + + static void EnshureRegisteredDataSaub() + { + var type = typeof(TelemetryDataSaubDto); + if (RuntimeTypeModel.Default.IsDefined(type)) + return; + RuntimeTypeModel.Default.Add(type, false) + .Add(1, nameof(TelemetryDataSaubDto.IdTelemetry)) + .Add(2, nameof(TelemetryDataSaubDto.DateTime)) + .Add(3, nameof(TelemetryDataSaubDto.Mode)) + .Add(4, nameof(TelemetryDataSaubDto.User)) + .Add(5, nameof(TelemetryDataSaubDto.WellDepth)) + .Add(6, nameof(TelemetryDataSaubDto.BitDepth)) + .Add(7, nameof(TelemetryDataSaubDto.BlockPosition)) + .Add(8, nameof(TelemetryDataSaubDto.BlockPositionMin)) + .Add(9, nameof(TelemetryDataSaubDto.BlockPositionMax)) + .Add(10, nameof(TelemetryDataSaubDto.BlockSpeed)) + .Add(11, nameof(TelemetryDataSaubDto.BlockSpeedSp)) + .Add(12, nameof(TelemetryDataSaubDto.BlockSpeedSpRotor)) + .Add(13, nameof(TelemetryDataSaubDto.BlockSpeedSpSlide)) + .Add(14, nameof(TelemetryDataSaubDto.BlockSpeedSpDevelop)) + .Add(15, nameof(TelemetryDataSaubDto.Pressure)) + .Add(16, nameof(TelemetryDataSaubDto.PressureIdle)) + .Add(17, nameof(TelemetryDataSaubDto.PressureSp)) + .Add(18, nameof(TelemetryDataSaubDto.PressureSpRotor)) + .Add(19, nameof(TelemetryDataSaubDto.PressureSpSlide)) + .Add(20, nameof(TelemetryDataSaubDto.PressureSpDevelop)) + .Add(21, nameof(TelemetryDataSaubDto.PressureDeltaLimitMax)) + .Add(22, nameof(TelemetryDataSaubDto.AxialLoad)) + .Add(23, nameof(TelemetryDataSaubDto.AxialLoadSp)) + .Add(24, nameof(TelemetryDataSaubDto.AxialLoadLimitMax)) + .Add(25, nameof(TelemetryDataSaubDto.HookWeight)) + .Add(26, nameof(TelemetryDataSaubDto.HookWeightIdle)) + .Add(27, nameof(TelemetryDataSaubDto.HookWeightLimitMin)) + .Add(28, nameof(TelemetryDataSaubDto.HookWeightLimitMax)) + .Add(29, nameof(TelemetryDataSaubDto.RotorTorque)) + .Add(30, nameof(TelemetryDataSaubDto.RotorTorqueIdle)) + .Add(31, nameof(TelemetryDataSaubDto.RotorTorqueSp)) + .Add(32, nameof(TelemetryDataSaubDto.RotorTorqueLimitMax)) + .Add(33, nameof(TelemetryDataSaubDto.RotorSpeed)) + .Add(34, nameof(TelemetryDataSaubDto.Flow)) + .Add(35, nameof(TelemetryDataSaubDto.FlowIdle)) + .Add(36, nameof(TelemetryDataSaubDto.FlowDeltaLimitMax)) + .Add(37, nameof(TelemetryDataSaubDto.IdFeedRegulator)) + .Add(38, nameof(TelemetryDataSaubDto.MseState)) + .Add(39, nameof(TelemetryDataSaubDto.Mse)); + } + } }