2026-03-10 19:56:55 +00:00
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Windows.Media;
|
|
|
|
|
|
using Brush = System.Windows.Media.Brush;
|
|
|
|
|
|
using Brushes = System.Windows.Media.Brushes;
|
|
|
|
|
|
using ColorConverter = System.Windows.Media.ColorConverter;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
using Color = System.Windows.Media.Color;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
|
|
|
|
|
|
namespace OperationControl.ViewModels.Views.Operacao
|
|
|
|
|
|
{
|
|
|
|
|
|
public class OperacaoTopViewModel : INotifyPropertyChanged
|
|
|
|
|
|
{
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private string _contextoSelecionado = "ROVER 01";
|
2026-03-10 19:56:55 +00:00
|
|
|
|
public string ContextoSelecionado
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _contextoSelecionado;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
set { _contextoSelecionado = value; OnPropertyChanged(nameof(ContextoSelecionado)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private string _tituloStatus = "ROVER OPERANDO NORMALMENTE";
|
|
|
|
|
|
public string TituloStatus
|
2026-03-10 19:56:55 +00:00
|
|
|
|
{
|
2026-03-12 20:03:24 +00:00
|
|
|
|
get => _tituloStatus;
|
|
|
|
|
|
set { _tituloStatus = value; OnPropertyChanged(nameof(TituloStatus)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private string _motivoPrincipal = "Todos os módulos obrigatórios e regras de controle estão OK.";
|
|
|
|
|
|
public string MotivoPrincipal
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _motivoPrincipal;
|
|
|
|
|
|
set { _motivoPrincipal = value; OnPropertyChanged(nameof(MotivoPrincipal)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private string _badgeTexto = "NORMAL";
|
2026-03-10 19:56:55 +00:00
|
|
|
|
public string BadgeTexto
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _badgeTexto;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
set { _badgeTexto = value; OnPropertyChanged(nameof(BadgeTexto)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private string _resumoCurto = "Sistema saudável";
|
|
|
|
|
|
public string ResumoCurto
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _resumoCurto;
|
|
|
|
|
|
set { _resumoCurto = value; OnPropertyChanged(nameof(ResumoCurto)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private Brush _corFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#153D2C"));
|
2026-03-10 19:56:55 +00:00
|
|
|
|
public Brush CorFundo
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _corFundo;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
set { _corFundo = value; OnPropertyChanged(nameof(CorFundo)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Brush _corBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2C7A57"));
|
|
|
|
|
|
public Brush CorBorda
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _corBorda;
|
|
|
|
|
|
set { _corBorda = value; OnPropertyChanged(nameof(CorBorda)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Brush _corAccent = Brushes.LightGreen;
|
|
|
|
|
|
public Brush CorAccent
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _corAccent;
|
|
|
|
|
|
set { _corAccent = value; OnPropertyChanged(nameof(CorAccent)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private Brush _corBadge = Brushes.LightGreen;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
public Brush CorBadge
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _corBadge;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
set { _corBadge = value; OnPropertyChanged(nameof(CorBadge)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Brush _corTexto = Brushes.White;
|
|
|
|
|
|
public Brush CorTexto
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _corTexto;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
set { _corTexto = value; OnPropertyChanged(nameof(CorTexto)); }
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
private Brush _corTextoBadge = Brushes.Black;
|
|
|
|
|
|
public Brush CorTextoBadge
|
2026-03-10 19:56:55 +00:00
|
|
|
|
{
|
2026-03-12 20:03:24 +00:00
|
|
|
|
get => _corTextoBadge;
|
|
|
|
|
|
set { _corTextoBadge = value; OnPropertyChanged(nameof(CorTextoBadge)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void MockarNormal()
|
|
|
|
|
|
{
|
|
|
|
|
|
ContextoSelecionado = "ROVER 01";
|
|
|
|
|
|
TituloStatus = "ROVER OPERANDO NORMALMENTE";
|
|
|
|
|
|
MotivoPrincipal = "Todos os módulos obrigatórios e regras de controle estão OK.";
|
2026-03-10 19:56:55 +00:00
|
|
|
|
BadgeTexto = "NORMAL";
|
2026-03-12 20:03:24 +00:00
|
|
|
|
ResumoCurto = "Sistema saudável";
|
|
|
|
|
|
|
|
|
|
|
|
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#153D2C"));
|
|
|
|
|
|
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2C7A57"));
|
|
|
|
|
|
CorAccent = Brushes.LightGreen;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
CorBadge = Brushes.LightGreen;
|
|
|
|
|
|
CorTexto = Brushes.White;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
CorTextoBadge = Brushes.Black;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
public void MockarParadoPorInclinacao()
|
2026-03-10 19:56:55 +00:00
|
|
|
|
{
|
2026-03-12 20:03:24 +00:00
|
|
|
|
ContextoSelecionado = "ROVER 01";
|
|
|
|
|
|
TituloStatus = "ROVER PARADO POR SEGURANÇA";
|
|
|
|
|
|
MotivoPrincipal = "Inclinação lateral acima do limite permitido.";
|
|
|
|
|
|
BadgeTexto = "PARADO";
|
|
|
|
|
|
ResumoCurto = "Verificar IMU";
|
|
|
|
|
|
|
|
|
|
|
|
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4A1F1F"));
|
|
|
|
|
|
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#9B3A3A"));
|
|
|
|
|
|
CorAccent = Brushes.OrangeRed;
|
|
|
|
|
|
CorBadge = Brushes.OrangeRed;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
CorTexto = Brushes.White;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
CorTextoBadge = Brushes.Black;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-12 20:03:24 +00:00
|
|
|
|
public void MockarObstaculo()
|
2026-03-10 19:56:55 +00:00
|
|
|
|
{
|
2026-03-12 20:03:24 +00:00
|
|
|
|
ContextoSelecionado = "ROVER 01";
|
|
|
|
|
|
TituloStatus = "MOVIMENTO BLOQUEADO PREVENTIVAMENTE";
|
|
|
|
|
|
MotivoPrincipal = "Obstáculo detectado no corredor à frente.";
|
2026-03-10 19:56:55 +00:00
|
|
|
|
BadgeTexto = "ATENÇÃO";
|
2026-03-12 20:03:24 +00:00
|
|
|
|
ResumoCurto = "Inspecionar caminho";
|
|
|
|
|
|
|
2026-03-10 19:56:55 +00:00
|
|
|
|
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4A3315"));
|
2026-03-12 20:03:24 +00:00
|
|
|
|
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#B7791F"));
|
|
|
|
|
|
CorAccent = Brushes.Orange;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
CorBadge = Brushes.Orange;
|
|
|
|
|
|
CorTexto = Brushes.White;
|
2026-03-12 20:03:24 +00:00
|
|
|
|
CorTextoBadge = Brushes.Black;
|
2026-03-10 19:56:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
|
|
private void OnPropertyChanged(string nome)
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nome));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-03-12 20:03:24 +00:00
|
|
|
|
}
|