Android Open Source - MultiWork Joystick






From Project

Back to project page MultiWork.

License

The source code is released under:

Copyright (c) 2013, Torti Andr?s Fernando All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions a...

If you think the Android project MultiWork listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.roboticarm.andres;
/*  ww  w .j  a  va2 s.  c o  m*/
public class Joystick{
  
  private float xCenter;
  private float yCenter;
  private float x;
  private float y;
  private float maxProportional;
  private float maxDistance;
  
  /**
   * Retorna el valor proporcional a la distancia X desde el centro en bytes, primero el LSB, luego
   * el MSB y luego 1 o 0 dependiendo de si la distancia es o no negativa
   * @return
   */
  public byte[] toXBytes () {
    return new byte[] {   (byte)((int)getXProportionalToDistance() & 0xFF),
                (byte)(((int)getXProportionalToDistance() >> 8) & 0xFF),
                isXNegative() ? (byte)1 : (byte)0 };
  }
  
  /**
   * Retorna el valor proporcional a la distancia Y desde el centro en bytes, primero el LSB, luego
   * el MSB y luego 1 o 0 dependiendo de si la distancia es o no negativa
   * @return
   */
  public byte[] toYBytes () {
    return new byte[] {   (byte)((int)getYProportionalToDistance() & 0xFF),
                (byte)(((int)getYProportionalToDistance() >> 8) & 0xFF),
                isYNegative() ? (byte)1 : (byte)0 };
  }
  
  /**
   * Retorna el valor proporcional a la distancia X desde el centro en bytes, primero el LSB, luego
   * el MSB y luego 1 o 0 dependiendo de si la distancia es o no negativa y luego se repite el mismo
   * patrn para la distancia en Y
   * @return
   */
  public byte[] toXYBytes () {
    return new byte[] {   (byte)((int)getXProportionalToDistance() & 0xFF),
                (byte)(((int)getXProportionalToDistance() >> 8) & 0xFF),
                isXNegative() ? (byte)1 : (byte)0,
                    
                (byte)((int)getYProportionalToDistance() & 0xFF),
                (byte)(((int)getYProportionalToDistance() >> 8) & 0xFF),
                isYNegative() ? (byte)1 : (byte)0};
  }
  
  /**
   * Obtiene un nmero de 0 al mximo configurado con setMaxProportional() de acuerdo a la
   * distancia de la coordenada desde el centro
   * @return
   */
  public float getXProportionalToDistance(){
    return ((500f*getXDistanceFromCenter())/maxDistance);
  }
  
  /**
   * Obtiene un nmero de 0 al mximo configurado con setMaxProportional() de acuerdo a la
   * distancia de la coordenada desde el centro
   * @return
   */
  public float getYProportionalToDistance(){
    return ((500f*getYDistanceFromCenter())/maxDistance);
  }
  
  /**
   * Obtiene el nmero mayor a ser devuelto al obtener el nmero proporcional a la distancia
   * de la coordenada al centro
   * @return
   */
  public float getMaxProportional() {
    return maxProportional;
  }

  /**
   * Setea el nmero mayor a ser devuelto al obtener el nmero proporcional a la distancia
   * de la coordenada al centro, el mximo es 65535
   * @param maxProportional
   */
  public void setMaxProportional(float maxProportional) {
    if(maxProportional > 65535) maxProportional = 65535;
    else this.maxProportional = maxProportional;
  }

  
  /**
   * Obtiene la distancia mxima desde el centro
   * @return
   */
  public float getMaxDistance() {
    return maxDistance;
  }

  /**
   * Distancia mxima desde el centro
   * @param maxDistance
   */
  public void setMaxDistance(float maxDistance) {
    this.maxDistance = maxDistance;
  }

  /**
   * Indica si la distancia en X es negativa o positiva
   * @return true si es negativa, sino false
   */
  public boolean isYNegative (){
    return ((y - yCenter) < 0);
  }
  
  /**
   * Indica si la distancia en Y es negativa o positiva
   * @return true si es negativa, sino false
   */
  public boolean isXNegative (){
    return ((x - xCenter) < 0);
  }
  
  /**
   * Obtiene la distancia desde la cordenada al centro en X
   */
  public float getXDistanceFromCenter (){
    return Math.abs(x - xCenter);
  }
  
  /**
   * Obtiene la distancia desde la cordenada al centro en Y
   */
  public float getYDistanceFromCenter (){
    return Math.abs(y - yCenter);
  }
  
  /**
   * Obtiene la coordenada X del centro
   */
  public float getXCenter (){
    return xCenter;
  }
  
  /**
   * Obtiene la coordenada Y del centro
   */
  public float getYCenter (){
    return yCenter;
  }
  
  /**
   * Obtiene la coordenada x actual del joystick
   */
  public float getX (){
    return x;
  }
  
  /**
   * Obtiene la coordenada y actual del joystick
   */
  public float getY (){
    return y;
  }
  
  /**
   * Setea la coordenada x del centro
   */
  public void setXCenter (float xC){
    xCenter = xC;
  }
  
  /**
   * Setea la coordenada y del centro
   */
  public void setYCenter (float yC){
    yCenter = yC;
  }
  
  /**
   * Setea la coordenada x del joystick
   */
  public void setX (float xP){
    x = xP;
  }
  
  /**
   * Setea la coordenada y del joystick
   */
  public void setY (float yP){
    y = yP;
  }
}




Java Source Code List

com.bluetoothutils.andres.BTSingleSynchTransfer.java
com.bluetoothutils.andres.BluetoothHelper.java
com.bluetoothutils.andres.DeviceScanner.java
com.bluetoothutils.andres.OnBluetoothConnected.java
com.bluetoothutils.andres.OnDeviceSelected.java
com.bluetoothutils.andres.OnNewBluetoothDataReceived.java
com.frecuencimeter.andres.FrecView.java
com.frecuencimeter.andres.Frecuencia.java
com.multiwork.andres.ApplicationContext.java
com.multiwork.andres.LCView.java
com.multiwork.andres.MainMenu.java
com.multiwork.andres.MainPrefs.java
com.multiwork.andres.MenuListAdapter.java
com.protocolanalyzer.andres.AnalyzerExpandableAdapter.java
com.protocolanalyzer.andres.CRC16.java
com.protocolanalyzer.andres.LogicAnalizerPrefsFragment.java
com.protocolanalyzer.andres.LogicAnalizerPrefs.java
com.protocolanalyzer.andres.LogicAnalyzerActivity.java
com.protocolanalyzer.andres.LogicAnalyzerChartFragment.java
com.protocolanalyzer.andres.LogicAnalyzerListFragment.java
com.protocolanalyzer.andres.OnActionBarClickListener.java
com.protocolanalyzer.andres.OnDataClearedListener.java
com.protocolanalyzer.andres.OnDataDecodedListener.java
com.roboticarm.andres.BrazoRobot.java
com.roboticarm.andres.JoystickView.java
com.roboticarm.andres.Joystick.java
com.tjerkw.slideexpandable.library.AbstractSlideExpandableListAdapter.java
com.tjerkw.slideexpandable.library.ActionSlideExpandableListView.java
com.tjerkw.slideexpandable.library.ExpandCollapseAnimation.java
com.tjerkw.slideexpandable.library.SlideExpandableListAdapter.java
com.tjerkw.slideexpandable.library.SlideExpandableListView.java
com.tjerkw.slideexpandable.library.WrapperListAdapterImpl.java
com.utils.andres.ConflictChecker.java
com.utils.andres.Dependency.java
com.utils.andres.Pair.java