diff --git a/AgroBase/AgroBase/Forms/frmJoystick.cs b/AgroBase/AgroBase/Forms/frmJoystick.cs index 1a098e572..c992e33b5 100644 --- a/AgroBase/AgroBase/Forms/frmJoystick.cs +++ b/AgroBase/AgroBase/Forms/frmJoystick.cs @@ -37,6 +37,9 @@ namespace AgroBase.Forms case T_Code.Dir: GeneralJoystick.ProcessarDadosControle(comando.botaoJoy, false, valorDesejado: Variaveis.OperacaoEmAndamento.Parametros.Controle.DirAnguloMaximo); break; + case T_Code.Atu: + GeneralJoystick.ProcessarDadosControle(comando.botaoJoy, false); + break; } } diff --git a/AgroBase/AgroBase/Models/GeneralJoystick.cs b/AgroBase/AgroBase/Models/GeneralJoystick.cs index 8c43cbe29..cc0c99a47 100644 --- a/AgroBase/AgroBase/Models/GeneralJoystick.cs +++ b/AgroBase/AgroBase/Models/GeneralJoystick.cs @@ -34,6 +34,14 @@ namespace AgroBase new DeParaComandos() { key = Keys.Space, botaoJoy = BotoesJoystick.Bolinha, direcao = Direcao.EmFreio, Dispositivo = T_Code.Mov, PararAoSoltar = true }, new DeParaComandos() { key = Keys.Subtract, botaoJoy = BotoesJoystick.L1, Dispositivo = T_Code.Mov, PararAoSoltar = false }, new DeParaComandos() { key = Keys.Add, botaoJoy = BotoesJoystick.R1, Dispositivo = T_Code.Mov, PararAoSoltar = false }, + + new DeParaComandos() { key = Keys.D1, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B01" }, + new DeParaComandos() { key = Keys.D2, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B02" }, + new DeParaComandos() { key = Keys.D3, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B03" }, + new DeParaComandos() { key = Keys.D4, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B04" }, + new DeParaComandos() { key = Keys.D5, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B05" }, + new DeParaComandos() { key = Keys.D6, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B06" }, + new DeParaComandos() { key = Keys.D7, botaoJoy = BotoesJoystick.Touchpad, Dispositivo = T_Code.Atu, PararAoSoltar = true, IDcontrolar = "B07" }, }; public static List BotoesJoyPressionados = new List() { }; public static List MovimentosCombinados = new List() @@ -531,8 +539,15 @@ namespace AgroBase { var comando = DeParaComandos.FirstOrDefault(x => x.botaoJoy == botao)?.Clone(); comando?.CalcularValor(solto, valorJoy: valorJoy, valorDesejado: valorDesejado); - if (comando != null) + + if (comando?.Dispositivo == T_Code.Dir || comando?.Dispositivo == T_Code.Mov) + { EnviarComandoMotorAtualizado(comando, ID: ID, ForcarComando: ForcarComando); + } + else if (comando?.Dispositivo == T_Code.Atu) + { + EnviarComandoAtuadorAtualizado(comando, ForcarComando: ForcarComando); + } } private static void EnviarComandoMotorAtualizado(DeParaComandos Comando, string ID = "", bool ForcarComando = false) @@ -588,6 +603,35 @@ namespace AgroBase AtualizaConsole(_Controle.TiposControle.FirstOrDefault(x => x.Tipo == Comando.Dispositivo).DirecaoAtual.ToString()); } + public static void EnviarComandoAtuadorAtualizado(DeParaComandos Comando, bool ForcarComando = false) + { + bool bloqueioAutomatico = Variaveis.OperacaoEmAndamento.Parametros.Controle.PulverizadorAutomatico; + + bool bloqueioOperacional = + Variaveis.OperacaoEmAndamento.Calibrando || + !Variaveis.OperacaoEmAndamento.OperacaoLiberada || + !Variaveis.OperacaoEmAndamento.Iniciado; + + bool deveInterromper = + bloqueioAutomatico || + (!ForcarComando && bloqueioOperacional); + + if (deveInterromper) return; + + var _Controle = Variaveis.OperacaoEmAndamento.Controle; + var tipoControle = _Controle?.TiposControle?.FirstOrDefault(x => x?.Tipo == Comando.Dispositivo); + + var bico = Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.BicosPulverizadores?.FirstOrDefault(x => x.ID == Comando.IDcontrolar); + var bomba = Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.BombasPressurizadoras?.FirstOrDefault(x => x.ID == Comando.IDcontrolar); + S_Code comp = bico?.Componente ?? bomba?.Componente ?? S_Code.sVZO; + + for (int i = 0; i < 1; i++) + { + EnviarComandoAtuador(comp, Comando.IDcontrolar, Status: Comando.EstadoAplicar); + } + } + + public static void EnviaComandoMotor(Keys Tecla, T_Code Disp = T_Code.Vzo, string ID = null, BotoesJoystick botao = BotoesJoystick.Vazio, bool ForcarComando = false) { // Verifica se deve interromper o fluxo @@ -1086,6 +1130,15 @@ namespace AgroBase } break; } + + + // ========================================================= + // BICOS PULVERIZADORES + // ========================================================= + case BotoesJoystick.Touchpad: + estadoSaida = !solto; + break; + } if (solto && PararAoSoltar)