ajuste parada vw modo manual

This commit is contained in:
Diego Freitas 2026-03-19 08:34:09 -03:00
parent 3acb14d9bf
commit d898b493ce
3 changed files with 17 additions and 6 deletions

View File

@ -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);
}
}

View File

@ -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<Direcao> _direcoesInterromperMovimento = new List<Direcao> { 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;

View File

@ -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);
}
});
}
}
}