diff --git a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs index 9e68f8edb..7908e103d 100644 --- a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs +++ b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs @@ -1497,12 +1497,15 @@ namespace AgroBase.Models if (!Variaveis.OperacaoEmAndamento.OperacaoLiberada) { - if ((Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov)?.UltimaDirecao ?? Direcao.Parado) != Direcao.Parado) + var _Controle = Variaveis.OperacaoEmAndamento.Controle; + if ((_Controle.TiposControle?.FirstOrDefault(x => x?.Tipo == T_Code.Mov)?.UltimaDirecao ?? Direcao.Parado) != Direcao.Parado) { + _Controle.PercentualVelocidadeSP = 0; GeneralJoystick.EnviaComandoMotor(Keys.Escape, T_Code.Mov, ForcarComando: true); } - if ((Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Dir)?.UltimaDirecao ?? Direcao.Parado) != Direcao.Parado) + if ((_Controle.TiposControle?.FirstOrDefault(x => x?.Tipo == T_Code.Dir)?.UltimaDirecao ?? Direcao.Parado) != Direcao.Parado) { + _Controle.Angulo = 0; GeneralJoystick.EnviaComandoMotor(Keys.Escape, T_Code.Dir, ForcarComando: true); } } diff --git a/AgroBase/AgroBase/Models/Operadores/VisualWorkerModel.cs b/AgroBase/AgroBase/Models/Operadores/VisualWorkerModel.cs index e0e0dc874..778c61a6e 100644 --- a/AgroBase/AgroBase/Models/Operadores/VisualWorkerModel.cs +++ b/AgroBase/AgroBase/Models/Operadores/VisualWorkerModel.cs @@ -1,5 +1,4 @@ -using AgroBase.Services.Operadores; -using System; +using System; using System.Collections.Generic; using System.Drawing; using System.Linq; @@ -70,7 +69,7 @@ namespace AgroBase.Models.Operadores StatusCarro = Sonar?.Analises?.segmentacao?.status_corredor ?? StatusCarroMapa.Indefinido; ErroLateral = Sonar?.Analises?.segmentacao?.erro_angular ?? 0; - if (!Variaveis.OperacaoEmAndamento.Parametros.Controle?.SonarAtivado ?? false) + if (!(Variaveis.OperacaoEmAndamento.Parametros?.Controle?.OakParadaPorObstaculo ?? false)) { _comandoParadaEnviado = false; DeveParar = false; @@ -80,7 +79,7 @@ namespace AgroBase.Models.Operadores else { List _direcoesInterromperMovimento = new List { Direcao.Frente }; //, Direcao.Tras - Direcao _ultimaDirecaoControle = Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov)?.UltimaDirecao ?? Direcao.Parado; + Direcao _ultimaDirecaoControle = Variaveis.OperacaoEmAndamento.Controle?.TiposControle?.FirstOrDefault(x => x?.Tipo == T_Code.Mov)?.UltimaDirecao ?? Direcao.Parado; bool _carroEmMovimento = _direcoesInterromperMovimento.Contains(_ultimaDirecaoControle); bool emMovimento = consideraEmMovimento ? _carroEmMovimento : true; DeveParar = Sonar?.Status == StatusModulo.Operante && ObstaculoDetectado; diff --git a/AgroBase/OperationControl/ViewModels/Views/Operacao/OperacaoLeftViewModel.cs b/AgroBase/OperationControl/ViewModels/Views/Operacao/OperacaoLeftViewModel.cs index f31ed8734..2e8199463 100644 --- a/AgroBase/OperationControl/ViewModels/Views/Operacao/OperacaoLeftViewModel.cs +++ b/AgroBase/OperationControl/ViewModels/Views/Operacao/OperacaoLeftViewModel.cs @@ -337,6 +337,15 @@ namespace OperationControl.ViewModels.Views.Operacao { bool simulador = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Gnss?.Iniciado != true; VariaveisControleOperacao.EnviarComandoIniciarOperacao(true, simulador); + + Task.Run(async () => + { + await Task.Delay(1000); + if (!(VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Operacao?.Liberada ?? false)) + { + System.Windows.MessageBox.Show($"{VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Operacao?.ImpedimentoErro}", "Operação iniciada com impedimento!", MessageBoxButton.OK, MessageBoxImage.Warning); + } + }); } } }