Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Java (http://www.chiefdelphi.com/forums/forumdisplay.php?f=184)
-   -   Can't read joystick values in Java (http://www.chiefdelphi.com/forums/showthread.php?t=103097)

nubie 17-02-2012 17:15

Can't read joystick values in Java
 
Our team is trying to implement a simple mecanum drive in Java, but whenever we try to set a motor speed based on a joystick value, the motor simply does nothing. No error is thrown, but it does not spin.

We are extending the SimpleRobot class. We are initializing the joysticks with:

Code:

private Joystick leftStick;

public RobotTemplate() {
leftStick = new Joystick(1);

and then later on...

Code:

drivetrain.tankDrive(leftStick, rightStick);

//or

leftMotor.set(leftStick.getX());

We just switched from C++ to Java and we were able to use the joysticks fine in our C++ program, so we don't think it's a control system issue.

Any help would be greatly appreciated! Thanks.

compboy07 17-02-2012 17:23

Re: Can't read joystick values in Java
 
The getX() method is for the kinectStick. Use getRawAxis(int axis) or getAxis(Joystick.AxisType.kX);

nubie 17-02-2012 17:51

Re: Can't read joystick values in Java
 
Thank you for your fast reply. I tried switching to using the getRawAxis method, but it still does the same thing. I try:

Code:

// I also try 1-6 instead of 0
leftMotor.set(leftDriveStick.getRawAxis(0));

When I put in 3, the motor drives at full speed, but for everything else it does not drive at all. In either case, I can't control them with the joysticks. Am I missing something else?

compboy07 17-02-2012 19:10

Re: Can't read joystick values in Java
 
Try two things: firstly, output your values using the LCD display class; it helps a ton. Also, try the getAxis, as it has an enum instead of the index. Instead of some arbitrary number as an argument, it uses Joystick.AxisType.kX

nubie 18-02-2012 13:11

Re: Can't read joystick values in Java
 
I managed to find the default code project that was missing from the libraries on a different thread, and when I ran that, it worked. I still do not know what the root issue is but maybe I will be able to determine it in the future.

Thank you for your help.

jesusrambo 18-02-2012 18:14

Re: Can't read joystick values in Java
 
Quote:

Originally Posted by compboy07 (Post 1128974)
The getX() method is for the kinectStick.

No, getX() is inherited in both Joystick and kinectStick from GenericHID.

Look in the libraries at Joystick.java and you'll find

Code:

/**
    * Get the X value of the joystick.
    * This depends on the mapping of the joystick connected to the current port.
    *
    * @param hand Unused
    * @return The X value of the joystick.
    */
    public double getX(Hand hand) {
        return getRawAxis(m_axes[AxisType.kX.value]);
    }

    /**
    * Get the Y value of the joystick.
    * This depends on the mapping of the joystick connected to the current port.
    *
    * @param hand Unused
    * @return The Y value of the joystick.
    */
    public double getY(Hand hand) {
        return getRawAxis(m_axes[AxisType.kY.value]);
    }

TL;DR getX() works for joysticks, not just kinectSticks.


All times are GMT -5. The time now is 11:37.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi