ajustes ao carregar os parametros da operacao

This commit is contained in:
Diego Freitas 2026-07-01 14:18:00 -03:00
parent c9f3bd69d7
commit 84e2c88b4f
5 changed files with 34 additions and 36 deletions

View File

@ -204,6 +204,7 @@ namespace AgroBase.Models.Modules
ID = T_Code.Dir.ToString(), ID = T_Code.Dir.ToString(),
_EnderecoCAN_Tx = _EnderecoTx, _EnderecoCAN_Tx = _EnderecoTx,
_EnderecoCAN_Rx = _EnderecoRx, _EnderecoCAN_Rx = _EnderecoRx,
Comandar = true,
Funcoes = new List<FuncoesPinout>() Funcoes = new List<FuncoesPinout>()
{ {
FuncoesPinout.PUL, FuncoesPinout.PUL,

View File

@ -281,6 +281,7 @@ namespace AgroBase.Models.Modules
ID = T_Code.Mov.ToString(), ID = T_Code.Mov.ToString(),
_EnderecoCAN_Tx = _EnderecoTx, _EnderecoCAN_Tx = _EnderecoTx,
_EnderecoCAN_Rx = _EnderecoRx, _EnderecoCAN_Rx = _EnderecoRx,
Comandar = true,
Funcoes = new List<FuncoesPinout>() Funcoes = new List<FuncoesPinout>()
{ {
FuncoesPinout.TMP, FuncoesPinout.TMP,

View File

@ -191,6 +191,12 @@ namespace AgroBase.Models
Mapa = null, Mapa = null,
PontosRetorno = null, PontosRetorno = null,
DadosLeitura = new OperacaoParametrosDadosModel(), DadosLeitura = new OperacaoParametrosDadosModel(),
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
{
new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Npc, Mandatorio = true, Utilizar = true },
new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Can, Mandatorio = true, Utilizar = true },
new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Bat, Mandatorio = true, Utilizar = true },
}
} }
}; };
op.Sensoriamento = new OperacaoSensoriamentoConjuntoModel(op) op.Sensoriamento = new OperacaoSensoriamentoConjuntoModel(op)
@ -217,7 +223,7 @@ namespace AgroBase.Models
switch (Modo) switch (Modo)
{ {
case ModoOperacao.NaoDefinido: case ModoOperacao.NaoDefinido:
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>();
break; break;
case ModoOperacao.Manual: case ModoOperacao.Manual:
op.Parametros.Controle = new OperacaoParametrosControleModel() op.Parametros.Controle = new OperacaoParametrosControleModel()
@ -255,7 +261,7 @@ namespace AgroBase.Models
AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao,
AtuModoControle = ModoControleBomba.PID AtuModoControle = ModoControleBomba.PID
}; };
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>() op.Parametros.ModulosMandatorios.AddRange(new List<OperacaoModulosMandatoriosModel>()
{ {
new OperacaoModulosMandatoriosModel() new OperacaoModulosMandatoriosModel()
{ {
@ -275,7 +281,7 @@ namespace AgroBase.Models
Mandatorio = false, Mandatorio = false,
Utilizar = true, Utilizar = true,
} }
}; });
op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>() op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
{ {
new OperacaoParametrosMandatoriosModel() new OperacaoParametrosMandatoriosModel()
@ -366,7 +372,7 @@ namespace AgroBase.Models
AtuAgitadorModo = ModoAgitadorCalda.Continuo, AtuAgitadorModo = ModoAgitadorCalda.Continuo,
AtuModoControle = ModoControleBomba.PID, AtuModoControle = ModoControleBomba.PID,
}; };
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>() op.Parametros.ModulosMandatorios.AddRange(new List<OperacaoModulosMandatoriosModel>()
{ {
new OperacaoModulosMandatoriosModel() new OperacaoModulosMandatoriosModel()
{ {
@ -416,7 +422,7 @@ namespace AgroBase.Models
Mandatorio = true, Mandatorio = true,
Utilizar = true, Utilizar = true,
}, },
}; });
op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>() op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
{ {
new OperacaoParametrosMandatoriosModel() new OperacaoParametrosMandatoriosModel()
@ -506,7 +512,7 @@ namespace AgroBase.Models
AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao,
AtuModoControle = ModoControleBomba.PID, AtuModoControle = ModoControleBomba.PID,
}; };
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>() op.Parametros.ModulosMandatorios.AddRange(new List<OperacaoModulosMandatoriosModel>()
{ {
new OperacaoModulosMandatoriosModel() new OperacaoModulosMandatoriosModel()
{ {
@ -548,7 +554,7 @@ namespace AgroBase.Models
Dispositivo = T_Code.Lra, Dispositivo = T_Code.Lra,
Mandatorio = true, Mandatorio = true,
} }
}; });
op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>() op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
{ {
new OperacaoParametrosMandatoriosModel() new OperacaoParametrosMandatoriosModel()
@ -645,7 +651,7 @@ namespace AgroBase.Models
AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao,
AtuModoControle = ModoControleBomba.PID, AtuModoControle = ModoControleBomba.PID,
}; };
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>() op.Parametros.ModulosMandatorios.AddRange(new List<OperacaoModulosMandatoriosModel>()
{ {
new OperacaoModulosMandatoriosModel() new OperacaoModulosMandatoriosModel()
{ {
@ -665,7 +671,7 @@ namespace AgroBase.Models
Mandatorio = true, Mandatorio = true,
Utilizar = true, Utilizar = true,
} }
}; });
op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>() op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
{ {
new OperacaoParametrosMandatoriosModel() new OperacaoParametrosMandatoriosModel()
@ -744,7 +750,7 @@ namespace AgroBase.Models
AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao,
AtuModoControle = ModoControleBomba.PID, AtuModoControle = ModoControleBomba.PID,
}; };
op.Parametros.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>() op.Parametros.ModulosMandatorios.AddRange(new List<OperacaoModulosMandatoriosModel>()
{ {
new OperacaoModulosMandatoriosModel() new OperacaoModulosMandatoriosModel()
{ {
@ -788,7 +794,7 @@ namespace AgroBase.Models
Mandatorio = true, Mandatorio = true,
Utilizar = true, Utilizar = true,
}, },
}; });
op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>(); op.Parametros.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>();
op.Controle = new OperacaoControleModel() op.Controle = new OperacaoControleModel()
{ {
@ -827,10 +833,6 @@ namespace AgroBase.Models
} }
op.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Npc, Mandatorio = true, Utilizar = true });
op.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Can, Mandatorio = true, Utilizar = true });
op.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Bat, Mandatorio = true, Utilizar = true });
op.Parametros.ModulosMandatorios.ForEach(m => m.ComponentesEmUso = op.PreencherComponentesEmUso(m.Dispositivo)); op.Parametros.ModulosMandatorios.ForEach(m => m.ComponentesEmUso = op.PreencherComponentesEmUso(m.Dispositivo));
if (CarregarModulos) if (CarregarModulos)
{ {
@ -850,29 +852,25 @@ namespace AgroBase.Models
switch (Modulo) switch (Modulo)
{ {
case T_Code.Mov: case T_Code.Mov:
if (op.DispMvd != null) var dadosMov = op?.DispMvd?.Dados ?? MovimentacaoUnificadaModel.CarregarParametrosIniciais();
op.DispMvd?.Dados?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.MovMotor.Comandar))); dadosMov?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.MovMotor.Comandar)));
break; break;
case T_Code.Dir: case T_Code.Dir:
if (op.DispMvd != null) var dadosDir = op?.DispMvd?.Dados ?? MovimentacaoUnificadaModel.CarregarParametrosIniciais();
op.DispMvd?.Dados?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.DirMotor.Comandar))); dadosDir?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.DirMotor.Comandar)));
break; break;
case T_Code.Atu: case T_Code.Atu:
if (op.DispAtu != null) var dadosAtu = op?.DispAtu?.Dados ?? AtuadorModel.CarregarParametrosIniciais();
{ dadosAtu?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
op.DispAtu?.Dados?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); dadosAtu?.BombasPressurizadoras?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
op.DispAtu?.Dados?.BombasPressurizadoras?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar))); dadosAtu?.BicosPulverizadores?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
op.DispAtu?.Dados?.BicosPulverizadores?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
}
break; break;
case T_Code.Sen: case T_Code.Sen:
if (op.DispSen != null) var dadosSen = op?.DispSen?.Dados ?? SensoriamentoModel.CarregarParametrosIniciais();
{ dadosSen?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
op.DispSen?.Dados?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); dadosSen?.Sinaleiros?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
op.DispSen?.Dados?.Sinaleiros?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); dadosSen?.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
op.DispSen?.Dados?.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); dadosSen?.Reles?.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar)));
op.DispSen?.Dados?.Reles?.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar)));
}
break; break;
} }
return d; return d;

