From bd8069c54554e0251ed143bf93aabe93c52f19a2 Mon Sep 17 00:00:00 2001 From: Diego Freitas Date: Tue, 9 Dec 2025 09:19:36 -0300 Subject: [PATCH] Ultimos ajustes no fluxo CAN --- AgroBase/AgroBase/Models/Modules/AtuadorModel.cs | 11 ++--------- .../Models/Modules/SensoriamentoModel.cs | 15 ++------------- .../AgroBase/Models/Operacoes/OperacaoModel.cs | 8 ++++++-- AgroBase/AgroBase/Services/CANServiceSerial.cs | 3 +-- .../OperationControl/Windows/MainWindow.xaml | 4 ++++ .../OperationControl/Windows/MainWindow.xaml.cs | 16 +++++++++++++--- 6 files changed, 28 insertions(+), 29 deletions(-) diff --git a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs index d0180a4b5..0bfae2594 100644 --- a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs +++ b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs @@ -25,19 +25,12 @@ namespace AgroBase.Models.Modules } } public bool RequisitarDados { get; set; } = true; - public static int PingsConsiderarConexao { get; set; } = 5; - public static int TempoLimiteConexao - { - get - { - return PingsConsiderarConexao * (Variaveis.OperacaoEmAndamento?.DispSen?._TaxaAmostragem ?? 1000); - } - } + public static int TempoLimiteConexao { get; set; } = 8000; public bool Conectado { get { - return DadosLeitura.UltimoComandoRespondido.AddMilliseconds(PingsConsiderarConexao * _TaxaAmostragem) > DateTime.Now; + return DadosLeitura.Conectado; } } public bool ConexaoAtiva diff --git a/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs b/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs index d55c8d97b..1b39a4d80 100644 --- a/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs +++ b/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs @@ -28,20 +28,12 @@ namespace AgroBase.Models.Modules } } public bool RequisitarDados { get; set; } = true; - public static int PingsConsiderarConexao { get; set; } = 5; - public static int TempoLimiteConexao - { - get - { - return PingsConsiderarConexao * (Variaveis.OperacaoEmAndamento?.DispSen?._TaxaAmostragem ?? 1000); - } - } + public static int TempoLimiteConexao { get; set; } = 8000; public bool Conectado { get { - //return DadosLeitura.UltimoComandoRespondido.AddMilliseconds(PingsConsiderarConexao * _TaxaAmostragem) > DateTime.Now; - return DadosLeitura.UltimoComandoRespondido.AddMilliseconds(5000) > DateTime.Now; + return DadosLeitura.Conectado; } } public bool ConexaoAtiva @@ -2284,9 +2276,6 @@ namespace AgroBase.Models.Modules private void AtualizaComponentesIniciados() { - //AtualizarStatusComponentes(); - //return; - DateTime Agora = DateTime.Now; bool modConectado = DadosLeitura.UltimoComandoRespondido.AddMilliseconds(TempoLimiteConexao) > Agora; if (!modConectado && DadosLeitura.Conectado) diff --git a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs index cb40b91c2..afd52b364 100644 --- a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs +++ b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs @@ -111,7 +111,9 @@ namespace AgroBase.Models var mod_ant = saudeAnterior.FirstOrDefault(x => x.modulo == mod.modulo); if (mod.status != mod_ant?.status) { - Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura.InserirLog(mod.modulo, mod.status, mod.saude, string.Join("; ", mod.motivos), condicoes: string.Join("; ", mod.condicoes_operacionais.Select(x => x.descricao))); + string msg = mod.motivos.Any() ? string.Join("; ", mod.motivos) : $"{mod.status} ({mod.saude:0}%)"; + string msg2 = mod.condicoes_operacionais.Any() ? string.Join("; ", mod.condicoes_operacionais.Select(x => x.descricao)) : null; + Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura.InserirLog(mod.modulo, mod.status, mod.saude, msg, condicoes: msg2); } if (mod.saude_individual.Any()) { @@ -120,7 +122,9 @@ namespace AgroBase.Models var ind_ant = saudeAnterior.FirstOrDefault(x => x.saude_individual.Any(y => y.id == ind.id))?.saude_individual?.FirstOrDefault(x => x.id == ind.id); if (ind.status != ind_ant?.status) { - Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura.InserirLog(mod.modulo, ind.status, ind.saude, string.Join("; ", ind.motivos), condicoes: string.Join("; ", ind.condicoes_operacionais.Select(x => x.descricao)), id: ind.id); + string msg = ind.motivos.Any() ? string.Join("; ", ind.motivos) : $"{ind.status} ({ind.saude:0}%)"; + string msg2 = ind.condicoes_operacionais.Any() ? string.Join("; ", ind.condicoes_operacionais.Select(x => x.descricao)) : null; + Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura.InserirLog(mod.modulo, ind.status, ind.saude, msg, condicoes: msg2, id: ind.label); } } } diff --git a/AgroBase/AgroBase/Services/CANServiceSerial.cs b/AgroBase/AgroBase/Services/CANServiceSerial.cs index 8583500e4..f76d7d35e 100644 --- a/AgroBase/AgroBase/Services/CANServiceSerial.cs +++ b/AgroBase/AgroBase/Services/CANServiceSerial.cs @@ -1,5 +1,4 @@ using AgroBase.Models; -using Emgu.CV.Structure; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -591,7 +590,7 @@ namespace AgroBase.Services return; } - if (IsConnected && (((Agora - _ultimoTx).TotalSeconds > 2 && (Agora - _ultimoRx).TotalSeconds > 2) || _precisaReabrir)) + if (IsConnected && ((((Agora - _ultimoTx).TotalSeconds > 1 && (Agora - _ultimoRx).TotalSeconds > 1) || (Agora - _ultimoRx).TotalSeconds > 5) || _precisaReabrir)) { ErrosCriticos++; _ultimoErroCritico = Agora; diff --git a/AgroBase/OperationControl/Windows/MainWindow.xaml b/AgroBase/OperationControl/Windows/MainWindow.xaml index bb650eeea..f33971fb6 100644 --- a/AgroBase/OperationControl/Windows/MainWindow.xaml +++ b/AgroBase/OperationControl/Windows/MainWindow.xaml @@ -128,18 +128,22 @@