Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Java (http://www.chiefdelphi.com/forums/forumdisplay.php?f=184)
-   -   EnhancedIO Exception Error (http://www.chiefdelphi.com/forums/showthread.php?t=81453)

coo 29-01-2010 20:17

EnhancedIO Exception Error
 
We are trying to read a potentiometer connected to our Cypress IO board using the enhancedIO class.

Here is our code so far:
Code:

package edu.wpi.first.wpilibj.templates;

import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.Encoder;
import edu.wpi.first.wpilibj.AnalogChannel;
import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.DriverStationEnhancedIO;
import edu.wpi.first.wpilibj.DriverStation;
/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the IterativeRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class Team503Robot extends IterativeRobot {
    private RobotDrive drivetrain;
    private Joystick gamepad;
    private Encoder leftDriveEncoder;
    private Encoder rightDriveEncoder;
    private AnalogChannel potentiometer;
    private DigitalInput limitSwitch;
    DriverStationEnhancedIO dseio;
    /**
    * This function is run when the robot is first started up and should be
    * used for any initialization code.
    */
    public void robotInit() {
    dseio = DriverStation.getInstance().getEnhancedIO();


    }

    /**
    * This function is called periodically during autonomous
    */
    public void autonomousPeriodic() {

    }

    /**
    * This function is called periodically during operator control
    */
    public void teleopPeriodic() {
        double slider = dseio.getAnalogIn(1);

    }

}

We get an "unreported exception edu.wpi.first.wpilibj.DriverStationEnhancedIO.Enha ncedIOException; must be caught or declared to be thrown" error from the "double slider = dseio.getAnalogIn(1); line. Any help would be appreciated.

bjrussell 30-01-2010 09:42

Re: EnhancedIO Exception Error
 
Well, it's been a little while since I did Java, but I would guess that the getAnalogIn function can throw an exception, and it's not being handled. You either need a try block around it or you need to declare that it can throw the exception.

Solution 1 (in method):
try {
double slider = dseio.getAnalogIn(1);
//additional code to execute if that works
}
catch (IOException ioexec) {
//do stuff here if it goes wrong
}
(this last part may or may not be necessary; just know that it will always execute, even if an exception is thrown)
finally {
//more stuff that will always execute
}

Solution 2:
public void teleopPeriodic() throws EnhancedIOException {
double slider = dseio.getAnalogIn(1);
}

Solution 1 has much better control over what happens if an exception is thrown, so I suggest you use that one in your program. I hope it works for you.

coo 30-01-2010 11:09

Re: EnhancedIO Exception Error
 
We tried solution 1 and it worked. Thanks for the help.


All times are GMT -5. The time now is 09:41.

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