Tratamentos e alerta de NCP desconectado

This commit is contained in:
Diego Freitas 2026-03-13 16:30:21 -03:00
parent ffbd86d8a4
commit 6b87783f43
4 changed files with 64 additions and 32 deletions

View File

@ -1083,21 +1083,27 @@ namespace AgroBase.Models
{ {
if (_Controle.ticks_sem_resposta.AddMilliseconds(max_ticks_sem_resposta) < agora) if (_Controle.ticks_sem_resposta.AddMilliseconds(max_ticks_sem_resposta) < agora)
{ {
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Falha, 0, "Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!"); if (Variaveis.OperacaoEmAndamento?.Sensoriamento?.Controle?.RPM_SP > 0)
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!"); {
RedisService.AtualizarCampos( Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Falha, 0, "Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!");
CtxKey.DadosControle, Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!");
("velocidade_sp", 0) RedisService.AtualizarCampos(
); CtxKey.DadosControle,
("velocidade_sp", 0)
);
}
} }
else if (_Controle.ticks_sem_resposta.AddMilliseconds(min_ticks_sem_resposta) < agora) else if (_Controle.ticks_sem_resposta.AddMilliseconds(min_ticks_sem_resposta) < agora)
{ {
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 80, "Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!"); if (Variaveis.OperacaoEmAndamento?.Sensoriamento?.Controle?.RPM_SP > Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent)
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!"); {
RedisService.AtualizarCampos( Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 80, "Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!");
CtxKey.DadosControle, Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!");
("velocidade_sp", Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent) RedisService.AtualizarCampos(
); CtxKey.DadosControle,
("velocidade_sp", Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent)
);
}
} }
} }
} }

View File

@ -91,29 +91,39 @@ namespace AgroBase.Services.Operadores
var _Controle = Variaveis.OperacaoEmAndamento.Controle; var _Controle = Variaveis.OperacaoEmAndamento.Controle;
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.MovimentoAutomatico) if (Variaveis.OperacaoEmAndamento.Parametros.Controle.MovimentoAutomatico)
{ {
_Controle.PercentualVelocidadeSP = 0; if (_Controle.PercentualVelocidadeSP > 0)
RedisService.AtualizarCampos( {
CtxKey.DadosControle, _Controle.PercentualVelocidadeSP = 0;
("velocidade_sp", _Controle.PercentualVelocidadeSP) RedisService.AtualizarCampos(
); CtxKey.DadosControle,
("velocidade_sp", _Controle.PercentualVelocidadeSP)
);
}
} }
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.DirecionalAutomatico) if (Variaveis.OperacaoEmAndamento.Parametros.Controle.DirecionalAutomatico)
{ {
_Controle.Angulo = 0; if (_Controle.Angulo != 0)
RedisService.AtualizarCampos( {
CtxKey.DadosControle, _Controle.Angulo = 0;
("angulo_sp", _Controle.Angulo) RedisService.AtualizarCampos(
); CtxKey.DadosControle,
("angulo_sp", _Controle.Angulo)
);
}
} }
_Controle.Bicos.ForEach(x => x.ComandoAtuar = false); if (Variaveis.OperacaoEmAndamento.Parametros.Controle.PulverizadorAutomatico)
RedisService.AtualizarCampos( {
CtxKey.DadosControle, if (_Controle.Bicos.Any(x => x.ComandoAtuar))
("angulo_sp", _Controle.Angulo), {
("velocidade_sp", _Controle.PercentualVelocidadeSP), _Controle.Bicos.ForEach(x => x.ComandoAtuar = false);
("controle_bicos", _Controle.Bicos.ToDictionary(x => x.Posicao - 1, x => x.ComandoAtuar)) RedisService.AtualizarCampos(
); CtxKey.DadosControle,
("controle_bicos", _Controle.Bicos.ToDictionary(x => x.Posicao - 1, x => x.ComandoAtuar))
);
}
}
Variaveis.OperacaoEmAndamento.AtualizaInformacoesControleOperacao(); Variaveis.OperacaoEmAndamento.AtualizaInformacoesControleOperacao();
} }

View File

@ -88,9 +88,9 @@ namespace OperationControl.ViewModels.Views.Operacao
} }
public void AtualizarStatus(StatusModulo status, string titulo, string linha1, string linha2, string status_str, string resumo) public void AtualizarStatus(StatusModulo status, string titulo, StatusOperacao status_op, string linha1, string linha2, string status_str, string resumo)
{ {
ContextoSelecionado = titulo; ContextoSelecionado = $"{titulo} • {status_op}";
TituloStatus = linha1; TituloStatus = linha1;
MotivoPrincipal = linha2; MotivoPrincipal = linha2;
BadgeTexto = status_str; BadgeTexto = status_str;

View File

@ -370,6 +370,21 @@ namespace OperationControl.ViewModels
var eventos = new List<MotivoTopBarModel>(); var eventos = new List<MotivoTopBarModel>();
if (obj.ModulosSaude?.All(x => (x?.status ?? StatusModulo.Desconectado) == StatusModulo.Desconectado) ?? false)
{
// ============================
// 0) NCP desconectado
// ============================
eventos.Add(new MotivoTopBarModel
{
Prioridade = 1100,
Fonte = "Núcleo Central de Processamento",
Titulo = "NÚCLEO CENTRAL DE PROCESSAMENTO DESCONECTADO",
Descricao = "O núcleo central de processamento foi desconectado, tentando reconectar...",
StatusVisual = StatusModulo.Falha
});
}
// ============================ // ============================
// 1) Emergência // 1) Emergência
// ============================ // ============================
@ -567,6 +582,7 @@ namespace OperationControl.ViewModels
_viewOperacaoTop?._vm.AtualizarStatus( _viewOperacaoTop?._vm.AtualizarStatus(
statusVisual, statusVisual,
rover.RoverId, rover.RoverId,
obj?.Operacao?.Status ?? StatusOperacao.NaoIniciado,
linha1, linha1,
linha2, linha2,
badge, badge,
@ -579,7 +595,7 @@ namespace OperationControl.ViewModels
{ {
System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{ {
_viewOperacaoTop?._vm.AtualizarStatus(status, titulo, linha1, linha2.Replace("\n\n", " • "), status_str, resumo); _viewOperacaoTop?._vm.AtualizarStatus(status, titulo, StatusOperacao.Parametrizando, linha1, linha2.Replace("\n\n", " • "), status_str, resumo);
})); }));
} }