2026-03-17 00:43:15 +00:00
|
|
|
|
using AgroBase.Models;
|
|
|
|
|
|
using AgroBase.Models.Operacoes;
|
2026-03-17 17:26:07 +00:00
|
|
|
|
using OperationControl.Controls;
|
2026-03-17 00:43:15 +00:00
|
|
|
|
using OperationControl.Helpers;
|
2026-03-17 19:45:43 +00:00
|
|
|
|
using OperationControl.Models;
|
2026-03-17 00:43:15 +00:00
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Windows.Input;
|
|
|
|
|
|
|
|
|
|
|
|
namespace OperationControl.ViewModels.Views.Operacao.Monitoramento
|
|
|
|
|
|
{
|
|
|
|
|
|
public class ParametrizacaoViewModel : INotifyPropertyChanged
|
|
|
|
|
|
{
|
|
|
|
|
|
private OperacaoParametrosModel _parametros = new OperacaoParametrosModel();
|
|
|
|
|
|
public OperacaoParametrosModel Parametros
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _parametros;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_parametros != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_parametros = value;
|
|
|
|
|
|
OnPropertyChanged(nameof(Parametros));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-17 19:45:43 +00:00
|
|
|
|
private bool _operacaoConcluida;
|
|
|
|
|
|
public bool OperacaoConcluida
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _operacaoConcluida;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_operacaoConcluida = value;
|
|
|
|
|
|
OnPropertyChanged(nameof(OperacaoConcluida));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 18:11:10 +00:00
|
|
|
|
private AgroBase.Models.Enums.ModoOperacao? modoOperacaoAtual { get; set; }
|
|
|
|
|
|
|
2026-03-17 00:43:15 +00:00
|
|
|
|
public ParametrizacaoViewModel()
|
|
|
|
|
|
{
|
|
|
|
|
|
CarregarParametrosPadraoCommand = new RelayCommand(p => CarregarParametrosPadrao((AgroBase.Models.Enums.ModoOperacao)p));
|
|
|
|
|
|
LerParametrosCommand = new RelayCommand(_ => LerParametrosSolicitado?.Invoke());
|
|
|
|
|
|
SalvarParametrosCommand = new RelayCommand(_ => SalvarParametrosSolicitado?.Invoke(Parametros));
|
2026-03-17 19:45:43 +00:00
|
|
|
|
ReiniciarOperacaoCommand = new RelayCommand(_ => ReiniciarOperacao());
|
2026-03-17 00:43:15 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public event Action? LerParametrosSolicitado;
|
|
|
|
|
|
public event Action<OperacaoParametrosModel>? SalvarParametrosSolicitado;
|
|
|
|
|
|
public ICommand LerParametrosCommand { get; }
|
|
|
|
|
|
public ICommand SalvarParametrosCommand { get; }
|
|
|
|
|
|
public ICommand CarregarParametrosPadraoCommand { get; }
|
2026-03-17 19:45:43 +00:00
|
|
|
|
public ICommand ReiniciarOperacaoCommand { get; }
|
2026-03-17 00:43:15 +00:00
|
|
|
|
public Array ModosOperacaoDisponiveis { get; } = Enum.GetValues(typeof(AgroBase.Models.Enums.ModoOperacao));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void CarregarParametrosPadrao(AgroBase.Models.Enums.ModoOperacao modo)
|
|
|
|
|
|
{
|
|
|
|
|
|
var p = OperacaoModel.CarregarParametrosOperacaoPadrao(modo, false);
|
2026-03-18 18:11:10 +00:00
|
|
|
|
modoOperacaoAtual = p.Modo;
|
2026-03-17 00:43:15 +00:00
|
|
|
|
p.Descricao = $"{p.Modo} - Padrão";
|
|
|
|
|
|
Parametros = p;
|
2026-03-18 18:11:10 +00:00
|
|
|
|
VariaveisControleOperacao.RoverEmFoco.Modo = modo;
|
2026-03-17 00:43:15 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-17 19:45:43 +00:00
|
|
|
|
private void ReiniciarOperacao()
|
|
|
|
|
|
{
|
|
|
|
|
|
VariaveisControleOperacao.EnviarComandoIniciarOperacao(false, false);
|
2026-03-27 01:42:40 +00:00
|
|
|
|
Models.Variaveis.Dock?._vm?._viewOperacaoCenter?.Mapa?.LimparPontosSelecionados();
|
2026-03-17 19:45:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-17 00:43:15 +00:00
|
|
|
|
public void AtualizarParametros(OperacaoParametrosModel origem)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (origem == null) return;
|
|
|
|
|
|
Parametros = origem;
|
2026-03-18 18:11:10 +00:00
|
|
|
|
modoOperacaoAtual = origem.Modo;
|
2026-03-17 19:45:43 +00:00
|
|
|
|
OperacaoConcluida = (VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Operacao?.Status ?? AgroBase.Models.Enums.StatusOperacao.NaoIniciado) == AgroBase.Models.Enums.StatusOperacao.Concluido;
|
2026-03-17 00:43:15 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-17 17:26:07 +00:00
|
|
|
|
public void ProcessarStreetMapClicked(MapViewControl.StreetMapClickedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-17 00:43:15 +00:00
|
|
|
|
|
|
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
|
|
private void OnPropertyChanged(string nome)
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nome));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|