diff --git a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs index 3b76095cb..1a1249786 100644 --- a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs +++ b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs @@ -204,6 +204,7 @@ namespace AgroBase.Models.Modules ID = T_Code.Dir.ToString(), _EnderecoCAN_Tx = _EnderecoTx, _EnderecoCAN_Rx = _EnderecoRx, + Comandar = true, Funcoes = new List() { FuncoesPinout.PUL, diff --git a/AgroBase/AgroBase/Models/Modules/MovimentacaoModel.cs b/AgroBase/AgroBase/Models/Modules/MovimentacaoModel.cs index 7d9211fad..e41c35558 100644 --- a/AgroBase/AgroBase/Models/Modules/MovimentacaoModel.cs +++ b/AgroBase/AgroBase/Models/Modules/MovimentacaoModel.cs @@ -281,6 +281,7 @@ namespace AgroBase.Models.Modules ID = T_Code.Mov.ToString(), _EnderecoCAN_Tx = _EnderecoTx, _EnderecoCAN_Rx = _EnderecoRx, + Comandar = true, Funcoes = new List() { FuncoesPinout.TMP, diff --git a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs index e5d617fa0..3e0e1b348 100644 --- a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs +++ b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs @@ -191,6 +191,12 @@ namespace AgroBase.Models Mapa = null, PontosRetorno = null, DadosLeitura = new OperacaoParametrosDadosModel(), + ModulosMandatorios = new List() + { + 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) @@ -217,7 +223,7 @@ namespace AgroBase.Models switch (Modo) { case ModoOperacao.NaoDefinido: - op.Parametros.ModulosMandatorios = new List(); + break; case ModoOperacao.Manual: op.Parametros.Controle = new OperacaoParametrosControleModel() @@ -255,7 +261,7 @@ namespace AgroBase.Models AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuModoControle = ModoControleBomba.PID }; - op.Parametros.ModulosMandatorios = new List() + op.Parametros.ModulosMandatorios.AddRange(new List() { new OperacaoModulosMandatoriosModel() { @@ -275,7 +281,7 @@ namespace AgroBase.Models Mandatorio = false, Utilizar = true, } - }; + }); op.Parametros.ParametrosMandatorios = new List() { new OperacaoParametrosMandatoriosModel() @@ -366,7 +372,7 @@ namespace AgroBase.Models AtuAgitadorModo = ModoAgitadorCalda.Continuo, AtuModoControle = ModoControleBomba.PID, }; - op.Parametros.ModulosMandatorios = new List() + op.Parametros.ModulosMandatorios.AddRange(new List() { new OperacaoModulosMandatoriosModel() { @@ -416,7 +422,7 @@ namespace AgroBase.Models Mandatorio = true, Utilizar = true, }, - }; + }); op.Parametros.ParametrosMandatorios = new List() { new OperacaoParametrosMandatoriosModel() @@ -506,7 +512,7 @@ namespace AgroBase.Models AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuModoControle = ModoControleBomba.PID, }; - op.Parametros.ModulosMandatorios = new List() + op.Parametros.ModulosMandatorios.AddRange(new List() { new OperacaoModulosMandatoriosModel() { @@ -548,7 +554,7 @@ namespace AgroBase.Models Dispositivo = T_Code.Lra, Mandatorio = true, } - }; + }); op.Parametros.ParametrosMandatorios = new List() { new OperacaoParametrosMandatoriosModel() @@ -645,7 +651,7 @@ namespace AgroBase.Models AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuModoControle = ModoControleBomba.PID, }; - op.Parametros.ModulosMandatorios = new List() + op.Parametros.ModulosMandatorios.AddRange(new List() { new OperacaoModulosMandatoriosModel() { @@ -665,7 +671,7 @@ namespace AgroBase.Models Mandatorio = true, Utilizar = true, } - }; + }); op.Parametros.ParametrosMandatorios = new List() { new OperacaoParametrosMandatoriosModel() @@ -744,7 +750,7 @@ namespace AgroBase.Models AtuAgitadorModo = ModoAgitadorCalda.SemAgitacao, AtuModoControle = ModoControleBomba.PID, }; - op.Parametros.ModulosMandatorios = new List() + op.Parametros.ModulosMandatorios.AddRange(new List() { new OperacaoModulosMandatoriosModel() { @@ -788,7 +794,7 @@ namespace AgroBase.Models Mandatorio = true, Utilizar = true, }, - }; + }); op.Parametros.ParametrosMandatorios = new List(); 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)); if (CarregarModulos) { @@ -850,29 +852,25 @@ namespace AgroBase.Models switch (Modulo) { case T_Code.Mov: - if (op.DispMvd != null) - op.DispMvd?.Dados?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.MovMotor.Comandar))); + var dadosMov = op?.DispMvd?.Dados ?? MovimentacaoUnificadaModel.CarregarParametrosIniciais(); + dadosMov?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.MovMotor.Comandar))); break; case T_Code.Dir: - if (op.DispMvd != null) - op.DispMvd?.Dados?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.DirMotor.Comandar))); + var dadosDir = op?.DispMvd?.Dados ?? MovimentacaoUnificadaModel.CarregarParametrosIniciais(); + dadosDir?.Modulos?.ForEach(m => d.Add(m.Modulo_ID, (true, m.DirMotor.Comandar))); break; case T_Code.Atu: - if (op.DispAtu != null) - { - op.DispAtu?.Dados?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); - op.DispAtu?.Dados?.BombasPressurizadoras?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar))); - op.DispAtu?.Dados?.BicosPulverizadores?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar))); - } + var dadosAtu = op?.DispAtu?.Dados ?? AtuadorModel.CarregarParametrosIniciais(); + dadosAtu?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); + dadosAtu?.BombasPressurizadoras?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar))); + dadosAtu?.BicosPulverizadores?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar))); break; case T_Code.Sen: - if (op.DispSen != null) - { - op.DispSen?.Dados?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); - op.DispSen?.Dados?.Sinaleiros?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); - op.DispSen?.Dados?.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); - op.DispSen?.Dados?.Reles?.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar))); - } + var dadosSen = op?.DispSen?.Dados ?? SensoriamentoModel.CarregarParametrosIniciais(); + dadosSen?.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir))); + dadosSen?.Sinaleiros?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); + dadosSen?.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar))); + dadosSen?.Reles?.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar))); break; } return d; diff --git a/AgroBase/OperationControl/ViewModels/Views/Operacao/Monitoramento/Diagnostico/DiagnosticoViewModel.cs b/AgroBase/OperationControl/ViewModels/Views/Operacao/Monitoramento/Diagnostico/DiagnosticoViewModel.cs index 9590c0de7..a3ce166bf 100644 --- a/AgroBase/OperationControl/ViewModels/Views/Operacao/Monitoramento/Diagnostico/DiagnosticoViewModel.cs +++ b/AgroBase/OperationControl/ViewModels/Views/Operacao/Monitoramento/Diagnostico/DiagnosticoViewModel.cs @@ -448,7 +448,7 @@ namespace OperationControl.ViewModels.Views.Operacao.Monitoramento.Diagnostico if (!string.IsNullOrWhiteSpace(item.LabelModulo)) { - return dados.DadosLeitura?.Operacao?.ModulosMandatorios? + return dados.ModulosMandatorios? .FirstOrDefault(x => x.Dispositivo == item.Modulo)? .ComponentesEmUso? .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)) { - return dados.DadosLeitura?.Operacao?.ModulosMandatorios? + return dados.ModulosMandatorios? .FirstOrDefault(x => x.Dispositivo == item.Modulo)? .ComponentesEmUso? .Any(x => x.Key == item.LabelModulo && x.Value.Item2) ?? false; diff --git a/AgroBase/OperationControl/Views/Operacao/Monitoramento/ParametrizacaoView.xaml b/AgroBase/OperationControl/Views/Operacao/Monitoramento/ParametrizacaoView.xaml index 9a4a4d603..651959a7b 100644 --- a/AgroBase/OperationControl/Views/Operacao/Monitoramento/ParametrizacaoView.xaml +++ b/AgroBase/OperationControl/Views/Operacao/Monitoramento/ParametrizacaoView.xaml @@ -185,8 +185,6 @@ - -