Ajustado controle dos bicos pulverizadores pelo teclado

This commit is contained in:
Diego Freitas 2026-04-08 08:15:52 -03:00
parent 521e0fc50d
commit 45fb4f9c80
2 changed files with 57 additions and 1 deletions

View File

@ -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;
}
}

View File

@ -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<BotoesJoystick> BotoesJoyPressionados = new List<BotoesJoystick>() { };
public static List<TipoMovimentoDirecional> MovimentosCombinados = new List<TipoMovimentoDirecional>()
@ -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)