View File

@ -448,7 +448,7 @@ namespace OperationControl.ViewModels.Views.Operacao.Monitoramento.Diagnostico
if (!string.IsNullOrWhiteSpace(item.LabelModulo)) if (!string.IsNullOrWhiteSpace(item.LabelModulo))
{ {
return dados.DadosLeitura?.Operacao?.ModulosMandatorios? return dados.ModulosMandatorios?
.FirstOrDefault(x => x.Dispositivo == item.Modulo)? .FirstOrDefault(x => x.Dispositivo == item.Modulo)?
.ComponentesEmUso? .ComponentesEmUso?
.Any(x => x.Key == item.LabelModulo && x.Value.Item1) ?? false; .Any(x => x.Key == item.LabelModulo && x.Value.Item1) ?? false;
@ -464,7 +464,7 @@ namespace OperationControl.ViewModels.Views.Operacao.Monitoramento.Diagnostico
if (!string.IsNullOrWhiteSpace(item.LabelModulo)) if (!string.IsNullOrWhiteSpace(item.LabelModulo))
{ {
return dados.DadosLeitura?.Operacao?.ModulosMandatorios? return dados.ModulosMandatorios?
.FirstOrDefault(x => x.Dispositivo == item.Modulo)? .FirstOrDefault(x => x.Dispositivo == item.Modulo)?
.ComponentesEmUso? .ComponentesEmUso?
.Any(x => x.Key == item.LabelModulo && x.Value.Item2) ?? false; .Any(x => x.Key == item.LabelModulo && x.Value.Item2) ?? false;

View File

@ -185,8 +185,6 @@
<StackPanel> <StackPanel>
<TextBlock Text="MPC" Foreground="White" FontSize="15" FontWeight="SemiBold" Margin="0,0,0,12"/> <TextBlock Text="MPC" Foreground="White" FontSize="15" FontWeight="SemiBold" Margin="0,0,0,12"/>
<CheckBox Content="Matriz de Custo" ToolTip="Define se o MPC deve usar a matriz de custo para filtrar candidatos e evitar regiões ruins ou com obstáculos." IsChecked="{Binding Parametros.Controle.MpcMatrizCusto}" Style="{StaticResource ParamCheckBoxStyle}"/>
<TextBlock Text="Horizonte (m)" Style="{StaticResource ParamLabelStyle}"/> <TextBlock Text="Horizonte (m)" Style="{StaticResource ParamLabelStyle}"/>
<TextBox ToolTip="Distância, em metros, que o MPC usa como horizonte de previsão para escolher a melhor trajetória." Text="{Binding Parametros.Controle.MpcHorizonte, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource ParamTextBoxStyle}" Margin="0,0,0,0"/> <TextBox ToolTip="Distância, em metros, que o MPC usa como horizonte de previsão para escolher a melhor trajetória." Text="{Binding Parametros.Controle.MpcHorizonte, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource ParamTextBoxStyle}" Margin="0,0,0,0"/>