564 lines
26 KiB
C#
564 lines
26 KiB
C#
using AgroBase.Models.Modules;
|
|
using AgroBase.Models.Operadores;
|
|
using AgroBase.Services;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using static AgroBase.Models.Enums;
|
|
|
|
namespace AgroBase.Models.Operacoes
|
|
{
|
|
public class OperacaoParametrosModel
|
|
{
|
|
public string RoverId { get; set; }
|
|
public bool Alive { get; set; }
|
|
public DateTime UltimoContato { get; set; }
|
|
public bool Configurado { get; set; }
|
|
public ModoOperacao? Modo { get; set; }
|
|
public string Descricao { get; set; }
|
|
public int? QtdCamerasSolo { get; set; }
|
|
public int? QtdBicos { get; set; }
|
|
public double? CapacidadeReservatorio { get; set; }
|
|
public List<OperacaoModulosMandatoriosModel> ModulosMandatorios { get; set; }
|
|
public List<OperacaoParametrosMandatoriosModel> ParametrosMandatorios { get; set; }
|
|
public OperacaoParametrosControleModel Controle { get; set; }
|
|
|
|
public MapaFeatureCollectionModel Mapa { get; set; }
|
|
public List<string> RuasPercorrer { get; set; }
|
|
|
|
public OperacaoParametrosDadosModel DadosLeitura { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosControleModel
|
|
{
|
|
public bool MovimentoAutomatico { get; set; }
|
|
public bool DirecionalAutomatico { get; set; }
|
|
public bool PulverizadorAutomatico { get; set; }
|
|
public bool SonarAtivado { get; set; }
|
|
public bool OakParadaPorObstaculo { get; set; }
|
|
public bool ImuParadaPorInclinacao { get; set; }
|
|
public bool FrenagemAutomaticaAoParar { get; set; }
|
|
|
|
public int MovVelocidadeSErvasPercent { get; set; }
|
|
public int MovRpmMax
|
|
{
|
|
get
|
|
{
|
|
return System.Convert.ToInt32(VariaveisEquipamento.RPM_Max_Roda * (MovVelocidadeSErvasPercent / 100.0));
|
|
}
|
|
}
|
|
public int MovVelocidadeCErvasPercent { get; set; }
|
|
public int MovRpmMin
|
|
{
|
|
get
|
|
{
|
|
return System.Convert.ToInt32(VariaveisEquipamento.RPM_Max_Roda * (MovVelocidadeCErvasPercent / 100.0));
|
|
}
|
|
}
|
|
public int DirAnguloMaximo { get; set; }
|
|
public double DirVelocidadeMovimento { get; set; }
|
|
public TiposControladorDirecional DirTipoMovimento { get; set; }
|
|
public double AtuPressaoLinha { get; set; }
|
|
public int AtuDuracaoAtuacao { get; set; }
|
|
public double AtuPercentualInicioPulverizacao { get; set; }
|
|
public double AtuAlturaAreaPulverizacao { get; set; }
|
|
public double AtuPercentualErvasBicoOn { get; set; }
|
|
public double AtuPercentualErvasBicoOff { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosModel
|
|
{
|
|
public DateTime Momento { get; set; }
|
|
public StatusModulo StatusRover { get; set; }
|
|
public bool CanSerial { get; set; }
|
|
public OperacaoParametrosDadosOperacaoModel Operacao { get; set; }
|
|
public OperacaoSensoriamentoLogTrajetoriaModel Trajetoria { get; set; }
|
|
public OperacaoControleModel Controle { get; set; }
|
|
public List<ManagerWorkerMessageResponseModulosPendentesModel> ModulosSaude { get; set; }
|
|
public List<DispositivoDetalhesModel> DispositivosMapeados { get; set; }
|
|
public OperacaoSensoriamentoLogImuModel Imu { get; set; }
|
|
public OperacaoParametrosDadosAtuadorModel Atuador { get; set; }
|
|
public OperacaoParametrosDadosSensoriamentoModel Sensoriamento { get; set; }
|
|
public OperacaoParametrosDadosMovimentacaoModel Movimentacao { get; set; }
|
|
public OperacaoParametrosDadosDirecionalModel Direcional { get; set; }
|
|
public OperacaoSensoriamentoLogBateriaModel Bateria { get; set; }
|
|
public CoolerControlDataModel Refrigeracao { get; set; }
|
|
public OperacaoParametrosDadosGNSSModel Gnss { get; set; }
|
|
public PerformanceModel PerformanceNcp { get; set; }
|
|
public LivoxModel LivoxLidar { get; set; }
|
|
public List<OperacaoSensoriamentoLogErrosModel> Logs { get; set; }
|
|
|
|
public void Atualizar()
|
|
{
|
|
var op = Variaveis.OperacaoEmAndamento;
|
|
var sen = op.Sensoriamento;
|
|
var dAtu = op.DispAtu?.Dados;
|
|
var dSen = op.DispSen?.Dados;
|
|
var dMvd = op.DispMvd?.Dados;
|
|
|
|
if (dAtu == null || dSen == null || dMvd == null) return;
|
|
|
|
Momento = DateTime.Now;
|
|
StatusRover = op.Status;
|
|
CanSerial = CanManager.UseCanSerial;
|
|
Operacao = new OperacaoParametrosDadosOperacaoModel()
|
|
{
|
|
Iniciada = op.Iniciado,
|
|
Liberada = op.OperacaoLiberada,
|
|
Status = op.StatusAtual,
|
|
Modo = op.Modo,
|
|
ImpedimentoErro = op.ErroOperacaoLiberada,
|
|
TempoAguardandoSegs = op.TempoAguardandoSegs,
|
|
TempoDecorridoSegs = op.TempoDecorridoSegs,
|
|
Emergencia = op.Emergencia,
|
|
Pausa = op.Pausa,
|
|
IniciadoEm = op.DataInicio,
|
|
FinalizadoEm = op.DataFim,
|
|
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>(op.Parametros.ModulosMandatorios ?? new List<OperacaoModulosMandatoriosModel>()),
|
|
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>(op.Parametros.ParametrosMandatorios ?? new List<OperacaoParametrosMandatoriosModel>())
|
|
};
|
|
Trajetoria = sen?.Trajetoria?.Clone();
|
|
Controle = op.Controle?.Clone();
|
|
ModulosSaude = new List<ManagerWorkerMessageResponseModulosPendentesModel>(sen?.ModulosSaude ?? new List<ManagerWorkerMessageResponseModulosPendentesModel>());
|
|
DispositivosMapeados = new List<DispositivoDetalhesModel>(sen?.DispositivosMapeados ?? new List<DispositivoDetalhesModel>());
|
|
Imu = sen?.IMU?.Clone();
|
|
Atuador = new OperacaoParametrosDadosAtuadorModel()
|
|
{
|
|
Iniciado = dAtu?.Conectado ?? false,
|
|
|
|
AnguloBarraAltura = sen?.Atuador?.AnguloBarraAltura ?? 0,
|
|
AnguloBarraDireita = sen?.Atuador?.AnguloBarraDireita ?? 0,
|
|
AnguloBarraEsquerda = sen?.Atuador?.AnguloBarraEsquerda ?? 0,
|
|
CapacidadeReservatorio = sen?.Atuador?.CapacidadeReservatorio ?? 0,
|
|
ErvasNoRadar = sen?.Atuador?.ErvasNoRadar ?? false,
|
|
DistanciaEstimadaRestanteMetros = sen?.Atuador?.DistanciaEstimadaRestanteMetros ?? 0,
|
|
HerbicidaConsumidoMl = sen?.Atuador?.HerbicidaConsumido ?? 0,
|
|
HerbicidaPorAtuacaoMl = sen?.Atuador?.HerbicidaPorErva ?? 0,
|
|
LPorMetro = sen?.Atuador?.LPorMetro ?? 0,
|
|
LPorMinuto = sen?.Atuador?.LPorMinuto ?? 0,
|
|
MassaReservatorioKg = sen?.Atuador?.MassaReservatorio ?? 0,
|
|
VolumeReservatorioL = sen?.Atuador?.VolumeReservatorio ?? 0,
|
|
VolumeVazaoMl = sen?.Atuador?.VolumeVazaoMl ?? 0,
|
|
VazaoMediaMLs = sen?.Atuador?.VazaoMedia ?? 0,
|
|
VazaoInstantaneaMLs = sen?.Atuador?.VazaoInstantanea ?? 0,
|
|
TempoEstimadoRestanteMinutos = sen?.Atuador?.TempoEstimadoRestanteMinutos ?? 0,
|
|
QtdCamerasSolo = sen?.Atuador?.QtdCamerasSolo ?? 0,
|
|
PercentualErvasNoRadar = sen?.Atuador?.PercentualErvasNoRadar ?? 0,
|
|
PercentualErvasTerreno = sen?.Atuador?.PercentualErvasTerreno ?? 0,
|
|
PercentualReservatorio = sen?.Atuador?.PercentualReservatorio ?? 0,
|
|
PressaoLinhaPsi = sen?.Atuador?.PressaoLinha ?? 0,
|
|
Bicos = dAtu?.BicosPulverizadores?.Select(x => new OperacaoParametrosDadosBicoModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Servo_ID_Num = x.Servo_ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Posicao = x.Posicao,
|
|
AnguloAbertura = x.AnguloAbertura,
|
|
ComandoAngulo = (int)x.AnguloControle,
|
|
LeituraAngulo = x._AnguloBicoLeitura,
|
|
ComandoEstado = x.ComandoAtuar,
|
|
LeituraEstado = x._EstadoLeitura == Estado.Ligado,
|
|
VazaoMediaMLs = x.VazaoMediaMLs,
|
|
VazaoInstantaneaMLs = x.VazaoInstantaneaMLs,
|
|
VolumeVazadoML = x.VolumeVazadoML,
|
|
QtdAtuacoes = x.Atuacoes,
|
|
TempoAtuado = x.TempoAtuado,
|
|
TrechosPulverizando = new List<List<double[]>>(x.TrechosAtuado ?? new List<List<double[]>>()),
|
|
UltimoComandoRespondido = x.UltimaLeitura
|
|
}).ToList(),
|
|
Bombas = dAtu?.BombasPressurizadoras?.Select(x => new OperacaoParametrosDadosBombaModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Sensor_ID_Num = x.Sensor_ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
ComandoEstado = x.ComandoAtuar,
|
|
LeituraEstado = x._EstadoLeitura == Estado.Ligado,
|
|
Potencia = x._Potencia,
|
|
TempoAtuado = dAtu?.TempoAtuado ?? 0,
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
Servos = dAtu?.Servos?.Select(x => new OperacaoParametrosDadosServoModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Incremental = x.Incremental,
|
|
ComandoAngulo = x._AnguloControle,
|
|
LeituraAngulo = x._AnguloLeiutra,
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
Sensores = dAtu?.Sensores?.Select(x => new OperacaoParametrosDadosSensorModel()
|
|
{
|
|
Componente = x.Componente,
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Valores = x.ValoresLeituras?.Where(y => y.funcao != FuncoesPinout.Iniciado)?.Select(y => y.atual?.valor).ToList(),
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
UltimoComandoRespondido = dAtu.DadosLeitura.UltimoComandoRespondido,
|
|
};
|
|
Sensoriamento = new OperacaoParametrosDadosSensoriamentoModel()
|
|
{
|
|
Iniciado = dSen?.Conectado ?? false,
|
|
Sensores = dSen?.Sensores?.Select(x => new OperacaoParametrosDadosSensorModel()
|
|
{
|
|
Componente = x.Componente,
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Valores = x.ValoresLeituras?.Where(y => y.funcao != FuncoesPinout.Iniciado)?.Select(y => y.atual?.valor).ToList(),
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
Servos = dSen?.Servos?.Select(x => new OperacaoParametrosDadosServoModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Incremental = x.Incremental,
|
|
ComandoAngulo = x._AnguloControle,
|
|
LeituraAngulo = x._AnguloLeiutra,
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
Reles = dSen?.Reles?.Select(x => new OperacaoParametrosDadosReleModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
ComandoEstado = x.StatusControle == Estado.Ligado,
|
|
LeituraEstado = x._EstadoLeitura == Estado.Ligado,
|
|
UltimoComandoRespondido = x.UltimaLeitura,
|
|
}).ToList(),
|
|
Sinaleiros = dSen?.Sinaleiros?.Select(x => new OperacaoParametrosDadosSinaleiroModel()
|
|
{
|
|
ID = x.ID,
|
|
ID_Num = x.ID_Num,
|
|
Inicializado = x.Inicializado,
|
|
Comportamento = x.Comportamento,
|
|
StatusLedId = x._StatusLedId,
|
|
StatusLed = x._StatusLed,
|
|
UltimoComandoRespondido = x.UltimaLeitura
|
|
}).ToList(),
|
|
UltimoComandoRespondido = dSen.DadosLeitura.UltimoComandoRespondido
|
|
};
|
|
Movimentacao = new OperacaoParametrosDadosMovimentacaoModel()
|
|
{
|
|
VelocidadeMediaMs = sen?.Movimentacao?.VelocidadeMedia ?? 0,
|
|
RPMMedio = sen?.Movimentacao?.RPMMedio ?? 0,
|
|
TemperaturaMedia = sen?.Movimentacao?.TemperaturaMedia ?? 0,
|
|
TempoMovimentoSegs = sen?.Movimentacao?.TempoMovimentoSegs ?? 0,
|
|
DistanciaPercorridaParcial = sen?.Movimentacao?.DistanciaPercorridaParcial ?? 0,
|
|
DistanciaPercorridaTotal = sen?.Movimentacao?.DistanciaPercorridaTotal ?? 0,
|
|
Modulos = dMvd?.Modulos?.Select(x => new OperacaoSensoriamentoLogMovDadosModel()
|
|
{
|
|
Mod_ID = x.MovMotor.Mod_ID,
|
|
ID = x.MovMotor._EnderecoCAN_Rx,
|
|
Iniciado = x.MovMotor.Inicializado,
|
|
Controlar = x.MovMotor.Comandar,
|
|
CicloTrabalho = x.MovMotor.CicloTrabalho,
|
|
Corrente_Barramento = x.MovMotor.Corrente_Barramento,
|
|
Corrente_Motor = x.MovMotor.Corrente_Motor,
|
|
Potencia = x.MovMotor.Potencia,
|
|
RPM_Motor = x.MovMotor.RPM_Motor,
|
|
RPM_Roda = x.MovMotor.RPM_Roda,
|
|
TemperaturaDriver = x.MovMotor.TemperaturaDriver,
|
|
Tensao = x.MovMotor.Tensao,
|
|
VelocidadeInstantaneaMs = x.MovMotor.VelocidadeInstantanea,
|
|
UltimoComandoRespondido = x.MovMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
|
|
}).ToList(),
|
|
UltimoComandoRespondido = dMvd.Modulos.Max(x => x.MovMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue)
|
|
};
|
|
Direcional = new OperacaoParametrosDadosDirecionalModel()
|
|
{
|
|
AnguloMedio = sen?.Direcional?.AnguloMedio ?? 0,
|
|
Modulos = dMvd.Modulos.Select(x => new DirSensoriamentoLogModel()
|
|
{
|
|
Mod_ID = x.DirMotor.Mod_ID,
|
|
ID = x.DirMotor._EnderecoCAN_Rx,
|
|
Iniciado = x.DirMotor.Inicializado,
|
|
Controlar = x.DirMotor.Comandar,
|
|
AnguloDriver = x.DirMotor.AnguloDriver,
|
|
AnguloFolgaCompensar = x.DirMotor.AnguloFolgaCompensar,
|
|
AnguloLeitura = x.DirMotor.AnguloLeitura,
|
|
AnguloReal = x.DirMotor.AnguloReal,
|
|
Angulo_SP = x.DirMotor.Angulo_SP,
|
|
FolgaMecanica = x.DirMotor.FolgaMecanica,
|
|
Sentido = x.DirMotor.Sentido,
|
|
SentidoReal = x.DirMotor.SentidoReal,
|
|
Sentido_SP = x.DirMotor.Sentido_SP,
|
|
Velocidade = x.DirMotor.Velocidade,
|
|
UltimoComandoRespondido = x.DirMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
|
|
}).ToList(),
|
|
UltimoComandoRespondido = dMvd.Modulos.Max(x => x.DirMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue)
|
|
};
|
|
Bateria = sen?.Bateria?.Clone();
|
|
Refrigeracao = sen?.CoolerControl?.Clone();
|
|
Gnss = new OperacaoParametrosDadosGNSSModel()
|
|
{
|
|
Iniciado = sen?.Gps?.Inicializado ?? false,
|
|
Altitude = sen?.Gps?.Altitude ?? 0,
|
|
Distancia = sen?.Gps?.Distancia ?? 0,
|
|
IdadeCorrecao = sen?.Gps?.IdadeCorrecao ?? 0,
|
|
Latitude = sen?.Gps?.Latitude ?? 0,
|
|
Longitude = sen?.Gps?.Longitude ?? 0,
|
|
LeverArmFrontal = sen?.Gps?.LeverArmFrontal ?? 0,
|
|
LeverArmLateral = sen?.Gps?.LeverArmLateral ?? 0,
|
|
NtripAtivado = sen?.Gps?.Ntrip_ativado ?? false,
|
|
NumeroSatelites = sen?.Gps?.NumeroSatelites ?? 0,
|
|
OrientacaoMovimento = sen?.Gps?.OrientacaoMovimento ?? 0,
|
|
OrientacaoReal = sen?.Gps?.OrientacaoReal ?? 0,
|
|
PrecisaoCm = sen?.Gps?.PrecisaoCm ?? 0,
|
|
PrecisaoHorizontal = sen?.Gps?.PrecisaoHorizontal ?? 0,
|
|
QualidadeFix = sen?.Gps?.QualidadeFix ?? TiposCorrecaoGPS.SemCorrecao,
|
|
Velocidade = sen?.Gps?.Velocidade ?? 0,
|
|
UltimoComandoRespondido = sen?.Gps?.UltimoComandoRespondido ?? DateTime.MinValue,
|
|
};
|
|
PerformanceNcp = sen?.DadosPerformance?.Clone();
|
|
LivoxLidar = sen?.LivoxLidar?.Clone();
|
|
Logs = new List<OperacaoSensoriamentoLogErrosModel>(sen?.Logs ?? new List<OperacaoSensoriamentoLogErrosModel>());
|
|
}
|
|
|
|
public OperacaoParametrosDadosModel Clone()
|
|
{
|
|
return new OperacaoParametrosDadosModel()
|
|
{
|
|
Momento = Momento,
|
|
StatusRover = StatusRover,
|
|
CanSerial = CanSerial,
|
|
Operacao = Operacao,
|
|
Trajetoria = Trajetoria?.Clone(),
|
|
Controle = Controle?.Clone(),
|
|
ModulosSaude = new List<ManagerWorkerMessageResponseModulosPendentesModel>(ModulosSaude ?? new List<ManagerWorkerMessageResponseModulosPendentesModel>()),
|
|
DispositivosMapeados = new List<DispositivoDetalhesModel>(DispositivosMapeados ?? new List<DispositivoDetalhesModel>()),
|
|
Imu = Imu?.Clone(),
|
|
Atuador = Atuador,
|
|
Sensoriamento = Sensoriamento,
|
|
Movimentacao = Movimentacao,
|
|
Direcional = Direcional,
|
|
Bateria = Bateria?.Clone(),
|
|
Refrigeracao = Refrigeracao?.Clone(),
|
|
Gnss = Gnss,
|
|
PerformanceNcp = PerformanceNcp?.Clone(),
|
|
LivoxLidar = LivoxLidar?.Clone(),
|
|
Logs = new List<OperacaoSensoriamentoLogErrosModel>(Logs ?? new List<OperacaoSensoriamentoLogErrosModel>())
|
|
};
|
|
}
|
|
|
|
}
|
|
|
|
public class OperacaoParametrosDadosOperacaoModel
|
|
{
|
|
public ModoOperacao Modo { get; set; }
|
|
public StatusOperacao Status { get; set; }
|
|
public string ImpedimentoErro { get; set; }
|
|
public bool Liberada { get; set; }
|
|
public bool Iniciada { get; set; }
|
|
public bool Emergencia { get; set; }
|
|
public bool Pausa { get; set; }
|
|
public DateTime IniciadoEm { get; set; }
|
|
public DateTime FinalizadoEm { get; set; }
|
|
public double TempoAguardandoSegs { get; set; }
|
|
public double TempoDecorridoSegs { get; set; }
|
|
public List<OperacaoModulosMandatoriosModel> ModulosMandatorios { get; set; }
|
|
public List<OperacaoParametrosMandatoriosModel> ParametrosMandatorios { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosAtuadorModel
|
|
{
|
|
public bool Iniciado { get; set; }
|
|
|
|
public double CapacidadeReservatorio { get; set; }
|
|
|
|
public int QtdCamerasSolo { get; set; }
|
|
|
|
public bool ErvasNoRadar { get; set; }
|
|
public double PercentualErvasNoRadar { get; set; }
|
|
public double PercentualErvasTerreno { get; set; }
|
|
|
|
public double HerbicidaConsumidoMl { get; set; }
|
|
public double HerbicidaPorAtuacaoMl { get; set; }
|
|
public double MassaReservatorioKg { get; set; }
|
|
public double VolumeReservatorioL { get; set; }
|
|
public double PercentualReservatorio { get; set; }
|
|
|
|
public double PressaoLinhaPsi { get; set; }
|
|
|
|
public double VazaoInstantaneaMLs { get; set; }
|
|
public double VazaoMediaMLs { get; set; }
|
|
public double VolumeVazaoMl { get; set; }
|
|
|
|
public double LPorMetro { get; set; }
|
|
public double LPorMinuto { get; set; }
|
|
public double TempoEstimadoRestanteMinutos { get; set; }
|
|
public double DistanciaEstimadaRestanteMetros { get; set; }
|
|
|
|
public double AnguloBarraEsquerda { get; set; }
|
|
public double AnguloBarraDireita { get; set; }
|
|
public double AnguloBarraAltura { get; set; }
|
|
|
|
public List<OperacaoParametrosDadosBicoModel> Bicos { get; set; }
|
|
public List<OperacaoParametrosDadosBombaModel> Bombas { get; set; }
|
|
public List<OperacaoParametrosDadosServoModel> Servos{ get; set; }
|
|
public List<OperacaoParametrosDadosSensorModel> Sensores { get; set; }
|
|
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
|
|
}
|
|
|
|
public class OperacaoParametrosDadosBombaModel
|
|
{
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public int Sensor_ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public bool ComandoEstado { get; set; }
|
|
public bool LeituraEstado { get; set; }
|
|
public double TempoAtuado { get; set; }
|
|
public double Potencia { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosBicoModel
|
|
{
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public int Servo_ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public int Posicao { get; set; }
|
|
public bool ComandoEstado { get; set; }
|
|
public bool LeituraEstado { get; set; }
|
|
public int ComandoAngulo { get; set; }
|
|
public int LeituraAngulo { get; set; }
|
|
public int QtdAtuacoes { get; set; }
|
|
public double TempoAtuado { get; set; }
|
|
public double VazaoMediaMLs { get; set; }
|
|
public double VazaoInstantaneaMLs { get; set; }
|
|
public double VolumeVazadoML { get; set; }
|
|
public double AnguloAbertura { get; set; }
|
|
public List<List<double[]>> TrechosPulverizando { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosServoModel
|
|
{
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public bool Incremental { get; set; }
|
|
public int ComandoAngulo { get; set; }
|
|
public int LeituraAngulo { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosReleModel
|
|
{
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public bool ComandoEstado { get; set; }
|
|
public bool LeituraEstado { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosSensorModel
|
|
{
|
|
public S_Code Componente { get; set; }
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public List<dynamic> Valores { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosSinaleiroModel
|
|
{
|
|
public string ID { get; set; }
|
|
public int ID_Num { get; set; }
|
|
public bool Inicializado { get; set; }
|
|
public SensorSinaleiroComportamentoModel Comportamento { get; set; }
|
|
public int StatusLedId { get; set; }
|
|
public StatusLED StatusLed { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosMovimentacaoModel
|
|
{
|
|
public double VelocidadeMediaMs { get; set; }
|
|
public double RPMMedio { get; set; }
|
|
public double TempoMovimentoSegs { get; set; }
|
|
public double DistanciaPercorridaTotal { get; set; }
|
|
public double DistanciaPercorridaParcial { get; set; }
|
|
public double TemperaturaMedia { get; set; }
|
|
public List<OperacaoSensoriamentoLogMovDadosModel> Modulos { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosDirecionalModel
|
|
{
|
|
public double AnguloMedio { get; set; }
|
|
public List<DirSensoriamentoLogModel> Modulos { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosSensoriamentoModel
|
|
{
|
|
public bool Iniciado { get; set; }
|
|
|
|
public List<OperacaoParametrosDadosSinaleiroModel> Sinaleiros { get; set; }
|
|
public List<OperacaoParametrosDadosSensorModel> Sensores { get; set; }
|
|
public List<OperacaoParametrosDadosServoModel> Servos { get; set; }
|
|
public List<OperacaoParametrosDadosReleModel> Reles { get; set; }
|
|
|
|
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
}
|
|
|
|
public class OperacaoParametrosDadosGNSSModel
|
|
{
|
|
public bool Iniciado { get; set; }
|
|
public double Latitude { get; set; }
|
|
public double Longitude { get; set; }
|
|
public double Altitude { get; set; }
|
|
public double Velocidade { get; set; }
|
|
public double Distancia { get; set; }
|
|
public double OrientacaoMovimento { get; set; }
|
|
public double OrientacaoReal { get; set; }
|
|
public int NumeroSatelites { get; set; }
|
|
public double PrecisaoHorizontal { get; set; }
|
|
public double PrecisaoCm { get; set; }
|
|
public TiposCorrecaoGPS QualidadeFix { get; set; }
|
|
public bool NtripAtivado { get; set; }
|
|
public double IdadeCorrecao { get; set; }
|
|
public double LeverArmLateral { get; set; }
|
|
public double LeverArmFrontal { get; set; }
|
|
public DateTime UltimoComandoRespondido { get; set; }
|
|
|
|
public GPSModel ToGpsModel()
|
|
{
|
|
return new GPSModel()
|
|
{
|
|
Inicializado = Iniciado,
|
|
Latitude = Latitude,
|
|
Longitude = Longitude,
|
|
Altitude = Altitude,
|
|
Velocidade = Velocidade,
|
|
Distancia = Distancia,
|
|
OrientacaoMovimento = OrientacaoMovimento,
|
|
OrientacaoReal = OrientacaoReal,
|
|
NumeroSatelites = NumeroSatelites,
|
|
PrecisaoHorizontal = PrecisaoHorizontal,
|
|
QualidadeFix = QualidadeFix,
|
|
Ntrip_ativado = NtripAtivado,
|
|
IdadeCorrecao = IdadeCorrecao,
|
|
LeverArmFrontal = LeverArmFrontal,
|
|
LeverArmLateral = LeverArmLateral,
|
|
UltimoComandoRespondido = UltimoComandoRespondido
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
}
|