private void Puerto_DataReceived(object sender, SerialDataReceivedEventArgs e) { AnalogicoEstado estado = AnalogicoHelper.ParsearLinea(this.puerto.ReadLine()); JoystickPosicion nuevaPosicion = AnalogicoHelper.DeterminarPosicion(estado); this.CheckPosicion(nuevaPosicion); this.CheckBoton(estado.BotonPresionado); }
public static JoystickPosicion DeterminarPosicion(AnalogicoEstado estado) { int minValue = 300; int maxValue = 700; if (estado.X > maxValue) { if (estado.Y < minValue) { return(JoystickPosicion.AbajoIzquierda); } if (estado.Y > maxValue) { return(JoystickPosicion.ArribaIzquierda); } return(JoystickPosicion.Izquierda); } if (estado.X < minValue) { if (estado.Y < minValue) { return(JoystickPosicion.AbajoDerecha); } if (estado.Y > maxValue) { return(JoystickPosicion.ArribaDerecha); } return(JoystickPosicion.Derecha); } if (estado.Y < minValue) { return(JoystickPosicion.Abajo); } if (estado.Y > maxValue) { return(JoystickPosicion.Arriba); } return(JoystickPosicion.Centro); }