iniciado acompanhamento
This commit is contained in:
parent
02ae378b92
commit
4b7c83414c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -21,26 +21,12 @@ namespace AgroBase.Models
|
|||
{
|
||||
get
|
||||
{
|
||||
if (Endereco.Contains("USB"))
|
||||
{
|
||||
return TipoConexao.USB;
|
||||
}
|
||||
else if (Endereco.Contains("COM"))
|
||||
{
|
||||
return TipoConexao.PortaCOM;
|
||||
}
|
||||
else if (Endereco.Contains("."))
|
||||
{
|
||||
return TipoConexao.Ethernet;
|
||||
}
|
||||
else if (Endereco.Contains("CAN"))
|
||||
{
|
||||
return TipoConexao.CAN;
|
||||
}
|
||||
else
|
||||
{
|
||||
return TipoConexao.Desconhecido;
|
||||
}
|
||||
if (string.IsNullOrEmpty(Endereco)) return TipoConexao.Desconhecido;
|
||||
else if (Endereco.Contains("USB")) return TipoConexao.USB;
|
||||
else if (Endereco.Contains("COM")) return TipoConexao.PortaCOM;
|
||||
else if (Endereco.Contains(".")) return TipoConexao.Ethernet;
|
||||
else if (Endereco.Contains("CAN")) return TipoConexao.CAN;
|
||||
else return TipoConexao.Desconhecido;
|
||||
}
|
||||
}
|
||||
public StatusModulo Status { get; set; }
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using System.Data;
|
|||
|
||||
namespace AgroBase
|
||||
{
|
||||
class GeneralJoystick
|
||||
public class GeneralJoystick
|
||||
{
|
||||
public static Joystick JoystickConectado = null;
|
||||
public static int MargemAnalogico = 100;
|
||||
|
|
@ -694,7 +694,10 @@ namespace AgroBase
|
|||
}
|
||||
else if (DirecaoAtual == Direcao.Referenciar)
|
||||
{
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.DispMvd.Dados.RealizarReferenciamentoDirecional());
|
||||
List<string> modsRef = null;
|
||||
if (!string.IsNullOrEmpty(ID))
|
||||
modsRef.Add(ID);
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.DispMvd.Dados.RealizarReferenciamentoDirecional(modsRef));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -734,9 +737,12 @@ namespace AgroBase
|
|||
|
||||
public static void EnviarComandoAtuador(S_Code Componente, bool Status, string ID, bool Forcar = false)
|
||||
{
|
||||
if (!Variaveis.OperacaoEmAndamento.Iniciado) return;
|
||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Atu && x.ComponentesEmUso[ID]);
|
||||
if (!componente_em_uso && Status) return; // Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||
if (!Forcar)
|
||||
{
|
||||
if (!Variaveis.OperacaoEmAndamento.Iniciado) return;
|
||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Atu && x.ComponentesEmUso[ID]);
|
||||
if (!componente_em_uso && Status) return; // Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||
}
|
||||
|
||||
var DispAtu = Variaveis.OperacaoEmAndamento.DispAtu;
|
||||
int id_num = -1;
|
||||
|
|
@ -768,10 +774,18 @@ namespace AgroBase
|
|||
|
||||
}
|
||||
|
||||
public static void EnviarComandoSensoriamento(S_Code Componente, string ID, dynamic Status)
|
||||
public static void EnviarComandoSensoriamento(S_Code Componente, string ID, dynamic Status, bool Forcar = false)
|
||||
{
|
||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Sen && x.ComponentesEmUso[ID]);
|
||||
if (!componente_em_uso && Status) return; // Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||
if (!Forcar)
|
||||
{
|
||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Sen && x.ComponentesEmUso[ID]);
|
||||
if (!componente_em_uso)
|
||||
{
|
||||
// Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||
if (Componente == S_Code.sRLE && ((Estado)Status) == Estado.Ligado) return;
|
||||
if (Componente == S_Code.sFRO && ((int)Status) > 0) return;
|
||||
}
|
||||
}
|
||||
|
||||
var DispSen = Variaveis.OperacaoEmAndamento.DispSen;
|
||||
|
||||
|
|
|
|||
|
|
@ -993,6 +993,8 @@ namespace AgroBase.Models.Modules
|
|||
public double TempoAtuado { get; set; } = 0;
|
||||
private void AtualizaTempoAtuado()
|
||||
{
|
||||
if (!Variaveis.OperacaoEmAndamento.Iniciado) return;
|
||||
|
||||
if (_atuado)
|
||||
{
|
||||
if (InicioAtuacao == DateTime.MinValue)
|
||||
|
|
|
|||
|
|
@ -370,14 +370,14 @@ namespace AgroBase.Models.Modules
|
|||
}
|
||||
}
|
||||
|
||||
public async Task<bool> RealizarReferenciamentoDirecional()
|
||||
public async Task<bool> RealizarReferenciamentoDirecional(List<string> ModsReferenciar = null)
|
||||
{
|
||||
if (!MKS057DCanService.Referenciando)
|
||||
{
|
||||
TipoMovimentoDirecional tipoControle = Variaveis.OperacaoEmAndamento.Controle.TipoMovimento;
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Controle.TipoMovimento = TipoMovimentoDirecional.Diagnostico;
|
||||
var ModsRef = Modulos.Where(x => x.DirMotor.Comandar && x.DirMotor.Inicializado).ToList();
|
||||
var ModsRef = Modulos.Where(x => x.DirMotor.Comandar && x.DirMotor.Inicializado && (ModsReferenciar != null ? ModsReferenciar.Contains(x.DirMotor.Mod_ID) : true)).ToList();
|
||||
foreach (var Modulo in ModsRef)
|
||||
{
|
||||
Task.Run(async () => await Modulo.DirMotor.ReferenciaMotor());
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ namespace AgroBase.Models
|
|||
|
||||
|
||||
public ModoOperacao Modo { get; set; }
|
||||
public StatusModulo Status { get; set; }
|
||||
public string Descricao { get; set; }
|
||||
public string OprPath { get; set; }
|
||||
public OperacaoControleModel Controle { get; set; } = new OperacaoControleModel();
|
||||
|
|
@ -102,6 +103,13 @@ namespace AgroBase.Models
|
|||
}
|
||||
|
||||
Variaveis.OperacaoEmAndamento.StatusAnterior = Variaveis.OperacaoEmAndamento.StatusAtual;
|
||||
|
||||
double saude_geral = HealthWorkerService.ModulosSaude.Average(x => x.saude);
|
||||
Variaveis.OperacaoEmAndamento.Status =
|
||||
!Variaveis.OperacaoEmAndamento.OperacaoLiberada ? StatusModulo.Falha :
|
||||
saude_geral <= 0.0 ? StatusModulo.Desconectado :
|
||||
saude_geral < 80.0 ? StatusModulo.Alerta :
|
||||
StatusModulo.Operante;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1534,7 +1542,7 @@ namespace AgroBase.Models
|
|||
}
|
||||
break;
|
||||
}
|
||||
GeneralJoystick.EnviarComandoAtuador(comp, status, controleBase._comp_id);
|
||||
GeneralJoystick.EnviarComandoAtuador(comp, status, controleBase._comp_id, Forcar: true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1551,7 +1559,13 @@ namespace AgroBase.Models
|
|||
}
|
||||
|
||||
S_Code comp = get_comp(controleBase._comp_id);
|
||||
GeneralJoystick.EnviarComandoSensoriamento(comp, controleBase._comp_id, controleBase._comp_value);
|
||||
GeneralJoystick.EnviarComandoSensoriamento(comp, controleBase._comp_id, controleBase._comp_value, Forcar: true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (controleBase.Dispositivo == T_Code.Dir && controleBase.Tecla == BotoesJoystick.R3)
|
||||
{
|
||||
GeneralJoystick.EnviaComandoMotor(Keys.R, ForcarComando: true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1564,10 +1578,9 @@ namespace AgroBase.Models
|
|||
if (Variaveis.OperacaoEmAndamento.Parametros.Controle.MovimentoAutomatico) return;
|
||||
|
||||
var _Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
|
||||
_Controle.PercentualVelocidadeSP = controleBase.Controle.PercentualVelocidadeSP;
|
||||
_Controle.Angulo = controleBase.Controle.AnguloSP;
|
||||
_Controle.TipoMovimento = controleBase.Controle.TipoMovimentoDirecional;
|
||||
if (controleBase.Controle.PercentualVelocidadeSP != null) _Controle.PercentualVelocidadeSP = (double)controleBase.Controle.PercentualVelocidadeSP;
|
||||
if (controleBase.Controle.AnguloSP != null) _Controle.Angulo = (double)controleBase.Controle.AnguloSP;
|
||||
if (controleBase.Controle.TipoMovimentoDirecional != null) _Controle.TipoMovimento = (TipoMovimentoDirecional)controleBase.Controle.TipoMovimentoDirecional;
|
||||
|
||||
Keys tecla = GeneralJoystick.DeParaComandos.FirstOrDefault(x => x.botaoJoy == controleBase.Tecla)?.key ?? Keys.Escape;
|
||||
GeneralJoystick.EnviaComandoMotor(tecla, controleBase.Dispositivo, ForcarComando: true);
|
||||
|
|
@ -2175,10 +2188,9 @@ namespace AgroBase.Models
|
|||
|
||||
public class OperacaoComandoBaseControleModel
|
||||
{
|
||||
public double PercentualVelocidadeSP { get; set; }
|
||||
public double AnguloSP { get; set; }
|
||||
public double VelocidadeMP { get; set; }
|
||||
public TipoMovimentoDirecional TipoMovimentoDirecional { get; set; }
|
||||
public double? PercentualVelocidadeSP { get; set; }
|
||||
public double? AnguloSP { get; set; }
|
||||
public TipoMovimentoDirecional? TipoMovimentoDirecional { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -2198,6 +2210,7 @@ namespace AgroBase.Models
|
|||
{
|
||||
public DateTime Momento { get; set; }
|
||||
public ModoOperacao Modo { get; set; }
|
||||
public StatusModulo Status { get; set; }
|
||||
public string ErroOperacaoLiberada { get; set; }
|
||||
public bool OperacaoLiberada { get; set; }
|
||||
public bool OperacaoIniciada { get; set; }
|
||||
|
|
@ -2231,6 +2244,7 @@ namespace AgroBase.Models
|
|||
public List<OperacaoParametrosMandatoriosModel> ParametrosMandatorios { get; set; }
|
||||
public List<ManagerWorkerMessageResponseModulosPendentesModel> ModulosSaude { get; set; }
|
||||
public List<DispositivoDetalhesModel> DispositivosMapeados { get; set; }
|
||||
public Dictionary<string, double> Temperaturas { get; set; }
|
||||
public Dictionary<T_Code, Dictionary<string, bool>> ModsCalibragem { get; set; }
|
||||
public bool CanSerialAtivado { get; set; }
|
||||
|
||||
|
|
@ -2287,6 +2301,8 @@ namespace AgroBase.Models
|
|||
PressaoLinha = _DispAtu.Dados.PressaoLinha,
|
||||
VazaoInstantanea = _DispAtu.Dados.VazaoFluxoMLpSInstantanea,
|
||||
VazaoMedia = _DispAtu.Dados.VazaoFluxoMLpSMedia,
|
||||
ComandoBomba = _DispAtu.Dados.BombasPressurizadoras.FirstOrDefault()?.ComandoAtuar ?? false,
|
||||
LeituraComandoBomba = (_DispAtu.Dados.BombasPressurizadoras.FirstOrDefault().ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.EstadoLeitura)?.atual?.valor ?? Estado.Desligado) == Estado.Ligado,
|
||||
LeituraPotenciaBomba = FuncoesMatematicas.Clamp(_DispAtu.Dados.BombasPressurizadoras.FirstOrDefault().ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? 0, 0, 100),
|
||||
VolumeVazaoMl = _DispAtu.Dados.VolumeVazaoML
|
||||
} : new OperacaoSensoriamentoLogAtuModel();
|
||||
|
|
@ -2302,21 +2318,45 @@ namespace AgroBase.Models
|
|||
DistanciaPercorridaParcial = _DispMvd.Dados.DistanciaPercorridaParcial,
|
||||
Dir_Status = _DispMvd.Dados.StatusModulosDIR(_Controle.TipoMovimento),
|
||||
MovEsq_Status = _DispMvd.Dados.StatusModulosMOV(Direcao.Esquerda),
|
||||
MovDir_Status = _DispMvd.Dados.StatusModulosMOV(Direcao.Direita)
|
||||
MovDir_Status = _DispMvd.Dados.StatusModulosMOV(Direcao.Direita),
|
||||
Dados = _DispMvd.Dados.Modulos.Select(x => new OperacaoSensoriamentoLogMvdMovModel()
|
||||
{
|
||||
ID = x.MovMotor.Mod_ID,
|
||||
Tensao = x.MovMotor.Tensao,
|
||||
Corrente_Barramento = x.MovMotor.Corrente_Barramento,
|
||||
Corrente_Motor = x.MovMotor.Corrente_Motor,
|
||||
Potencia = x.MovMotor.Potencia,
|
||||
CicloTrabalho = x.MovMotor.CicloTrabalho,
|
||||
TemperaturaDriver = x.MovMotor.TemperaturaDriver,
|
||||
RPM_Motor = x.MovMotor.RPM_Motor,
|
||||
RPM_Roda = x.MovMotor.RPM_Roda,
|
||||
VelocidadeInstantanea = x.MovMotor.VelocidadeInstantanea
|
||||
}).ToList()
|
||||
} : new OperacaoSensoriamentoLogMvdModel();
|
||||
|
||||
var S36V = _DispSen?.Dados?.Sensores?.FirstOrDefault(x => x.ID == "AB36V");
|
||||
var dadosBateria = S36V != null ? new OperacaoSensoriamentoLogBateriaModel()
|
||||
{
|
||||
Iniciado = S36V.Inicializado,
|
||||
_dt = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.dt ?? 0,
|
||||
Iniciado = S36V.Inicializado,
|
||||
_dt = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.dt ?? 0,
|
||||
PorcentagemBateria = FuncoesMatematicas.Clamp(_DispSen.Dados.ContadorCarga.PercentualBateria, 0, 100),
|
||||
BateriaConsumida = FuncoesMatematicas.Clamp(_DispSen.Dados.ContadorCarga.PercentualConsumido, 0, 100),
|
||||
TempoEstimadoRestanteMinutos = _DispSen.Dados.ContadorCarga.TempoEstimadoMinutos,
|
||||
TempoEstimadoRestanteMinutos = _DispSen.Dados.ContadorCarga.TempoEstimadoMinutos,
|
||||
CorrenteInstantanea = (S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.valor ?? 0) / 1000.0,
|
||||
TensaoInstantanea = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao)?.atual?.valor ?? 0,
|
||||
PotenciaInstantanea = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? 0,
|
||||
PotenciaAcumulada = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Temperatura)?.atual?.valor ?? 0
|
||||
PotenciaInstantanea = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? 0,
|
||||
PotenciaAcumulada = S36V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Temperatura)?.atual?.valor ?? 0,
|
||||
Barramentos = _DispSen?.Dados?.Sensores?.Where(x => x.Componente == S_Code.sCOR)?.Select(x => new OperacaoSensoriamentoLogBateriaBarramentoModel()
|
||||
{
|
||||
ID = x.ID,
|
||||
Iniciado = x.Inicializado,
|
||||
Descricao = x.Descricao,
|
||||
Tensao = x.ValoresLeituras?.FirstOrDefault(y => y.funcao == FuncoesPinout.Tensao)?.atual?.valor ?? -1,
|
||||
Corrente = x.ValoresLeituras?.FirstOrDefault(y => y.funcao == FuncoesPinout.Corrente)?.atual?.valor ?? -1,
|
||||
Potencia = x.ValoresLeituras?.FirstOrDefault(y => y.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? -1,
|
||||
Energia = x.ValoresLeituras?.FirstOrDefault(y => y.funcao == FuncoesPinout.Energia)?.atual?.valor ?? -1,
|
||||
Temperatura = x.ValoresLeituras?.FirstOrDefault(y => y.funcao == FuncoesPinout.Temperatura)?.atual?.valor ?? -1,
|
||||
}).ToList()
|
||||
} : new OperacaoSensoriamentoLogBateriaModel();
|
||||
|
||||
var dadosTrajetoria = new OperacaoSensoriamentoLogTrajetoriaModel()
|
||||
|
|
@ -2376,6 +2416,7 @@ namespace AgroBase.Models
|
|||
{
|
||||
Momento = DateTime.Now,
|
||||
Modo = Variaveis.OperacaoEmAndamento.Modo,
|
||||
Status = Variaveis.OperacaoEmAndamento.Status,
|
||||
OperacaoLiberada = Variaveis.OperacaoEmAndamento.OperacaoLiberada,
|
||||
OperacaoIniciada = Variaveis.OperacaoEmAndamento.Iniciado,
|
||||
Emergencia = Variaveis.OperacaoEmAndamento.Emergencia,
|
||||
|
|
@ -2404,6 +2445,7 @@ namespace AgroBase.Models
|
|||
ModulosSaude = HealthWorkerService.ModulosSaude.ToList(),
|
||||
DispositivosMapeados = new List<DispositivoDetalhesModel>(SerialService.DispositivosMapeados),
|
||||
ModsCalibragem = new Dictionary<T_Code, Dictionary<string, bool>>(Variaveis.OperacaoEmAndamento.ModsCalibragem),
|
||||
Temperaturas = _DispSen?.Dados?.Sensores?.Where(x => x.Componente == S_Code.sNTC)?.ToDictionary(x => x.ID, y => (double?)(y.ValoresLeituras?.FirstOrDefault(v => v.funcao == FuncoesPinout.Temperatura)?.atual?.valor) ?? -1),
|
||||
};
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura = dadosAtualizados;
|
||||
|
|
@ -2419,6 +2461,8 @@ namespace AgroBase.Models
|
|||
|
||||
return new OperacaoSensoriamentoLogModel()
|
||||
{
|
||||
Modo = Modo,
|
||||
Status = Status,
|
||||
Momento = Momento,
|
||||
ErroOperacaoLiberada = ErroOperacaoLiberada,
|
||||
OperacaoLiberada = OperacaoLiberada,
|
||||
|
|
@ -2448,6 +2492,7 @@ namespace AgroBase.Models
|
|||
ModulosSaude = new List<ManagerWorkerMessageResponseModulosPendentesModel>(ModulosSaude),
|
||||
DispositivosMapeados = new List<DispositivoDetalhesModel>(DispositivosMapeados),
|
||||
ModsCalibragem = new Dictionary<T_Code, Dictionary<string, bool>>(ModsCalibragem),
|
||||
Temperaturas = new Dictionary<string, double>(Temperaturas ?? new Dictionary<string, double>())
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -2494,6 +2539,8 @@ namespace AgroBase.Models
|
|||
public double PressaoLinha { get; set; }
|
||||
public double VazaoInstantanea { get; set; }
|
||||
public double VazaoMedia { get; set; }
|
||||
public bool ComandoBomba { get; set; }
|
||||
public bool LeituraComandoBomba { get; set; }
|
||||
public double LeituraPotenciaBomba { get; set; }
|
||||
public double VolumeVazaoMl { get; set; }
|
||||
|
||||
|
|
@ -2513,6 +2560,8 @@ namespace AgroBase.Models
|
|||
PressaoLinha = PressaoLinha,
|
||||
VazaoInstantanea = VazaoInstantanea,
|
||||
VazaoMedia = VazaoMedia,
|
||||
ComandoBomba = ComandoBomba,
|
||||
LeituraComandoBomba = LeituraComandoBomba,
|
||||
LeituraPotenciaBomba = LeituraPotenciaBomba,
|
||||
VolumeVazaoMl = VolumeVazaoMl
|
||||
};
|
||||
|
|
@ -2538,6 +2587,8 @@ namespace AgroBase.Models
|
|||
public (bool, List<string>) Dir_Status { get; set; }
|
||||
public (bool, List<string>) MovEsq_Status { get; set; }
|
||||
public (bool, List<string>) MovDir_Status { get; set; }
|
||||
public List<OperacaoSensoriamentoLogMvdMovModel> Dados { get; set; }
|
||||
|
||||
|
||||
public OperacaoSensoriamentoLogMvdModel Clone()
|
||||
{
|
||||
|
|
@ -2553,10 +2604,25 @@ namespace AgroBase.Models
|
|||
MovDir_Status = MovDir_Status,
|
||||
DistanciaPercorridaParcial = DistanciaPercorridaParcial,
|
||||
DistanciaPercorridaTotal = DistanciaPercorridaTotal,
|
||||
Dados = new List<OperacaoSensoriamentoLogMvdMovModel>(Dados ?? new List<OperacaoSensoriamentoLogMvdMovModel>()),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class OperacaoSensoriamentoLogMvdMovModel
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public double RPM_Roda { get; set; }
|
||||
public double TemperaturaDriver { get; set; }
|
||||
public double Tensao { get; set; }
|
||||
public double Corrente_Barramento { get; set; }
|
||||
public double Corrente_Motor { get; set; }
|
||||
public double Potencia { get; set; }
|
||||
public double CicloTrabalho { get; set; }
|
||||
public double RPM_Motor { get; set; }
|
||||
public double VelocidadeInstantanea { get; set; }
|
||||
}
|
||||
|
||||
public class OperacaoSensoriamentoLogBateriaModel
|
||||
{
|
||||
public bool Iniciado { get; set; }
|
||||
|
|
@ -2568,6 +2634,7 @@ namespace AgroBase.Models
|
|||
public double PotenciaInstantanea { get; set; }
|
||||
public double PotenciaAcumulada { get; set; }
|
||||
public double TempoEstimadoRestanteMinutos { get; set; }
|
||||
public List<OperacaoSensoriamentoLogBateriaBarramentoModel> Barramentos { get; set; }
|
||||
|
||||
public OperacaoSensoriamentoLogBateriaModel Clone()
|
||||
{
|
||||
|
|
@ -2580,11 +2647,24 @@ namespace AgroBase.Models
|
|||
TensaoInstantanea = TensaoInstantanea,
|
||||
PotenciaInstantanea = PotenciaInstantanea,
|
||||
PotenciaAcumulada = PotenciaAcumulada,
|
||||
TempoEstimadoRestanteMinutos = TempoEstimadoRestanteMinutos
|
||||
TempoEstimadoRestanteMinutos = TempoEstimadoRestanteMinutos,
|
||||
Barramentos = new List<OperacaoSensoriamentoLogBateriaBarramentoModel>(Barramentos ?? new List<OperacaoSensoriamentoLogBateriaBarramentoModel>())
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class OperacaoSensoriamentoLogBateriaBarramentoModel
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public bool Iniciado { get; set; }
|
||||
public string Descricao { get; set; }
|
||||
public double Tensao { get; set; }
|
||||
public double Corrente { get; set; }
|
||||
public double Potencia { get; set; }
|
||||
public double Energia { get; set; }
|
||||
public double Temperatura { get; set; }
|
||||
}
|
||||
|
||||
public class OperacaoSensoriamentoLogTrajetoriaModel
|
||||
{
|
||||
public StatusCarroMapa StatusCarro { get; set; }
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ namespace AgroBase.Services
|
|||
foreach (string comando in comandos)
|
||||
{
|
||||
byte[] bytesComando = Encoding.ASCII.GetBytes(comando);
|
||||
PortaGPS.Write(bytesComando, 0, bytesComando.Length);
|
||||
PortaGPS?.Write(bytesComando, 0, bytesComando.Length);
|
||||
await Task.Delay(1000); // Pequeno delay para evitar sobrecarga na comunicação
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,13 +174,13 @@ namespace AgroBase.Services
|
|||
bytes.AddRange(BitConverter.GetBytes((int)model.Dispositivo));
|
||||
|
||||
// Serializar RPM
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Controle.PercentualVelocidadeSP));
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Controle.PercentualVelocidadeSP ?? 0));
|
||||
|
||||
// Serializar AnguloMP
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Controle.AnguloSP));
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Controle.AnguloSP ?? 0));
|
||||
|
||||
// Serializar VelocidadeMP
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Controle.VelocidadeMP));
|
||||
//bytes.AddRange(BitConverter.GetBytes(model.Controle.VelocidadeMP ?? 0));
|
||||
|
||||
// Serializar Emergencia
|
||||
bytes.AddRange(BitConverter.GetBytes(model.Emergencia));
|
||||
|
|
@ -217,8 +217,8 @@ namespace AgroBase.Services
|
|||
index += sizeof(double);
|
||||
|
||||
// Desserializar VelocidadeMP
|
||||
model.Controle.VelocidadeMP = BitConverter.ToDouble(bytes, index);
|
||||
index += sizeof(double);
|
||||
//model.Controle.VelocidadeMP = BitConverter.ToDouble(bytes, index);
|
||||
//index += sizeof(double);
|
||||
|
||||
// Desserializar Emergencia
|
||||
model.Emergencia = BitConverter.ToBoolean(bytes, index);
|
||||
|
|
|
|||
|
|
@ -155,18 +155,18 @@
|
|||
<StackPanel Grid.Column="0">
|
||||
<DockPanel>
|
||||
<TextBlock Text="Velocidade " Foreground="#ddd"/>
|
||||
<TextBlock Text="{Binding SpeedPercent, ElementName=Root, StringFormat={}{0:0}%}" Foreground="#ddd" DockPanel.Dock="Right"/>
|
||||
<TextBlock Text="{Binding SpeedControl, ElementName=Root, StringFormat={}{0:0}%}" Foreground="#ddd" DockPanel.Dock="Right"/>
|
||||
</DockPanel>
|
||||
<Slider Minimum="0" Maximum="100" Value="{Binding SpeedPercent, ElementName=Root, Mode=TwoWay}"/>
|
||||
<Slider Minimum="0" Maximum="100" Value="{Binding SpeedControl, ElementName=Root, Mode=TwoWay}"/>
|
||||
|
||||
<DockPanel Margin="0 10 0 0">
|
||||
<TextBlock Text="Ângulo Máx " Foreground="#ddd"/>
|
||||
<TextBlock Text="{Binding MaxSteerDeg, ElementName=Root, StringFormat={}{0:0}°}" Foreground="#ddd" DockPanel.Dock="Right"/>
|
||||
<TextBlock Text="Ângulo " Foreground="#ddd"/>
|
||||
<TextBlock Text="{Binding AngleControl, ElementName=Root, StringFormat={}{0:0}°}" Foreground="#ddd" DockPanel.Dock="Right"/>
|
||||
</DockPanel>
|
||||
<Slider Minimum="0" Maximum="90" Value="{Binding MaxSteerDeg, ElementName=Root, Mode=TwoWay}"/>
|
||||
<Slider Minimum="0" Maximum="90" Value="{Binding AngleControl, ElementName=Root, Mode=TwoWay}"/>
|
||||
|
||||
<TextBlock Margin="0 10 0 0" Text="Tipo de Movimento" Foreground="#ddd"/>
|
||||
<ComboBox ItemsSource="{Binding MoveModes, ElementName=Root}" SelectedItem="{Binding SelectedMoveMode, ElementName=Root, Mode=TwoWay}"/>
|
||||
<ComboBox ItemsSource="{Binding MoveModes, ElementName=Root}" SelectedItem="{Binding MoveTypeControl, ElementName=Root, Mode=TwoWay}"/>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ using Binding = System.Windows.Data.Binding;
|
|||
using Application = System.Windows.Application;
|
||||
using Point = System.Windows.Point;
|
||||
using Size = System.Windows.Size;
|
||||
using Mapsui;
|
||||
|
||||
namespace OperationControl.Controls
|
||||
{
|
||||
|
|
@ -20,12 +19,9 @@ namespace OperationControl.Controls
|
|||
public partial class ManualControlPad : UserControl, INotifyPropertyChanged
|
||||
{
|
||||
public ObservableCollection<string> MoveModes { get; } = new();
|
||||
private string _selectedMoveMode;
|
||||
public string SelectedMoveMode
|
||||
{
|
||||
get => _selectedMoveMode;
|
||||
set { _selectedMoveMode = value; /* Raise se precisar */ }
|
||||
}
|
||||
private HashSet<Key> _pressedKeys = new();
|
||||
private AgroBase.Models.Enums.Direcao _lastMovKey = AgroBase.Models.Enums.Direcao.Parado;
|
||||
private AgroBase.Models.Enums.Direcao _lastDirKey = AgroBase.Models.Enums.Direcao.Parado;
|
||||
|
||||
public ManualControlPad()
|
||||
{
|
||||
|
|
@ -36,7 +32,7 @@ namespace OperationControl.Controls
|
|||
{
|
||||
MoveModes.Add(t);
|
||||
}
|
||||
SelectedMoveMode = MoveModes[0];
|
||||
MoveTypeControl = MoveType;
|
||||
|
||||
Loaded += (_, __) => UpdateThumb();
|
||||
SizeChanged += (_, __) => { if (ManualContainer.Height > 0) AnimateManual(true, instant: true); };
|
||||
|
|
@ -44,7 +40,6 @@ namespace OperationControl.Controls
|
|||
EmergencyClicked += ManualControlPad_EmergencyClicked;
|
||||
PauseClicked += ManualControlPad_PauseClicked;
|
||||
ReferenceClicked += ManualControlPad_ReferenceClicked;
|
||||
ModeChanged += ManualControlPad_ModeChanged;
|
||||
CommandChanged += ManualControlPad_CommandChanged;
|
||||
}
|
||||
|
||||
|
|
@ -78,8 +73,14 @@ namespace OperationControl.Controls
|
|||
public static readonly DependencyProperty MoveTypeProperty = DependencyProperty.Register(nameof(MoveType), typeof(AgroBase.Models.Enums.TipoMovimentoDirecional), typeof(ManualControlPad), new PropertyMetadata(AgroBase.Models.Enums.TipoMovimentoDirecional.RodasDianteiras));
|
||||
|
||||
// ======= Ajustes (painel manual) =======
|
||||
public double SpeedPercent { get => (double)GetValue(SpeedPercentProperty); set => SetValue(SpeedPercentProperty, value); }
|
||||
public static readonly DependencyProperty SpeedPercentProperty = DependencyProperty.Register(nameof(SpeedPercent), typeof(double), typeof(ManualControlPad), new FrameworkPropertyMetadata(0d, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
|
||||
public double SpeedControl { get => (double)GetValue(SpeedControlProperty); set => SetValue(SpeedControlProperty, value); }
|
||||
public static readonly DependencyProperty SpeedControlProperty = DependencyProperty.Register(nameof(SpeedControl), typeof(double), typeof(ManualControlPad), new FrameworkPropertyMetadata(0d, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
|
||||
|
||||
public double AngleControl { get => (double)GetValue(AngleControlProperty); set => SetValue(AngleControlProperty, value); }
|
||||
public static readonly DependencyProperty AngleControlProperty = DependencyProperty.Register(nameof(AngleControl), typeof(double), typeof(ManualControlPad), new FrameworkPropertyMetadata(0d, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
|
||||
|
||||
public AgroBase.Models.Enums.TipoMovimentoDirecional MoveTypeControl { get => (AgroBase.Models.Enums.TipoMovimentoDirecional)GetValue(MoveTypeControlProperty); set => SetValue(MoveTypeControlProperty, value); }
|
||||
public static readonly DependencyProperty MoveTypeControlProperty = DependencyProperty.Register(nameof(MoveTypeControl), typeof(AgroBase.Models.Enums.TipoMovimentoDirecional), typeof(ManualControlPad), new PropertyMetadata(AgroBase.Models.Enums.TipoMovimentoDirecional.RodasDianteiras));
|
||||
|
||||
public double MaxSteerDeg { get => (double)GetValue(MaxSteerDegProperty); set => SetValue(MaxSteerDegProperty, value); }
|
||||
public static readonly DependencyProperty MaxSteerDegProperty = DependencyProperty.Register(nameof(MaxSteerDeg), typeof(double), typeof(ManualControlPad), new FrameworkPropertyMetadata(30d, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
|
||||
|
|
@ -94,7 +95,6 @@ namespace OperationControl.Controls
|
|||
public event EventHandler EmergencyClicked;
|
||||
public event EventHandler PauseClicked;
|
||||
public event EventHandler ReferenceClicked;
|
||||
public event EventHandler ModeChanged;
|
||||
public event EventHandler CommandChanged;
|
||||
|
||||
// Botões
|
||||
|
|
@ -105,10 +105,16 @@ namespace OperationControl.Controls
|
|||
// Modo Manual → anima painel
|
||||
void OnManualToggle(object s, RoutedEventArgs e)
|
||||
{
|
||||
bool on = TgManual.IsChecked == true;
|
||||
AnimateManual(on);
|
||||
if (!on) { SteerCmd = 0; ThrottleCmd = 0; }
|
||||
bool manual_on = TgManual.IsChecked == true;
|
||||
AnimateManual(manual_on);
|
||||
if (!manual_on) { SteerCmd = 0; ThrottleCmd = 0; }
|
||||
Focus(); // captura teclado se precisar
|
||||
|
||||
VariaveisControleOperacao.RoverEmFoco!.Controle.MovimentoAutomatico = !manual_on;
|
||||
VariaveisControleOperacao.EnviarParametrosOperacao(new AgroBase.Models.Operacoes.OperacaoParametrosModel()
|
||||
{
|
||||
Controle = VariaveisControleOperacao.RoverEmFoco?.Controle
|
||||
});
|
||||
}
|
||||
|
||||
void AnimateManual(bool open, bool instant = false)
|
||||
|
|
@ -162,34 +168,76 @@ namespace OperationControl.Controls
|
|||
{
|
||||
base.OnPreviewKeyDown(e);
|
||||
if (TgManual.IsChecked != true) return;
|
||||
|
||||
// Se já está pressionada, IGNORA (é evento repetido)
|
||||
if (_pressedKeys.Contains(e.Key))
|
||||
{
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Marca como pressionada (primeira vez)
|
||||
_pressedKeys.Add(e.Key);
|
||||
|
||||
switch (e.Key)
|
||||
{
|
||||
case Key.W:
|
||||
case Key.Up: ThrottleCmd = 1; e.Handled = true; break;
|
||||
case Key.Up:
|
||||
ThrottleCmd = 1;
|
||||
break;
|
||||
|
||||
case Key.S:
|
||||
case Key.Down: ThrottleCmd = -1; e.Handled = true; break;
|
||||
case Key.Down:
|
||||
ThrottleCmd = -1;
|
||||
break;
|
||||
|
||||
case Key.D:
|
||||
case Key.Right: SteerCmd = 1; e.Handled = true; break;
|
||||
case Key.Right:
|
||||
SteerCmd = 1;
|
||||
break;
|
||||
|
||||
case Key.A:
|
||||
case Key.Left: SteerCmd = -1; e.Handled = true; break;
|
||||
case Key.Space: SteerCmd = 0; ThrottleCmd = 0; e.Handled = true; break;
|
||||
case Key.Escape: TgManual.IsChecked = false; OnManualToggle(null, null); e.Handled = true; break;
|
||||
case Key.Left:
|
||||
SteerCmd = -1;
|
||||
break;
|
||||
|
||||
case Key.Space:
|
||||
SteerCmd = 0;
|
||||
ThrottleCmd = 0;
|
||||
break;
|
||||
|
||||
case Key.Escape:
|
||||
TgManual.IsChecked = false;
|
||||
OnManualToggle(null, null);
|
||||
break;
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
protected override void OnPreviewKeyUp(KeyEventArgs e)
|
||||
{
|
||||
base.OnPreviewKeyUp(e);
|
||||
if (TgManual.IsChecked != true) return;
|
||||
|
||||
// Remove do set (agora pode receber keydown de novo)
|
||||
_pressedKeys.Remove(e.Key);
|
||||
|
||||
switch (e.Key)
|
||||
{
|
||||
case Key.W:
|
||||
case Key.Up:
|
||||
case Key.S:
|
||||
case Key.Down: if (ThrottleCmd != 0) ThrottleCmd = 0; break;
|
||||
case Key.Down:
|
||||
ThrottleCmd = 0;
|
||||
break;
|
||||
|
||||
case Key.D:
|
||||
case Key.Right:
|
||||
case Key.A:
|
||||
case Key.Left: if (SteerCmd != 0) SteerCmd = 0; break;
|
||||
case Key.Left:
|
||||
SteerCmd = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -226,13 +274,12 @@ namespace OperationControl.Controls
|
|||
|
||||
|
||||
|
||||
public void AtualizarDadosControle(double? angMax = null, double? angSp = null, double? angCur = null, AgroBase.Models.Enums.TipoMovimentoDirecional? tipoMov = null, double? velPct = null, double? velSp = null, double? velKmh = null, bool? emg = null, bool? pause = null, bool? refing = null)
|
||||
public void AtualizarDadosControle(double? angMax = null, double? angSp = null, double? angCur = null, AgroBase.Models.Enums.TipoMovimentoDirecional? tipoMov = null, double? velSp = null, double? velKmh = null, bool? emg = null, bool? pause = null, bool? refing = null)
|
||||
{
|
||||
if (angMax != null) MaxSteerDeg = (double)angMax;
|
||||
if (angSp != null) AngleSpDeg = (double)angSp;
|
||||
if (angCur != null) AngleCurDeg = (double)angCur;
|
||||
if (tipoMov != null) MoveType = (AgroBase.Models.Enums.TipoMovimentoDirecional)tipoMov;
|
||||
if (velPct != null) SpeedPercent = (double)velPct;
|
||||
if (velSp != null) SpeedSpKmh = (double)velSp;
|
||||
if (velKmh != null) SpeedCurKmh = (double)velKmh;
|
||||
if (emg != null) EmergencyActivated = (bool)emg;
|
||||
|
|
@ -250,7 +297,7 @@ namespace OperationControl.Controls
|
|||
|
||||
private void ManualControlPad_PauseClicked(object? sender, EventArgs e)
|
||||
{
|
||||
if (VariaveisControleOperacao.RoverEmFoco.DadosLeitura?.OperacaoIniciada ?? false)
|
||||
if (VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.OperacaoIniciada ?? false)
|
||||
{
|
||||
//PauseActivated = !PauseActivated;
|
||||
//VariaveisControleOperacao.EnviarComandoParada(pausa: PauseActivated);
|
||||
|
|
@ -283,12 +330,25 @@ namespace OperationControl.Controls
|
|||
|
||||
private void ManualControlPad_CommandChanged(object? sender, EventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
AgroBase.Models.Enums.Direcao dir =
|
||||
_steerCmd < 0 ? AgroBase.Models.Enums.Direcao.Esquerda :
|
||||
_steerCmd > 0 ? AgroBase.Models.Enums.Direcao.Direita :
|
||||
AgroBase.Models.Enums.Direcao.Parado;
|
||||
if (_lastDirKey != dir)
|
||||
{
|
||||
VariaveisControleOperacao.EnviarComandoDirecional(dir, Convert.ToInt32(AngleControl), MoveTypeControl);
|
||||
_lastDirKey = dir;
|
||||
}
|
||||
|
||||
private void ManualControlPad_ModeChanged(object? sender, EventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
AgroBase.Models.Enums.Direcao mov =
|
||||
_throttleCmd < 0 ? AgroBase.Models.Enums.Direcao.Baixo :
|
||||
_throttleCmd > 0 ? AgroBase.Models.Enums.Direcao.Cima :
|
||||
AgroBase.Models.Enums.Direcao.Parado;
|
||||
if (_lastMovKey != mov)
|
||||
{
|
||||
VariaveisControleOperacao.EnviarComandoMovimentacao(mov, Convert.ToInt32(SpeedControl));
|
||||
_lastMovKey = mov;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,17 @@ namespace OperationControl.Models
|
|||
private static double TempoRoverVivo = 5.0;
|
||||
private static bool AdicionandoNovoRover = false;
|
||||
private static bool AtualizandoListaRovers = false;
|
||||
public static AgroBase.Models.Enums.StatusModulo StatusBase
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((Variaveis.GpsService?.IsConnected ?? false) && (Variaveis.GpsService?.BaseFix?.CorrecaoAbsoluta ?? false))
|
||||
return AgroBase.Models.Enums.StatusModulo.Operante;
|
||||
if (Variaveis.GpsService?.IsConnected ?? false)
|
||||
return AgroBase.Models.Enums.StatusModulo.Alerta;
|
||||
return AgroBase.Models.Enums.StatusModulo.Desconectado;
|
||||
}
|
||||
}
|
||||
public static List<OperacaoParametrosModel> RoversNaRede { get; set; } = new List<OperacaoParametrosModel>();
|
||||
public static string SelectedRoverId { get; set; } = BaseMarkerID;
|
||||
public static OperacaoParametrosModel? RoverEmFoco => RoversNaRede.FirstOrDefault(x => x.RoverId == SelectedRoverId);
|
||||
|
|
@ -274,6 +285,7 @@ namespace OperationControl.Models
|
|||
EnviarDadosControle(SelectedRoverId, new OperacaoComandoBaseModel()
|
||||
{
|
||||
Momento = DateTime.Now,
|
||||
Dispositivo = AgroBase.Models.Enums.T_Code.Dir,
|
||||
Tecla = AgroBase.Models.Enums.BotoesJoystick.R3
|
||||
});
|
||||
}
|
||||
|
|
@ -312,6 +324,52 @@ namespace OperationControl.Models
|
|||
});
|
||||
}
|
||||
|
||||
private static AgroBase.Models.Enums.BotoesJoystick DeParaDirecaoTecla(AgroBase.Models.Enums.Direcao direcao)
|
||||
{
|
||||
switch (direcao)
|
||||
{
|
||||
case AgroBase.Models.Enums.Direcao.Esquerda:
|
||||
return AgroBase.GeneralJoystick.DeParaComandos.FirstOrDefault(x => x.key == Keys.Left)?.botaoJoy ?? AgroBase.Models.Enums.BotoesJoystick.Vazio;
|
||||
case AgroBase.Models.Enums.Direcao.Direita:
|
||||
return AgroBase.GeneralJoystick.DeParaComandos.FirstOrDefault(x => x.key == Keys.Right)?.botaoJoy ?? AgroBase.Models.Enums.BotoesJoystick.Vazio;
|
||||
case AgroBase.Models.Enums.Direcao.Cima:
|
||||
return AgroBase.GeneralJoystick.DeParaComandos.FirstOrDefault(x => x.key == Keys.Up)?.botaoJoy ?? AgroBase.Models.Enums.BotoesJoystick.Vazio;
|
||||
case AgroBase.Models.Enums.Direcao.Baixo:
|
||||
return AgroBase.GeneralJoystick.DeParaComandos.FirstOrDefault(x => x.key == Keys.Down)?.botaoJoy ?? AgroBase.Models.Enums.BotoesJoystick.Vazio;
|
||||
default:
|
||||
return AgroBase.Models.Enums.BotoesJoystick.Vazio;
|
||||
}
|
||||
}
|
||||
|
||||
public static void EnviarComandoDirecional(AgroBase.Models.Enums.Direcao direcao, double angulo, AgroBase.Models.Enums.TipoMovimentoDirecional movimento)
|
||||
{
|
||||
EnviarDadosControle(SelectedRoverId, new OperacaoComandoBaseModel()
|
||||
{
|
||||
Momento = DateTime.Now,
|
||||
Dispositivo = AgroBase.Models.Enums.T_Code.Dir,
|
||||
Tecla = DeParaDirecaoTecla(direcao),
|
||||
Controle = new OperacaoComandoBaseControleModel()
|
||||
{
|
||||
AnguloSP = angulo,
|
||||
TipoMovimentoDirecional = movimento
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void EnviarComandoMovimentacao(AgroBase.Models.Enums.Direcao direcao, double velocidade)
|
||||
{
|
||||
EnviarDadosControle(SelectedRoverId, new OperacaoComandoBaseModel()
|
||||
{
|
||||
Momento = DateTime.Now,
|
||||
Dispositivo = AgroBase.Models.Enums.T_Code.Mov,
|
||||
Tecla = DeParaDirecaoTecla(direcao),
|
||||
Controle = new OperacaoComandoBaseControleModel()
|
||||
{
|
||||
PercentualVelocidadeSP = velocidade
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void EnviarComandoAtuador(string componente_id, bool status)
|
||||
{
|
||||
EnviarDadosControle(SelectedRoverId, new OperacaoComandoBaseModel()
|
||||
|
|
|
|||
|
|
@ -40,11 +40,9 @@
|
|||
<Canvas Height="64" VerticalAlignment="Bottom">
|
||||
<Image HorizontalAlignment="Center" Height="66" VerticalAlignment="Top" Width="94" Source="/Resources/logo.png" Canvas.Top="2" Canvas.Left="1"/>
|
||||
<Label Content="Rover em foco" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="100" Canvas.Top="9"/>
|
||||
<Label Content="OK" Style="{StaticResource RoundedLabel}" Background="Green" Height="22" Width="50" Canvas.Left="393" Canvas.Top="11" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
<ComboBox x:Name="cmbDispositivo" HorizontalAlignment="Left" VerticalAlignment="Center" Width="164" Canvas.Left="224" Canvas.Top="11" SelectionChanged="cmbDispositivo_SelectionChanged">
|
||||
<ComboBoxItem Content="R0-NS241436"/>
|
||||
<ComboBoxItem Content="R1-NS561486"/>
|
||||
</ComboBox>
|
||||
<Label x:Name="lblDispositivos_Status" Content="Desconectado" Style="{StaticResource RoundedLabel}" Height="26" Width="76" Canvas.Left="367" Canvas.Top="9" HorizontalAlignment="Center" VerticalAlignment="Top" IsEnabled="False"/>
|
||||
<ComboBox x:Name="cmbDispositivo" HorizontalAlignment="Left" VerticalAlignment="Center" Width="138" Canvas.Left="224" Canvas.Top="11" SelectionChanged="cmbDispositivo_SelectionChanged"/>
|
||||
|
||||
<Label Content="Liberado | Automático | EmAndamento | CaminhandoRua" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="100" Canvas.Top="32"/>
|
||||
</Canvas>
|
||||
</Border>
|
||||
|
|
@ -87,49 +85,49 @@
|
|||
<Label Content="Diagnóstios" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="10" Canvas.Top="-5" FontWeight="Bold"/>
|
||||
<TextBlock x:Name="lblDiagnosticos_Impedimento" Text="Impedimento: Nenhum" HorizontalAlignment="Left" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="9" Canvas.Top="15" Width="428" Canvas.Left="10"/>
|
||||
<Image HorizontalAlignment="Center" Height="359" VerticalAlignment="Top" Width="308" Source="/Resources/robo_superior.jpg" Stretch="UniformToFill" Canvas.Left="70" Canvas.Top="71"/>
|
||||
<Label x:Name="lblDiagnosticos_BAT" Content="🔒BAT" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="37" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB3v" Content="🔒B3V3" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="84" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB5V" Content="🔒B5V0" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="131" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB7V2" Content="🔒B7V2" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="178" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB12V" Content="🔒B12V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="225" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB19V" Content="🔒B19V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="272" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB24V" Content="🔒B24V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="319" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB36V" Content="🔒B36V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="366" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_BAT" Tag="sCOR" Content="🔒BAT" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="37" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB3V" Tag="sCOR" Content="🔒B3V3" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="84" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB5V" Tag="sCOR" Content="🔒B5V0" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="131" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB7V2" Tag="sCOR" Content="🔒B7V2" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="178" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB12V" Tag="sCOR" Content="🔒B12V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="225" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB19V" Tag="sCOR" Content="🔒B19V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="272" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB24V" Tag="sCOR" Content="🔒B24V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="319" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_AB36V" Tag="sCOR" Content="🔒B36V" Style="{StaticResource RoundedLabel}" Height="21" Width="42" Canvas.Left="366" Canvas.Top="76" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_DIR_DF" Content="🔒DIR" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="102" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_MOV_DF" Content="🔒MOV" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FRODF" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="346" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVDF" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="154" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FRODF" Tag="sFRO" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="346" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVDF" Tag="sNTC" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="154" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_DIR_EF" Content="🔒DIR" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="102" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_MOV_EF" Content="🔒MOV" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FROEF" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="53" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVEF" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="154" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FROEF" Tag="sFRO" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="53" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVEF" Tag="sNTC" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="154" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_DIR_ET" Content="🔒DIR" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="280" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_MOV_ET" Content="🔒MOV" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FROET" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="53" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVET" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="332" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FROET" Tag="sFRO" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="53" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVET" Tag="sNTC" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="99" Canvas.Top="332" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_DIR_DT" Content="🔒DIR" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="280" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_MOV_DT" Content="🔒MOV" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FRODT" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="346" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVDT" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="332" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_FRODT" Tag="sFRO" Content="🔒FRO" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="346" Canvas.Top="306" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_TMVDT" Tag="sNTC" Content="🔒TMP" Style="{StaticResource RoundedLabel}" Height="21" Width="41" Canvas.Left="300" Canvas.Top="332" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SNR" Content="🔒SNR" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="102" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_LVX" Content="🔒LDR" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="128" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_IMU" Content="🔒IMU" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="154" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_GPS" Content="🔒GPS" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="192" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN" Content="🔒SEN" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="218" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN" Tag="sMOD" Content="🔒SEN" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="218" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_NPC" Content="🔒NCP" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="244" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_BOMBA" Content="🔒BMB" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="309" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU" Content="🔒ATU" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="349" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_PRSLN" Content="🔒PRS" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_FLXLN" Content="🔒FLX" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="155" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_MASRS" Content="🔒MAS" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="249" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B01" Content="🔒B01" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="75" Canvas.Top="411" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B02" Content="🔒B02" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="143" Canvas.Top="412" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B03" Content="🔒B03" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="254" Canvas.Top="412" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B04" Content="🔒B04" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="322" Canvas.Top="411" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_BOMBA" Tag="sBMB" Content="🔒BMB" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="309" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU" Tag="sMOD" Content="🔒ATU" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="349" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_PRSLN" Tag="sPRS" Content="🔒PRS" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="202" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_FLXLN" Tag="sFLX" Content="🔒FLX" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="155" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_MASRS" Tag="sMAS" Content="🔒MAS" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="249" Canvas.Top="386" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B01" Tag="sBIC" Content="🔒B01" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="75" Canvas.Top="411" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B02" Tag="sBIC" Content="🔒B02" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="143" Canvas.Top="412" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B03" Tag="sBIC" Content="🔒B03" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="254" Canvas.Top="412" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_ATU_B04" Tag="sBIC" Content="🔒B04" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="322" Canvas.Top="411" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_CAM" Content="🔒CAM" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="204" Canvas.Top="411" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDOP" Content="🔒OP" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="192" HorizontalAlignment="Left" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDMN" Content="🔒MN" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="218" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDAT" Content="🔒AT" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="244" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDOP" Tag="sLED" Content="🔒OP" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="192" HorizontalAlignment="Left" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDMN" Tag="sLED" Content="🔒MN" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="218" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<Label x:Name="lblDiagnosticos_SEN_LEDAT" Tag="sLED" Content="🔒AT" Style="{StaticResource RoundedLabel}" Height="21" Width="40" Canvas.Left="10" Canvas.Top="244" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
</Canvas>
|
||||
</Border>
|
||||
|
||||
|
|
@ -149,16 +147,19 @@
|
|||
|
||||
<Border HorizontalAlignment="Center" BorderBrush="Black" BorderThickness="1" Height="230" Width="438" VerticalAlignment="Top" Canvas.Left="5" Canvas.Top="94">
|
||||
<TabControl x:Name="tab_Saude">
|
||||
|
||||
<TabItem x:Name="tabSaude_CondicoesOperacionais" Header="Condições Operacionais">
|
||||
<Canvas>
|
||||
<ListBox x:Name="lstSaude_CondicoesOperacionais" Height="228" Width="430" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="9"/>
|
||||
</Canvas>
|
||||
</TabItem>
|
||||
|
||||
<TabItem x:Name="tabSaude_Acompanhamento" Header="Acompanhamento">
|
||||
<Canvas>
|
||||
<scott:WpfPlot x:Name="Plot"/>
|
||||
<scott:WpfPlot x:Name="pltSaude_Acompanhamento" Height="200" Width="430"/>
|
||||
</Canvas>
|
||||
</TabItem>
|
||||
|
||||
<TabItem x:Name="tabSaude_Opcoes" Header="Opções">
|
||||
<Grid Margin="5">
|
||||
<Grid.RowDefinitions>
|
||||
|
|
@ -235,15 +236,83 @@
|
|||
<!-- Espaço livre pra futuro (temperatura, etc.) -->
|
||||
<Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="3">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Extra" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock x:Name="txtBico_Extra" FontSize="10" Text="—"/>
|
||||
<TextBlock Text="Atuações" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock x:Name="txtBico_Atuacoes" FontSize="10" Text="—"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Painel específico de Bomba (ATU + Bomba principal) -->
|
||||
<StackPanel x:Name="panelOpcoes_Bomba" Grid.Row="0" Visibility="Collapsed">
|
||||
|
||||
<!-- Linha de comandos principais -->
|
||||
<StackPanel Orientation="Horizontal">
|
||||
|
||||
<!-- Ligar / Desligar -->
|
||||
<Button x:Name="btnBomba_Ligar" Content="Ligar" Width="80" Margin="0,0,5,0" Click="btnBomba_Ligar_Click"/>
|
||||
|
||||
<Button x:Name="btnBomba_Desligar" Content="Desligar" Width="80" Margin="0,0,10,0" Click="btnBomba_Desligar_Click"/>
|
||||
|
||||
<!-- Ajuste de pressão da linha -->
|
||||
<TextBlock Text="Pressão alvo:" VerticalAlignment="Center" Margin="0,0,5,0" FontSize="10"/>
|
||||
|
||||
<!-- Slider de pressão (ex.: 0 a 10 bar) -->
|
||||
<Slider x:Name="sldBomba_PressaoAlvo" Width="120" Minimum="0" Maximum="150" TickFrequency="0.5" IsSnapToTickEnabled="True" Margin="0,0,5,0" ValueChanged="sldBomba_PressaoAlvo_ValueChanged"/>
|
||||
|
||||
<!-- Label mostrando valor da pressão alvo -->
|
||||
<Label x:Name="lblBomba_PressaoAlvo" Content="0,0 bar" VerticalAlignment="Center" FontSize="10"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Título / identificação -->
|
||||
<TextBlock x:Name="txtBomba_Titulo" FontWeight="Bold" FontSize="11" Text="Bomba - Testes" Margin="0,5,0,5"/>
|
||||
|
||||
<!-- “Cartõezinhos” de status -->
|
||||
<UniformGrid Rows="2" Columns="2" Margin="0,0,0,0">
|
||||
|
||||
<!-- Comando enviado -->
|
||||
<Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="3">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Comando enviado" FontSize="9" FontWeight="Bold"/>
|
||||
<!-- Texto: Ligado / Desligado -->
|
||||
<TextBlock x:Name="txtBomba_Comando" FontSize="10" Text="—"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Status real -->
|
||||
<Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="3">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Status real" FontSize="9" FontWeight="Bold"/>
|
||||
<!-- Texto: Ligada / Desligada -->
|
||||
<TextBlock x:Name="txtBomba_StatusReal" FontSize="10" Text="—"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Pressão da linha (leitura) -->
|
||||
<Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="3">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Pressão linha (leitura)" FontSize="9" FontWeight="Bold"/>
|
||||
<!-- Ex.: 3,5 bar -->
|
||||
<TextBlock x:Name="txtBomba_PressaoLinha" FontSize="10" Text="0,0 bar"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Potência aplicada -->
|
||||
<Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="3">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Potência aplicada" FontSize="9" FontWeight="Bold"/>
|
||||
<!-- Ex.: 75 % ou 1.2 kW -->
|
||||
<TextBlock x:Name="txtBomba_Potencia" FontSize="10" Text="0 %"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</TabItem>
|
||||
|
||||
</TabControl>
|
||||
</Border>
|
||||
</Canvas>
|
||||
|
|
@ -333,7 +402,6 @@
|
|||
<Border x:Name="brdBicos" BorderBrush="Black" BorderThickness="1" CornerRadius="8" Margin="1453,523,7,421">
|
||||
<Canvas>
|
||||
<Image HorizontalAlignment="Left" Height="59" VerticalAlignment="Center" Width="454" Source="/Resources/barra.jpg" Canvas.Top="2" Canvas.Left="2" Stretch="UniformToFill"/>
|
||||
<Button x:Name="btnB0" Content="Ligar" Height="20" Canvas.Left="2" Width="58" HorizontalAlignment="Left" VerticalAlignment="Center" Canvas.Top="32" Click="btnB0_Click"/>
|
||||
</Canvas>
|
||||
</Border>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +1,11 @@
|
|||
using System.Windows;
|
||||
|
||||
using ScottPlot; // Plot
|
||||
using ScottPlot.Plottables; // ISignal / IScatter
|
||||
using System.Timers;
|
||||
using Colors = ScottPlot.Colors; // Timer
|
||||
|
||||
using ScottPlot;
|
||||
using System.Windows.Threading;
|
||||
using OperationControl.Controls;
|
||||
using System.Diagnostics;
|
||||
using OperationControl.Models;
|
||||
using AgroBase.Models.Components;
|
||||
using OperationControl.Services;
|
||||
using System.Windows.Controls;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Media;
|
||||
using DotSpatial.Projections.Transforms;
|
||||
using System;
|
||||
using LibVLCSharp.Shared;
|
||||
using System.Windows.Input;
|
||||
using System.IO;
|
||||
|
|
@ -26,7 +16,6 @@ using MessageBox = System.Windows.MessageBox;
|
|||
using Brush = System.Windows.Media.Brush;
|
||||
using Brushes = System.Windows.Media.Brushes;
|
||||
using Label = System.Windows.Controls.Label;
|
||||
using AgroBase.Models.Operadores;
|
||||
|
||||
namespace OperationControl.Windows
|
||||
{
|
||||
|
|
@ -36,18 +25,9 @@ namespace OperationControl.Windows
|
|||
public partial class MainWindow : Window
|
||||
{
|
||||
// buffers (X = tempo em segundos)
|
||||
private readonly List<double> xs = new();
|
||||
private readonly List<double> ysCorr = new(); // Corrente (A)
|
||||
private readonly List<double> ysVolt = new(); // Tensão (V)
|
||||
private readonly List<double> ysTemp = new(); // Temperatura (°C)
|
||||
private readonly List<double> ysRpm = new(); // RPM
|
||||
|
||||
private readonly System.Timers.Timer tmr = new(1000) { AutoReset = true }; // 10 Hz
|
||||
private double t = 0;
|
||||
private readonly Random rng = new();
|
||||
|
||||
DispatcherTimer _clock = new DispatcherTimer();
|
||||
Random _rand = new Random();
|
||||
private DateTime? _tempoInicioAcompanhamento;
|
||||
private List<double> pltAcompanhamento_x = new();
|
||||
private List<List<double>> pltAcompanhamento_y = new();
|
||||
|
||||
private LibVLC _libVLC;
|
||||
private MediaPlayer _playerFront;
|
||||
|
|
@ -66,23 +46,10 @@ namespace OperationControl.Windows
|
|||
AtualizarListaDispositivos(new List<string>() { VariaveisControleOperacao.SelectedRoverId });
|
||||
|
||||
|
||||
// Título / eixos
|
||||
Plot.Plot.Title("MOV ET – Corrente / Tensão / Temp / RPM (últimos 60s)");
|
||||
Plot.Plot.Axes.Bottom.Label.Text = "Tempo (s)";
|
||||
Plot.Plot.Axes.Left.Label.Text = "Unidades (A, V, °C, RPM)";
|
||||
|
||||
// inicializa com um ponto para cada série
|
||||
PushSample(initial: true);
|
||||
|
||||
// legenda
|
||||
Plot.Plot.ShowLegend(Alignment.UpperRight);
|
||||
|
||||
// loop
|
||||
tmr.Elapsed += (_, __) => Dispatcher.Invoke(() => PushSample());
|
||||
tmr.Start();
|
||||
|
||||
|
||||
|
||||
DataContext = this;
|
||||
//DataContext = this;
|
||||
|
||||
// atualizar as caixas
|
||||
//BBoxes3D.SetBboxes(new[]
|
||||
|
|
@ -123,80 +90,6 @@ namespace OperationControl.Windows
|
|||
_libVLC?.Dispose();
|
||||
}
|
||||
|
||||
private void PushSample(bool initial = false)
|
||||
{
|
||||
// avança tempo
|
||||
if (!initial) t += 1; // 10 Hz
|
||||
xs.Add(t);
|
||||
|
||||
// ------- MOCK de dados plausíveis -------
|
||||
// Corrente (A): 3–12 A com ruído
|
||||
double corr = 8 + 2 * Math.Sin(t * 0.7) + (rng.NextDouble() - 0.5);
|
||||
corr = Math.Clamp(corr, 0, 30);
|
||||
|
||||
// Tensão (V): 36–42 V, ripple leve e queda lenta
|
||||
double volt = 40.5 + 0.6 * Math.Sin(t * 0.15) - 0.002 * t;
|
||||
volt = Math.Clamp(volt, 30, 42);
|
||||
|
||||
// Temperatura (°C): sobe devagar
|
||||
double temp = 38 + 4 * Math.Sin(t * 0.05) + 0.01 * t;
|
||||
temp = Math.Clamp(temp, 20, 85);
|
||||
|
||||
// RPM: 0–1500 com variação
|
||||
double rpm = 1100 + 200 * Math.Sin(t * 0.9) + 80 * (rng.NextDouble() - 0.5);
|
||||
rpm = Math.Clamp(rpm, 0, 2000);
|
||||
|
||||
ysCorr.Add(corr);
|
||||
ysVolt.Add(volt);
|
||||
ysTemp.Add(temp);
|
||||
ysRpm.Add(rpm);
|
||||
|
||||
// mantém só últimos 60 s
|
||||
while (xs.Count > 0 && xs[^1] - xs[0] > 60.0)
|
||||
{
|
||||
xs.RemoveAt(0);
|
||||
ysCorr.RemoveAt(0);
|
||||
ysVolt.RemoveAt(0);
|
||||
ysTemp.RemoveAt(0);
|
||||
ysRpm.RemoveAt(0);
|
||||
}
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
Plot.Plot.Clear();
|
||||
|
||||
// Corrente (A)
|
||||
var scCorr = Plot.Plot.Add.Scatter(xs.ToArray(), ysCorr.ToArray());
|
||||
scCorr.Label = "Corrente (A)";
|
||||
scCorr.Color = ScottPlot.Colors.Cyan;
|
||||
scCorr.LineWidth = 2;
|
||||
|
||||
// Tensão (V)
|
||||
var scVolt = Plot.Plot.Add.Scatter(xs.ToArray(), ysVolt.ToArray());
|
||||
scVolt.Label = "Tensão (V)";
|
||||
scVolt.Color = ScottPlot.Colors.Lime;
|
||||
scVolt.LineWidth = 2;
|
||||
|
||||
// Temperatura (°C)
|
||||
var scTemp = Plot.Plot.Add.Scatter(xs.ToArray(), ysTemp.ToArray());
|
||||
scTemp.Label = "Temp (°C)";
|
||||
scTemp.Color = ScottPlot.Colors.Magenta;
|
||||
scTemp.LineWidth = 2;
|
||||
|
||||
// RPM
|
||||
var scRpm = Plot.Plot.Add.Scatter(xs.ToArray(), ysRpm.ToArray());
|
||||
scRpm.Label = "RPM";
|
||||
scRpm.Color = ScottPlot.Colors.Orange;
|
||||
scRpm.LineWidth = 2;
|
||||
|
||||
// janela de 60 s rolando
|
||||
double xEnd = xs[^1];
|
||||
double xStart = Math.Max(0, xEnd - 60.0);
|
||||
Plot.Plot.Axes.SetLimitsX(xStart, xEnd);
|
||||
|
||||
Plot.Plot.Axes.AutoScaleY(); // ajusta Y automaticamente para caber tudo
|
||||
Plot.Refresh();
|
||||
}
|
||||
|
||||
#region DISPOSITIVOS
|
||||
|
||||
public void AtualizarListaDispositivos(List<string> dispositivos)
|
||||
|
|
@ -312,7 +205,7 @@ namespace OperationControl.Windows
|
|||
else if (dados_leitura != null)
|
||||
{
|
||||
var simulacao = dados_leitura.Controle?.SimulacaoMPC?.Select(x => new double[] { x.longitude, x.latitude })?.ToList();
|
||||
MAP.markers.UpdateMarkerPosition(rover_id, lat: dados_leitura?.Gps?.Latitude, lon: dados_leitura?.Gps?.Longitude, heading: dados_leitura?.Gps?.OrientacaoReal, predict: simulacao);
|
||||
MAP.markers.UpdateMarkerPosition(rover_id, lat: dados_leitura.Gps?.Latitude, lon: dados_leitura.Gps?.Longitude, heading: dados_leitura.Gps?.OrientacaoReal, predict: simulacao);
|
||||
MAP.markers.UpdateMarkerInfo(rover_id, status: dados_leitura.StatusOperacao);
|
||||
}
|
||||
|
||||
|
|
@ -326,6 +219,8 @@ namespace OperationControl.Windows
|
|||
{
|
||||
Variaveis.MostrarLog($"Atualizando dados da tela para a base");
|
||||
|
||||
lblDispositivos_Status.Content = VariaveisControleOperacao.StatusBase.ToString();
|
||||
AplicarStatusModuloNaLabel(lblDispositivos_Status, VariaveisControleOperacao.StatusBase, true, false);
|
||||
AtualizarDadosTela_GNSS(Variaveis.GpsService?.UltimaLeitura ?? new AgroBase.Models.GPSModel(), marker_id: VariaveisControleOperacao.BaseMarkerID);
|
||||
AtualizarDadosTela_Heading(Variaveis.GpsService?.UltimaLeitura?.AnguloCarroDefinido ?? 0);
|
||||
}
|
||||
|
|
@ -334,7 +229,8 @@ namespace OperationControl.Windows
|
|||
if (dados_leitura == null) return;
|
||||
|
||||
Variaveis.MostrarLog($"Atualizando dados da tela para o dispositivo {rover_id}");
|
||||
|
||||
lblDispositivos_Status.Content = (rover?.DadosLeitura?.Status ?? AgroBase.Models.Enums.StatusModulo.Desconectado).ToString();
|
||||
AplicarStatusModuloNaLabel(lblDispositivos_Status, rover?.DadosLeitura?.Status ?? AgroBase.Models.Enums.StatusModulo.Desconectado, true, false);
|
||||
AtualizarDadosTela_Diagnosticos(rover);
|
||||
if (dados_leitura.Trajetoria != null)
|
||||
AtualizarDadosTela_Resumo(dados_leitura);
|
||||
|
|
@ -374,13 +270,13 @@ namespace OperationControl.Windows
|
|||
try
|
||||
{
|
||||
pgbResumo_RuaAtual.Value = dados.Trajetoria.PercentualRuaAtual;
|
||||
lblResumo_RuaAtual.Content = $"{dados.Trajetoria.CorredorAtual.DistanciaPercorridaCorredor.ToString("0.00")} / {dados.Trajetoria.CorredorAtual.DistanciaTotal.ToString("0.00")}";
|
||||
lblResumo_RuaAtual.Content = $"{dados.Trajetoria.CorredorAtual.DistanciaPercorridaCorredor.ToString("0.00")} m / {dados.Trajetoria.CorredorAtual.DistanciaTotal.ToString("0.00")} m ({dados.Trajetoria.CorredorAtual.Idx + 1})";
|
||||
pgbResumo_AreaTotal.Value = dados.Trajetoria.PercentualOperacao;
|
||||
lblResumo_AreaTotal.Content = $"{dados.Trajetoria.DistanciaPercorrida.ToString("0.00")} / {dados.Trajetoria.DistanciaTotal.ToString("0.00")}";
|
||||
lblResumo_AreaTotal.Content = $"{dados.Trajetoria.DistanciaPercorrida.ToString("0.00")} m / {dados.Trajetoria.DistanciaTotal.ToString("0.00")} m";
|
||||
pgbResumo_Bateria.Value = dados.Bateria.PorcentagemBateria;
|
||||
lblResumo_Bateria.Content = $"{dados.Bateria.TensaoInstantanea.ToString("0.00")} V ({dados.Bateria.TempoEstimadoRestanteMinutos})";
|
||||
lblResumo_Bateria.Content = $"{dados.Bateria.TensaoInstantanea.ToString("0.00")} V ({TimeSpan.FromMinutes(dados.Bateria.TempoEstimadoRestanteMinutos)})";
|
||||
pgbResumo_Herbicida.Value = dados.Atuador.PercentualReservatorio;
|
||||
lblResumo_Herbicida.Content = $"{dados.Atuador.VolumeReservatorio.ToString("0.00")} L ({0.ToString("0.00")})";
|
||||
lblResumo_Herbicida.Content = $"{dados.Atuador.VolumeReservatorio.ToString("0.00")} L ({0.ToString("0.00")} m)";
|
||||
pgbResumo_Infestacao.Value = dados.Atuador.PercentualErvasTerreno;
|
||||
lblResumo_Infestacao.Content = $"{dados.Atuador.VazaoMedia.ToString("0.00")}";
|
||||
pgbResumo_Conexao.Value = 0;
|
||||
|
|
@ -391,7 +287,7 @@ namespace OperationControl.Windows
|
|||
lblResumo_OperacaoStatus.Content = $"Status {dados.StatusOperacao}" + (dados.StatusOperacao == AgroBase.Models.Enums.StatusOperacao.Aguardando ? $" ({dados.TempoAguardandoSeg.ToString("0")})" : "");
|
||||
lblResumo_StatusCarro.Content = $"Carro {dados.Trajetoria.StatusCarro}";
|
||||
lblResumo_TemperaturaGeral.Content = $"Temperatura {(dados.DadosPerformance.CPU_temp ?? 0).ToString("0.00")} °C";
|
||||
lblResumo_OperacaoDuracao.Content = $"Duração {dados.TempoDecorrido.ToString("HH:mm:ss")} / {dados.Trajetoria.TempoEstimadoOperacao}";
|
||||
lblResumo_OperacaoDuracao.Content = $"Duração {dados.TempoDecorrido.ToString("HH:mm:ss")} / " + (string.IsNullOrEmpty(dados.Trajetoria.TempoEstimadoOperacao) ? "00:00:00" : dados.Trajetoria.TempoEstimadoOperacao);
|
||||
}
|
||||
catch (Exception exUi)
|
||||
{
|
||||
|
|
@ -416,7 +312,7 @@ namespace OperationControl.Windows
|
|||
// Percorre apenas labels dentro do Canvas com o prefixo desejado
|
||||
foreach (var lbl in canvas.Children.OfType<Label>().Where(x => x.Name.StartsWith("lblDiagnosticos_")))
|
||||
{
|
||||
(var modulo, var mod_label) = GetModuleData(lbl);
|
||||
(var modulo, var mod_label, var s_code) = GetModuleData(lbl);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
continue;
|
||||
|
||||
|
|
@ -433,10 +329,11 @@ namespace OperationControl.Windows
|
|||
AplicarStatusModuloNaLabel(lbl, individual?.status ?? saude?.status ?? AgroBase.Models.Enums.StatusModulo.Desconectado, em_uso);
|
||||
}
|
||||
|
||||
PreencherAbaOpcoes();
|
||||
PreencherAbaAcompanhamento(false);
|
||||
PreencherAbaOpcoes(false);
|
||||
}
|
||||
|
||||
private void AplicarStatusModuloNaLabel(Label lbl, AgroBase.Models.Enums.StatusModulo status, bool mandatorio)
|
||||
private void AplicarStatusModuloNaLabel(Label lbl, AgroBase.Models.Enums.StatusModulo status, bool mandatorio, bool icone = true)
|
||||
{
|
||||
// você pode ajustar essas cores depois
|
||||
Brush back;
|
||||
|
|
@ -471,14 +368,18 @@ namespace OperationControl.Windows
|
|||
|
||||
lbl.Background = back;
|
||||
lbl.Foreground = fore;
|
||||
string text = lbl.Content?.ToString() ?? "";
|
||||
text = text.Remove(0, 2);
|
||||
lbl.Content = (mandatorio ? "🔒" : "🔓") + text;
|
||||
|
||||
if (icone)
|
||||
{
|
||||
string text = lbl.Content?.ToString() ?? "";
|
||||
text = text.Remove(0, 2);
|
||||
lbl.Content = (mandatorio ? "🔒" : "🔓") + text;
|
||||
}
|
||||
}
|
||||
|
||||
private (AgroBase.Models.Enums.T_Code, string) GetModuleData(Label lbl)
|
||||
private (AgroBase.Models.Enums.T_Code, string, AgroBase.Models.Enums.S_Code) GetModuleData(Label lbl)
|
||||
{
|
||||
if (lbl == null) return (AgroBase.Models.Enums.T_Code.Vzo, "");
|
||||
if (lbl == null) return (AgroBase.Models.Enums.T_Code.Vzo, "", AgroBase.Models.Enums.S_Code.sVZO);
|
||||
|
||||
string lbl_name = lbl.Name.Replace("lblDiagnosticos_", "");
|
||||
string[] pts = lbl_name.Split('_');
|
||||
|
|
@ -486,9 +387,12 @@ namespace OperationControl.Windows
|
|||
string mod_label = pts.Length > 1 ? pts[1] : "";
|
||||
|
||||
if (!Enum.TryParse<AgroBase.Models.Enums.T_Code>(mod_name, ignoreCase: true, out var modulo))
|
||||
return (AgroBase.Models.Enums.T_Code.Vzo, "");
|
||||
return (AgroBase.Models.Enums.T_Code.Vzo, "", AgroBase.Models.Enums.S_Code.sVZO);
|
||||
|
||||
return (modulo, mod_label);
|
||||
string tag = (lbl.Tag ?? "sVZO").ToString();
|
||||
Enum.TryParse<AgroBase.Models.Enums.S_Code>(tag, ignoreCase: true, out var s_code);
|
||||
|
||||
return (modulo, mod_label, s_code);
|
||||
}
|
||||
|
||||
private void DiagnosticoModulo_Click(object sender, MouseButtonEventArgs e)
|
||||
|
|
@ -523,7 +427,7 @@ namespace OperationControl.Windows
|
|||
|
||||
private void AtualizarDetalhesModulo()
|
||||
{
|
||||
(var modulo, var label) = GetModuleData(_labelModuloSelecionado);
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
return;
|
||||
|
||||
|
|
@ -568,35 +472,380 @@ namespace OperationControl.Windows
|
|||
}
|
||||
}
|
||||
|
||||
PreencherAbaOpcoes();
|
||||
PreencherAbaAcompanhamento(true);
|
||||
PreencherAbaOpcoes(true);
|
||||
}
|
||||
|
||||
private void PreencherAbaOpcoes()
|
||||
private void PreencherAbaAcompanhamento(bool inicial)
|
||||
{
|
||||
(var modulo, var label) = GetModuleData(_labelModuloSelecionado);
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
return;
|
||||
|
||||
bool isModuloAtu = modulo == AgroBase.Models.Enums.T_Code.Atu;
|
||||
bool isBico = isModuloAtu && !string.IsNullOrEmpty(label) && label.StartsWith("B0");
|
||||
var momento = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Momento ?? DateTime.Now;
|
||||
|
||||
bool mostrarPainelBico = isModuloAtu && isBico;
|
||||
if (_tempoInicioAcompanhamento is null || inicial)
|
||||
_tempoInicioAcompanhamento = momento;
|
||||
|
||||
panelOpcoes_Bico.Visibility = mostrarPainelBico ? Visibility.Visible : Visibility.Collapsed;
|
||||
txtOpcoes_SemDados.Visibility = mostrarPainelBico ? Visibility.Collapsed : Visibility.Visible;
|
||||
bool refresh = true;
|
||||
double tSegundos = (momento - _tempoInicioAcompanhamento.Value).TotalSeconds;
|
||||
|
||||
if (mostrarPainelBico)
|
||||
if (inicial)
|
||||
{
|
||||
var bico = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Controle?.BicosAtuados?.FirstOrDefault(x => x.ID == label);
|
||||
bool comando = bico?.ComandoAtuar ?? false;
|
||||
var leitura = bico?.ValoresLeituras?.FirstOrDefault(x => x.funcao == AgroBase.Models.Modules.FuncoesPinout.EstadoLeitura)?.atual?.valor;
|
||||
txtBico_Titulo.Text = $"Bico {label} - Testes";
|
||||
txtBico_Comando.Text = comando ? "Ligado" : "Desligado";
|
||||
txtBico_StatusReal.Text = leitura != null && (AgroBase.Models.Enums.Estado)Enum.Parse(typeof(AgroBase.Models.Enums.Estado), leitura.ToString(), true) == AgroBase.Models.Enums.Estado.Ligado ? "Ligado" : "Desligado";
|
||||
txtBico_TempoLigado.Text = (bico?.TempoAtuado ?? 0).ToString("0.00") + " ms";
|
||||
txtBico_Vazao.Text = (bico?.MediaNivelFluxo ?? 0).ToString("0.00") + " L/min";
|
||||
txtBico_Pressao.Text = (VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.PressaoLinha ?? 0).ToString("0.00") + " psi";
|
||||
pltSaude_Acompanhamento.Plot.ShowLegend(Alignment.UpperLeft);
|
||||
pltAcompanhamento_x = new List<double>();
|
||||
}
|
||||
|
||||
pltAcompanhamento_x.Add(tSegundos);
|
||||
|
||||
// mantém só últimos 60 s
|
||||
while (pltAcompanhamento_x.Count > 60)
|
||||
{
|
||||
pltAcompanhamento_x.RemoveAt(0);
|
||||
pltAcompanhamento_y.ForEach(x => x.RemoveAt(0));
|
||||
}
|
||||
|
||||
switch (modulo)
|
||||
{
|
||||
case AgroBase.Models.Enums.T_Code.Sen:
|
||||
{
|
||||
if (s_code == AgroBase.Models.Enums.S_Code.sCOR)
|
||||
{
|
||||
var sensor = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Bateria?.Barramentos?.FirstOrDefault(x => x.ID == label);
|
||||
if (sensor == null) return;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>(), // Corrente
|
||||
new List<double>(), // Tensao
|
||||
new List<double>(), // Potencia
|
||||
new List<double>(), // Energia
|
||||
new List<double>() // Temperatura
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(sensor.Corrente);
|
||||
pltAcompanhamento_y[1].Add(sensor.Tensao);
|
||||
pltAcompanhamento_y[2].Add(sensor.Potencia);
|
||||
pltAcompanhamento_y[3].Add(sensor.Energia);
|
||||
pltAcompanhamento_y[4].Add(sensor.Temperatura);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Corrente (A)
|
||||
var scCorr = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scCorr.Label = $"Corrente {sensor.Corrente:0.00} mA";
|
||||
scCorr.Color = ScottPlot.Colors.Cyan;
|
||||
scCorr.LineWidth = 2;
|
||||
|
||||
// Tensão (V)
|
||||
var scVolt = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[1].ToArray());
|
||||
scVolt.Label = $"Tensão {sensor.Tensao:0.00} V";
|
||||
scVolt.Color = ScottPlot.Colors.Lime;
|
||||
scVolt.LineWidth = 2;
|
||||
|
||||
// Potencia (W)
|
||||
var scPot = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[2].ToArray());
|
||||
scPot.Label = $"Potencia {sensor.Potencia:0.00} mW";
|
||||
scPot.Color = ScottPlot.Colors.Magenta;
|
||||
scPot.LineWidth = 2;
|
||||
|
||||
// Energia (J)
|
||||
var scEner = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[3].ToArray());
|
||||
scEner.Label = $"Energia {sensor.Energia:0.00} J";
|
||||
scEner.Color = ScottPlot.Colors.Violet;
|
||||
scEner.LineWidth = 2;
|
||||
|
||||
// Temperatura (°C)
|
||||
var scTemp = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[4].ToArray());
|
||||
scTemp.Label = $"Temp {sensor.Temperatura} °C";
|
||||
scTemp.Color = ScottPlot.Colors.Yellow;
|
||||
scTemp.LineWidth = 2;
|
||||
}
|
||||
else if (s_code == AgroBase.Models.Enums.S_Code.sNTC)
|
||||
{
|
||||
var sensor = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Temperaturas?.FirstOrDefault(x => x.Key == label).Value;
|
||||
if (sensor == null) return;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>() // Temperatura
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(sensor.Value);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Temperatura (°C)
|
||||
var scTemp = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scTemp.Label = $"Temp {sensor.Value} °C";
|
||||
scTemp.Color = ScottPlot.Colors.Yellow;
|
||||
scTemp.LineWidth = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
refresh = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AgroBase.Models.Enums.T_Code.Atu:
|
||||
{
|
||||
if (s_code == AgroBase.Models.Enums.S_Code.sMAS)
|
||||
{
|
||||
var vol = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.VolumeReservatorio ?? -1;
|
||||
var pct = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.PercentualReservatorio ?? -1;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>(), // Volume
|
||||
new List<double>(), // Percentual
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(vol);
|
||||
pltAcompanhamento_y[1].Add(pct);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Volume (L)
|
||||
var scVol = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scVol.Label = $"Volume {vol:0.00} L";
|
||||
scVol.Color = ScottPlot.Colors.Cyan;
|
||||
scVol.LineWidth = 2;
|
||||
|
||||
// Percentual (%)
|
||||
var scPct = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[1].ToArray());
|
||||
scPct.Label = $"Reservatorio {pct:0.00} %";
|
||||
scPct.Color = ScottPlot.Colors.Lime;
|
||||
scPct.LineWidth = 2;
|
||||
}
|
||||
else if (s_code == AgroBase.Models.Enums.S_Code.sFLX)
|
||||
{
|
||||
double flx = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.VazaoInstantanea ?? -1;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>() // Vazao
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(flx);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Vazao (mL/S)
|
||||
var scFlx = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scFlx.Label = $"Vazao {flx} mL/s";
|
||||
scFlx.Color = ScottPlot.Colors.Yellow;
|
||||
scFlx.LineWidth = 2;
|
||||
}
|
||||
else if (s_code == AgroBase.Models.Enums.S_Code.sPRS)
|
||||
{
|
||||
double prs = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.PressaoLinha ?? -1;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>() // Pressao
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(prs);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Pressao (psi)
|
||||
var scPrs = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scPrs.Label = $"Pressao {prs} psi";
|
||||
scPrs.Color = ScottPlot.Colors.Yellow;
|
||||
scPrs.LineWidth = 2;
|
||||
}
|
||||
else if (s_code == AgroBase.Models.Enums.S_Code.sBMB)
|
||||
{
|
||||
var pot = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.LeituraPotenciaBomba ?? -1;
|
||||
var prs = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Atuador?.PressaoLinha ?? -1;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>(), // Potencia
|
||||
new List<double>(), // Pressao
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(pot);
|
||||
pltAcompanhamento_y[1].Add(prs);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Potencia (%)
|
||||
var scPot = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scPot.Label = $"Potencia {pot:0.00} %";
|
||||
scPot.Color = ScottPlot.Colors.Cyan;
|
||||
scPot.LineWidth = 2;
|
||||
|
||||
// Pressao (psi)
|
||||
var scPrs = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[1].ToArray());
|
||||
scPrs.Label = $"Pressao {prs:0.00} psi";
|
||||
scPrs.Color = ScottPlot.Colors.Lime;
|
||||
scPrs.LineWidth = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
refresh = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AgroBase.Models.Enums.T_Code.Mov:
|
||||
{
|
||||
var mod = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Movimentacao?.Dados?.FirstOrDefault(x => x.ID == label);
|
||||
if (mod == null) return;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
pltAcompanhamento_y = new List<List<double>>()
|
||||
{
|
||||
new List<double>(), // Tensao
|
||||
new List<double>(), // Corrente Motor
|
||||
new List<double>(), // Corrente Barramento
|
||||
new List<double>(), // Ciclo Trabalho
|
||||
new List<double>(), // Temperatura
|
||||
new List<double>(), // RPM roda
|
||||
};
|
||||
}
|
||||
|
||||
pltAcompanhamento_y[0].Add(mod.Tensao);
|
||||
pltAcompanhamento_y[1].Add(mod.Corrente_Motor);
|
||||
pltAcompanhamento_y[2].Add(mod.Corrente_Barramento);
|
||||
pltAcompanhamento_y[3].Add(mod.CicloTrabalho);
|
||||
pltAcompanhamento_y[4].Add(mod.RPM_Roda);
|
||||
|
||||
// redesenha (v5: passe arrays diretamente)
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
|
||||
// Tensão (V)
|
||||
var scVolt = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[0].ToArray());
|
||||
scVolt.Label = $"Tensão {mod.Tensao:0.00} V";
|
||||
scVolt.Color = ScottPlot.Colors.Lime;
|
||||
scVolt.LineWidth = 2;
|
||||
|
||||
// Corrente (A)
|
||||
var scCorm = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[1].ToArray());
|
||||
scCorm.Label = $"Corrente M {mod.Corrente_Motor:0.00} A";
|
||||
scCorm.Color = ScottPlot.Colors.Cyan;
|
||||
scCorm.LineWidth = 2;
|
||||
|
||||
// Corrente (A)
|
||||
var scCorb = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[2].ToArray());
|
||||
scCorb.Label = $"Corrente B {mod.Corrente_Barramento:0.00} A";
|
||||
scCorb.Color = ScottPlot.Colors.Red;
|
||||
scCorb.LineWidth = 2;
|
||||
|
||||
// Ciclo de Trabalho (%)
|
||||
var scEner = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[3].ToArray());
|
||||
scEner.Label = $"Ciclo % {mod.CicloTrabalho:0.00} ";
|
||||
scEner.Color = ScottPlot.Colors.Violet;
|
||||
scEner.LineWidth = 2;
|
||||
|
||||
// Temperatura (°C)
|
||||
var scTemp = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[4].ToArray());
|
||||
scTemp.Label = $"Temp {mod.TemperaturaDriver} °C";
|
||||
scTemp.Color = ScottPlot.Colors.Yellow;
|
||||
scTemp.LineWidth = 2;
|
||||
|
||||
// RPM roda
|
||||
var scRpm = pltSaude_Acompanhamento.Plot.Add.Scatter(pltAcompanhamento_x.ToArray(), pltAcompanhamento_y[5].ToArray());
|
||||
scRpm.Label = $"RPM {mod.RPM_Roda}";
|
||||
scRpm.Color = ScottPlot.Colors.Blue;
|
||||
scRpm.LineWidth = 2;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
pltSaude_Acompanhamento.Plot.Clear();
|
||||
refresh = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (refresh || inicial)
|
||||
{
|
||||
// janela de 60 s rolando
|
||||
double xEnd = pltAcompanhamento_x[^1];
|
||||
double xStart = Math.Max(0, xEnd - 60.0);
|
||||
pltSaude_Acompanhamento.Plot.Axes.SetLimitsX(xStart, xEnd);
|
||||
|
||||
pltSaude_Acompanhamento.Plot.Axes.AutoScaleY(); // ajusta Y automaticamente para caber tudo
|
||||
pltSaude_Acompanhamento.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void PreencherAbaOpcoes(bool inicial)
|
||||
{
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
return;
|
||||
|
||||
if (inicial)
|
||||
{
|
||||
txtOpcoes_SemDados.Visibility = Visibility.Collapsed;
|
||||
panelOpcoes_Bico.Visibility = Visibility.Collapsed;
|
||||
panelOpcoes_Bomba.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
switch (s_code)
|
||||
{
|
||||
case AgroBase.Models.Enums.S_Code.sBIC:
|
||||
{
|
||||
panelOpcoes_Bico.Visibility = Visibility.Visible;
|
||||
|
||||
var rover = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura;
|
||||
var bico = rover?.Controle?.BicosAtuados?.FirstOrDefault(x => x.ID == label);
|
||||
bool comando = bico?.ComandoAtuar ?? false;
|
||||
var leitura = bico?.ValoresLeituras?.FirstOrDefault(x => x.funcao == AgroBase.Models.Modules.FuncoesPinout.EstadoLeitura)?.atual?.valor;
|
||||
txtBico_Titulo.Text = $"Bico {label} - Testes";
|
||||
txtBico_Comando.Text = comando ? "Ligado" : "Desligado";
|
||||
txtBico_StatusReal.Text = leitura != null && (AgroBase.Models.Enums.Estado)Enum.Parse(typeof(AgroBase.Models.Enums.Estado), leitura.ToString(), true) == AgroBase.Models.Enums.Estado.Ligado ? "Ligado" : "Desligado";
|
||||
txtBico_TempoLigado.Text = (bico?.TempoAtuado ?? 0).ToString("0.00") + " ms";
|
||||
txtBico_Vazao.Text = (bico?.MediaNivelFluxo ?? 0).ToString("0.00") + " L/min";
|
||||
txtBico_Pressao.Text = (rover?.Atuador?.PressaoLinha ?? 0).ToString("0.00") + " psi";
|
||||
txtBico_Atuacoes.Text = (bico?.Atuacoes ?? 0).ToString();
|
||||
break;
|
||||
}
|
||||
case AgroBase.Models.Enums.S_Code.sBMB:
|
||||
{
|
||||
panelOpcoes_Bomba.Visibility = Visibility.Visible;
|
||||
|
||||
var rover = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura;
|
||||
bool comando = rover?.Atuador?.ComandoBomba ?? false;
|
||||
bool leitura = rover?.Atuador?.LeituraComandoBomba ?? false;
|
||||
var potencia = rover?.Atuador?.LeituraPotenciaBomba ?? 0;
|
||||
txtBomba_Comando.Text = comando ? "Ligado" : "Desligado";
|
||||
txtBomba_StatusReal.Text = leitura ? "Ligado" : "Desligado";
|
||||
txtBomba_PressaoLinha.Text = (rover?.Atuador?.PressaoLinha ?? 0).ToString("0.00") + " psi";
|
||||
txtBomba_Potencia.Text = potencia.ToString("0") + " %";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
txtOpcoes_SemDados.Visibility = Visibility.Visible;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void sldBico_Angular_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
||||
|
|
@ -606,8 +855,8 @@ namespace OperationControl.Windows
|
|||
|
||||
private void btnBico_Ligar_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(var modulo, var label) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo != AgroBase.Models.Enums.T_Code.Atu && s_code != AgroBase.Models.Enums.S_Code.sBIC)
|
||||
return;
|
||||
|
||||
VariaveisControleOperacao.EnviarComandoAtuador(label, true);
|
||||
|
|
@ -615,16 +864,39 @@ namespace OperationControl.Windows
|
|||
|
||||
private void btnBico_Desligar_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(var modulo, var label) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo != AgroBase.Models.Enums.T_Code.Atu && s_code != AgroBase.Models.Enums.S_Code.sBIC)
|
||||
return;
|
||||
|
||||
VariaveisControleOperacao.EnviarComandoAtuador(label, false);
|
||||
}
|
||||
|
||||
private void btnBomba_Ligar_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo != AgroBase.Models.Enums.T_Code.Atu && s_code != AgroBase.Models.Enums.S_Code.sBMB)
|
||||
return;
|
||||
|
||||
VariaveisControleOperacao.EnviarComandoAtuador(label, true);
|
||||
}
|
||||
|
||||
private void btnBomba_Desligar_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo != AgroBase.Models.Enums.T_Code.Atu && s_code != AgroBase.Models.Enums.S_Code.sBMB)
|
||||
return;
|
||||
|
||||
VariaveisControleOperacao.EnviarComandoAtuador(label, false);
|
||||
}
|
||||
|
||||
private void sldBomba_PressaoAlvo_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
||||
{
|
||||
lblBomba_PressaoAlvo.Content = $"{e.NewValue:0} psi";
|
||||
}
|
||||
|
||||
private void btnSaude_Salvar_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(var modulo, var label) = GetModuleData(_labelModuloSelecionado);
|
||||
(var modulo, var label, var s_code) = GetModuleData(_labelModuloSelecionado);
|
||||
if (modulo == AgroBase.Models.Enums.T_Code.Vzo)
|
||||
return;
|
||||
|
||||
|
|
@ -773,7 +1045,6 @@ namespace OperationControl.Windows
|
|||
angSp: controle.Angulo,
|
||||
angCur: angulo,
|
||||
tipoMov: controle.TipoMovimento,
|
||||
velPct: controle.PercentualVelocidadeSP,
|
||||
velSp: controle.PercentualVelocidadeSPKmh,
|
||||
velKmh: velocidade,
|
||||
emg: emergencia,
|
||||
|
|
@ -1045,11 +1316,6 @@ namespace OperationControl.Windows
|
|||
|
||||
#region PULVERIZADOR
|
||||
|
||||
private void btnB0_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
btnB0.Content = (btnB0.Content.ToString() == "Ligar") ? "Desligar" : "Ligar";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region LIDAR
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
BIN
AgroBase/OperationControl/bin/Debug/net8.0-windows7.0/OperationControl.dll (Stored with Git LFS)
BIN
AgroBase/OperationControl/bin/Debug/net8.0-windows7.0/OperationControl.dll (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,4 +1,4 @@
|
|||
#pragma checksum "..\..\..\..\Controls\ManualControlPad.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C87147546CC289C0D86F119670DC7FE54E548132"
|
||||
#pragma checksum "..\..\..\..\Controls\ManualControlPad.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "45D166CF9D8548740F135E2643613360D10EFB00"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#pragma checksum "..\..\..\..\Controls\ManualControlPad.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C87147546CC289C0D86F119670DC7FE54E548132"
|
||||
#pragma checksum "..\..\..\..\Controls\ManualControlPad.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "45D166CF9D8548740F135E2643613360D10EFB00"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ using System.Reflection;
|
|||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5e23a79fa34a30845d02b3489666483eaacac5a5")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
9c7328ea6d82bbbbee549d472b8b2b45bf14f9e41fb27a4ff0c4a36bcc02e3ae
|
||||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
|
|||
Binary file not shown.
BIN
AgroBase/OperationControl/obj/Debug/net8.0-windows7.0/OperationControl.dll (Stored with Git LFS)
BIN
AgroBase/OperationControl/obj/Debug/net8.0-windows7.0/OperationControl.dll (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_01ycobcn_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_0yukjz5t_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_1guv3ufe_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_2ihufa35_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_2iwpwacf_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_2km0pjwi_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_302fngza_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_30aig0hm_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_4dpdrleq_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_4hpdg3wy_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ae378b92eea3b3032c5fa14bdfe2648b2e5469")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OperationControl")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
a8f68c5020e18c2ecff74bca9133dfad58cf283b11650461d830369c36073a81
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net8.0-windows7.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OperationControl_4kiui0dk_wpftmp
|
||||
build_property.ProjectDir = C:\ZendionInc\agrobot_base\AgroBase\OperationControl\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue