/*
This file is part of JOP, the Java Optimized Processor
see <http://www.jopdesign.com/>
Copyright (C) 2007, Peter Hilber and Alexander Dejaco
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package lego.lib;
import com.jopdesign.sys.*;
/**
* Provides access to general purpose digital inputs (I0-I2).
* @author Peter Hilber (peter.hilber@student.tuwien.ac.at)
*
*/
public class DigitalInputs
{
public static final int IO_DIGITALINPUTS = Const.IO_LEGO + 5;
/**
* Read digital input.
* @param index Valid indices are 0, 1, 2.
*/
public static boolean getDigitalInput(int index)
{
//if (index<0 || index>3)
// throw new RuntimeException("Invalid button index specified!");
return ((Native.rd(IO_DIGITALINPUTS) >> index) & 1) != 0;
}
/**
* Reads all digital inputs into the respective bits.
* @return The digital inputs are numbered from 0 to 2.
* All other bits are set to zero.
*/
public static int getDigitalInputs()
{
return Native.rd(IO_DIGITALINPUTS);
}
}