agrobot_base/AgroBase/AgroBase/Models/Operacoes/OperacaoParametrosModel.cs

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
};
}
}
}