ajustes para o novo contrato de dados

This commit is contained in:
Diego Freitas 2025-12-18 07:34:50 -03:00
parent bdc70d89bf
commit 1ee323cace
7 changed files with 48 additions and 30 deletions

View File

@ -226,10 +226,16 @@ namespace AgroBase.Models.Modules
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.LeituraBruta,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.Temperatura,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
indice = 1,
analise_health = true,
maximo = 80,
minimo = 5,
@ -270,10 +276,16 @@ namespace AgroBase.Models.Modules
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.LeituraBruta,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.Temperatura,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
indice = 1,
analise_health = true,
maximo = 80,
minimo = 5,
@ -314,10 +326,16 @@ namespace AgroBase.Models.Modules
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.LeituraBruta,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.Temperatura,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
indice = 1,
analise_health = true,
maximo = 80,
minimo = 5,
@ -358,10 +376,16 @@ namespace AgroBase.Models.Modules
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.LeituraBruta,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.Temperatura,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
indice = 1,
analise_health = true,
maximo = 80,
minimo = 5,
@ -402,10 +426,16 @@ namespace AgroBase.Models.Modules
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.LeituraBruta,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
},
new SensorValoresLeituraModel()
{
funcao = FuncoesPinout.Temperatura,
posicao = CanMessagePosicaoDados.Dados1,
indice = 0,
indice = 1,
analise_health = true,
maximo = 50,
minimo = 5,

View File

@ -2277,15 +2277,10 @@ namespace AgroBase.Models
public List<OperacaoParametrosMandatoriosModel> ParametrosMandatorios { get; set; }
public List<ManagerWorkerMessageResponseModulosPendentesModel> ModulosSaude { get; set; }
public List<DispositivoDetalhesModel> DispositivosMapeados { get; set; }
public Dictionary<string, double> Temperaturas { get; set; }
public Dictionary<string, (bool, bool)> Reles { get; set; }
public Dictionary<string, (int, int, bool)> Servos { get; set; }
public Dictionary<T_Code, Dictionary<string, bool>> ModsCalibragem { get; set; }
public bool CanSerialAtivado { get; set; }
public Dictionary<string, bool> Iniciados { get; set; }
public List<OperacaoSensoriamentoLogErrosModel> Logs { get; set; }
public CoolerControlDataModel CoolerControl { get; set; }
public DateTime UltimoComandoRespondido { get; set; }
public void InserirLog(T_Code dispositivo, StatusModulo status, double saude, string mensagem, string id = null, string condicoes = null)
{
@ -2402,7 +2397,7 @@ namespace AgroBase.Models
Dados = _DispMvd.Dados.Modulos.Select(x => new OperacaoSensoriamentoLogMovDadosModel()
{
Mod_ID = x.MovMotor.Mod_ID,
ID = byte.Parse(x.MovMotor.ID),
ID = x.MovMotor._EnderecoCAN_Rx,
Iniciado = x.MovMotor.Inicializado,
Tensao = x.MovMotor.Tensao,
Corrente_Barramento = x.MovMotor.Corrente_Barramento,
@ -2424,7 +2419,7 @@ namespace AgroBase.Models
Dados = _DispMvd.Dados.Modulos.Select(x => new DirSensoriamentoLogModel()
{
Mod_ID = x.DirMotor.Mod_ID,
ID = byte.Parse(x.DirMotor.ID),
ID = x.DirMotor._EnderecoCAN_Rx,
Iniciado = x.DirMotor.Inicializado,
AnguloDriver = x.DirMotor.AnguloDriver,
AnguloReal = x.DirMotor.AnguloReal,
@ -2558,13 +2553,8 @@ namespace AgroBase.Models
ModulosSaude = HealthWorkerService.ModulosSaude.ToList(),
DispositivosMapeados = new List<DispositivoDetalhesModel>(SerialService.DispositivosMapeados),
ModsCalibragem = new Dictionary<T_Code, Dictionary<string, bool>>(Variaveis.OperacaoEmAndamento.ModsCalibragem),
Temperaturas = _DispSen?.Dados?.Sensores?.Where(x => x.Componente == S_Code.sNTC)?.ToDictionary(x => x.ID, y => (double?)(y.ValoresLeituras?.FirstOrDefault(v => v.funcao == FuncoesPinout.Temperatura)?.atual?.valor) ?? -1),
Reles = _DispSen?.Dados?.Reles?.ToDictionary(x => x.ID, y => (y.StatusControle == Estado.Ligado, y._EstadoLeitura == Estado.Ligado)),
Servos = _DispSen?.Dados?.Servos?.ToDictionary(x => x.ID, y => (y._AnguloControle, y._AnguloLeiutra, y.Incremental)),
Iniciados = _DispSen?.Dados?.Servos?.Select(s => new { s.ID, s.Inicializado }).Union(_DispSen?.Dados?.Reles?.Select(r => new { r.ID, r.Inicializado })).Union(_DispSen?.Dados?.Sinaleiros?.Select(s => new { s.ID, s.Inicializado })).Union(_DispSen?.Dados?.Sensores?.Select(s => new { s.ID, s.Inicializado })).ToDictionary(s => s.ID, s => s.Inicializado),
Logs = new List<OperacaoSensoriamentoLogErrosModel>(Logs ?? new List<OperacaoSensoriamentoLogErrosModel>()),
CoolerControl = dadosCooler,
UltimoComandoRespondido = _DispSen?.Dados?.DadosLeitura?.UltimoComandoRespondido ?? DateTime.MinValue
CoolerControl = dadosCooler
};
Variaveis.OperacaoEmAndamento.Sensoriamento = dadosAtualizados;
@ -2613,13 +2603,8 @@ namespace AgroBase.Models
ModulosSaude = new List<ManagerWorkerMessageResponseModulosPendentesModel>(ModulosSaude),
DispositivosMapeados = new List<DispositivoDetalhesModel>(DispositivosMapeados),
ModsCalibragem = new Dictionary<T_Code, Dictionary<string, bool>>(ModsCalibragem),
Temperaturas = new Dictionary<string, double>(Temperaturas ?? new Dictionary<string, double>()),
Reles = new Dictionary<string, (bool, bool)>(Reles ?? new Dictionary<string, (bool, bool)>()),
Servos = new Dictionary<string, (int, int, bool)>(Servos ?? new Dictionary<string, (int, int, bool)>()),
Iniciados = new Dictionary<string, bool>(Iniciados ?? new Dictionary<string, bool>()),
Logs = new List<OperacaoSensoriamentoLogErrosModel>(Logs ?? new List<OperacaoSensoriamentoLogErrosModel>()),
CoolerControl = CoolerControl?.Clone(),
UltimoComandoRespondido = UltimoComandoRespondido
};
}

View File

@ -93,6 +93,8 @@ namespace AgroBase.Models.Operacoes
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;
@ -245,7 +247,7 @@ namespace AgroBase.Models.Operacoes
Modulos = dMvd?.Modulos?.Select(x => new OperacaoSensoriamentoLogMovDadosModel()
{
Mod_ID = x.MovMotor.Mod_ID,
ID = byte.Parse(x.MovMotor.ID),
ID = x.MovMotor._EnderecoCAN_Rx,
Iniciado = x.MovMotor.Inicializado,
Controlar = x.MovMotor.Comandar,
CicloTrabalho = x.MovMotor.CicloTrabalho,
@ -267,7 +269,7 @@ namespace AgroBase.Models.Operacoes
Modulos = dMvd.Modulos.Select(x => new DirSensoriamentoLogModel()
{
Mod_ID = x.DirMotor.Mod_ID,
ID = byte.Parse(x.DirMotor.ID),
ID = x.DirMotor._EnderecoCAN_Rx,
Iniciado = x.DirMotor.Inicializado,
Controlar = x.DirMotor.Comandar,
AnguloDriver = x.DirMotor.AnguloDriver,

View File

@ -146,7 +146,7 @@ namespace AgroBase.Services
private bool _inicializado;
private SensorModel SensorMassaReservatorio = Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.Sensores?.FirstOrDefault(x => x.Componente == S_Code.sMAS && x.ID == "MASRS");
private SensorModel SensorMassaReservatorio => Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.Sensores?.FirstOrDefault(x => x.Componente == S_Code.sMAS && x.ID == "MASRS");
public bool PulverizadorLiberado { get; set; }
/// <summary>

File diff suppressed because one or more lines are too long

View File

@ -207,6 +207,7 @@ namespace OperationControl.Models
//((App)Application.Current).Shell.Main?.MAP?.markers?.UpdateMarkerInfo(rover.RoverId, status: AgroBase.Models.Enums.StatusOperacao.Erro);
rover.DadosLeitura = new OperacaoParametrosDadosModel();
rover.DadosLeitura.Momento = DateTime.Now;
if (rover.DadosLeitura.Operacao == null) rover.DadosLeitura.Operacao = new OperacaoParametrosDadosOperacaoModel();
rover.DadosLeitura.Operacao.Status = AgroBase.Models.Enums.StatusOperacao.Erro;
((App)Application.Current).Shell.Main?.AtualizarDadosTela_Telemetria(rover.RoverId);
((App)Application.Current).Shell.Main?.AdicionarAlerta(rover.RoverId, AgroBase.Models.Enums.T_Code.Ipb, SeveridadeAlerta.Critical, "Perda de comunicação com o equipamento!");

View File

@ -562,10 +562,10 @@ namespace OperationControl.Windows
iniciado = rover.DadosLeitura?.Sensoriamento?.Reles?.FirstOrDefault(x => x.ID == mod_label)?.Inicializado ?? false;
break;
case AgroBase.Models.Enums.S_Code.sSRV:
iniciado = rover.DadosLeitura?.Atuador?.Servos?.FirstOrDefault(x => x.ID == mod_label)?.Inicializado ?? false;
iniciado = rover.DadosLeitura?.Sensoriamento?.Servos?.FirstOrDefault(x => x.ID == mod_label)?.Inicializado ?? false;
break;
default:
iniciado = rover.DadosLeitura?.Atuador?.Sensores?.FirstOrDefault(x => x.ID == mod_label && x.Componente == s_code)?.Inicializado ?? false;
iniciado = rover.DadosLeitura?.Sensoriamento?.Sensores?.FirstOrDefault(x => x.ID == mod_label && x.Componente == s_code)?.Inicializado ?? false;
break;
}
break;
@ -762,7 +762,7 @@ namespace OperationControl.Windows
});
break;
case AgroBase.Models.Enums.S_Code.sNTC:
var ntc = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Sensoriamento?.Sensores?.FirstOrDefault(x => x.ID == label && x.Componente == s_code)?.Valores[1];
var ntc = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Sensoriamento?.Sensores?.FirstOrDefault(x => x.ID == label && x.Componente == s_code)?.Valores[0];
graficoAcompanhamento.Atualizar(inicial, momento, new List<GraficoModel.GraficoParametrosModel>()
{
new GraficoModel.GraficoParametrosModel()