Tratamentos e alerta de NCP desconectado
This commit is contained in:
parent
ffbd86d8a4
commit
6b87783f43
|
|
@ -1083,21 +1083,27 @@ namespace AgroBase.Models
|
|||
{
|
||||
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!");
|
||||
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!");
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", 0)
|
||||
);
|
||||
if (Variaveis.OperacaoEmAndamento?.Sensoriamento?.Controle?.RPM_SP > 0)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Falha, 0, "Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!");
|
||||
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Parando Movimento!");
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", 0)
|
||||
);
|
||||
}
|
||||
}
|
||||
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!");
|
||||
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!");
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent)
|
||||
);
|
||||
if (Variaveis.OperacaoEmAndamento?.Sensoriamento?.Controle?.RPM_SP > Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 80, "Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!");
|
||||
Console.WriteLine("Muito tempo sem receber novo comando do Manager Worker! Reduzindo Velocidade!");
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,29 +91,39 @@ namespace AgroBase.Services.Operadores
|
|||
var _Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.MovimentoAutomatico)
|
||||
{
|
||||
_Controle.PercentualVelocidadeSP = 0;
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", _Controle.PercentualVelocidadeSP)
|
||||
);
|
||||
if (_Controle.PercentualVelocidadeSP > 0)
|
||||
{
|
||||
_Controle.PercentualVelocidadeSP = 0;
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("velocidade_sp", _Controle.PercentualVelocidadeSP)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.DirecionalAutomatico)
|
||||
{
|
||||
_Controle.Angulo = 0;
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("angulo_sp", _Controle.Angulo)
|
||||
);
|
||||
if (_Controle.Angulo != 0)
|
||||
{
|
||||
_Controle.Angulo = 0;
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("angulo_sp", _Controle.Angulo)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
_Controle.Bicos.ForEach(x => x.ComandoAtuar = false);
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("angulo_sp", _Controle.Angulo),
|
||||
("velocidade_sp", _Controle.PercentualVelocidadeSP),
|
||||
("controle_bicos", _Controle.Bicos.ToDictionary(x => x.Posicao - 1, x => x.ComandoAtuar))
|
||||
);
|
||||
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.PulverizadorAutomatico)
|
||||
{
|
||||
if (_Controle.Bicos.Any(x => x.ComandoAtuar))
|
||||
{
|
||||
_Controle.Bicos.ForEach(x => x.ComandoAtuar = false);
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosControle,
|
||||
("controle_bicos", _Controle.Bicos.ToDictionary(x => x.Posicao - 1, x => x.ComandoAtuar))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Variaveis.OperacaoEmAndamento.AtualizaInformacoesControleOperacao();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
MotivoPrincipal = linha2;
|
||||
BadgeTexto = status_str;
|
||||
|
|
|
|||
|
|
@ -370,6 +370,21 @@ namespace OperationControl.ViewModels
|
|||
|
||||
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
|
||||
// ============================
|
||||
|
|
@ -567,6 +582,7 @@ namespace OperationControl.ViewModels
|
|||
_viewOperacaoTop?._vm.AtualizarStatus(
|
||||
statusVisual,
|
||||
rover.RoverId,
|
||||
obj?.Operacao?.Status ?? StatusOperacao.NaoIniciado,
|
||||
linha1,
|
||||
linha2,
|
||||
badge,
|
||||
|
|
@ -579,7 +595,7 @@ namespace OperationControl.ViewModels
|
|||
{
|
||||
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);
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue