ajustes para iniciar operacao

This commit is contained in:
Diego Freitas 2026-03-18 09:48:33 -03:00
parent a441b3997c
commit 70d9f34e95
4 changed files with 17 additions and 6 deletions

View File

@ -369,6 +369,7 @@ namespace OperationControl.Services
Models.Variaveis.MostrarLog(mensagem);
((App)Application.Current)?.Shell?.Dock?._vm?._viewPreparacaoMapaBottom?._vm?.FinalizarFixacao(sucesso, mensagem);
((App)Application.Current)?.Shell?.Dock?._vm?.FinalizarFixacaoBase(sucesso, mensagem);
}
private async Task ConfigurarModuloBase(string porta_usb = "com3", string porta_saida = "com2", int tempo_fixacao = 60)

View File

@ -16,6 +16,7 @@ namespace OperationControl.ViewModels.Views.Operacao
public ICommand AlternarOperacaoCommand { get; }
public ICommand ParadaEmergenciaCommand { get; }
public ICommand CancelarOperacaoCommand { get; }
private bool _operacaoPausada => (VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Operacao?.Pausa ?? false);
private bool _operacaoEmExecucao;
public bool OperacaoEmExecucao
{
@ -33,15 +34,15 @@ namespace OperationControl.ViewModels.Views.Operacao
}
}
public string TextoBotaoOperacao => OperacaoEmExecucao ? "⏸ Pausar Operação" : "▶ Iniciar Operação";
public string TextoBotaoOperacao => _operacaoPausada ? "▶ Retomar Operação" : OperacaoEmExecucao ? "⏸ Pausar Operação" : "▶ Iniciar Operação";
public Brush CorBotaoOperacao =>
OperacaoEmExecucao
OperacaoEmExecucao && !_operacaoPausada
? new SolidColorBrush(Color.FromRgb(120, 88, 20))
: new SolidColorBrush(Color.FromRgb(30, 90, 58));
public System.Windows.Media.Brush BordaBotaoOperacao =>
OperacaoEmExecucao
OperacaoEmExecucao && !_operacaoPausada
? new SolidColorBrush(System.Windows.Media.Color.FromRgb(170, 130, 40))
: new SolidColorBrush(System.Windows.Media.Color.FromRgb(74, 138, 91));
@ -279,6 +280,9 @@ namespace OperationControl.ViewModels.Views.Operacao
OnPropertyChanged(nameof(CorRede));
OnPropertyChanged(nameof(CorGnss));
OnPropertyChanged(nameof(OperacaoEmExecucao));
OnPropertyChanged(nameof(TextoBotaoOperacao));
OnPropertyChanged(nameof(CorBotaoOperacao));
OnPropertyChanged(nameof(BordaBotaoOperacao));
}
private void AlternarOperacao()

View File

@ -996,14 +996,20 @@ namespace OperationControl.ViewModels
{
var dadosMapa = _viewOperacaoCenter?.Mapa?.CriarDadosMapa();
var ruasPercorrer = _viewOperacaoCenter?.Mapa?.RuasMapaCarregado?.Where(x => x.Selected)?.Select(x => x.Id)?.ToList() ?? new List<string>();
var rover = VariaveisControleOperacao.RoverEmFoco;
if (parametros.Modo == AgroBase.Models.Enums.ModoOperacao.MapaGPS && ((dadosMapa?.features?.Count ?? 0) == 0 || !ruasPercorrer.Any()))
if (rover?.DadosLeitura?.Operacao?.Modo != parametros.Modo && (rover?.DadosLeitura?.Operacao?.Iniciada ?? false))
{
System.Windows.MessageBox.Show($"Já existe uma operação {rover?.DadosLeitura?.Operacao?.Modo ?? AgroBase.Models.Enums.ModoOperacao.NaoDefinido} em andamento. Finalize a operação atual para salvar os novos parametros.", "Mudança de Operação", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
if (!(rover?.DadosLeitura?.Operacao?.Iniciada ?? false) && parametros.Modo == AgroBase.Models.Enums.ModoOperacao.MapaGPS && ((dadosMapa?.features?.Count ?? 0) == 0 || !ruasPercorrer.Any()))
{
System.Windows.MessageBox.Show("Selecione as ruas no mapa onde o equipamento irá operar", "Ruas não selecionadas", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
var rover = VariaveisControleOperacao.RoverEmFoco;
if (rover == null)
return;

View File

@ -208,7 +208,7 @@
Background="#7A1E1E"
BorderBrush="#B83A3A"/>
<Button Content="✖ Cancelar Operação"
<Button Content="✖ Finalizar Operação"
Command="{Binding CancelarOperacaoCommand}"
Style="{StaticResource LeftActionButtonStyle}"
Background="#3A3A3A"