![JAR search and dependency download from the Maven repository](/logo.png)
com.ociweb.iot.hardware.impl.grovepi.GrovePiGPIO Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of foglight Show documentation
Show all versions of foglight Show documentation
FogLight is a lightweight runtime that enables makers of all ages and skill levels to create highly
performant apps for embedded devices like Raspberry Pi's.
The newest version!
package com.ociweb.iot.hardware.impl.grovepi;
import com.ociweb.iot.hardware.HardwareConnection;
/**
* @author Brandon Sanders [[email protected]]
*/
public class GrovePiGPIO {
public static final GrovePiPinManager gpioPinModes = new GrovePiPinManager(GrovePiConstants.GPIO_PIN_MODES);
public static final GrovePiPinManager gpioLinuxPins = new GrovePiPinManager(GrovePiConstants.GPIO_PINS);
public static final GrovePiPinManager gpioOutputEnablePins = new GrovePiPinManager(GrovePiConstants.OUTPUT_ENABLE);
public static final GrovePiPinManager gpioPullupEnablePins = new GrovePiPinManager(GrovePiConstants.PULL_UP_ENABLE);
public static void ensureAllLinuxDevices(final HardwareConnection[] usedLines) {
System.out.println("I reach here");
int j = usedLines.length;
while (--j >= 0) {
final int i = usedLines[j].register;
gpioLinuxPins.ensureDevice(i);
gpioOutputEnablePins.ensureDevice(i);
gpioPullupEnablePins.ensureDevice(i);
gpioPinModes.ensureDevice(i);
}
}
public static void removeAllLinuxDevices(final HardwareConnection[] usedLines) {
int j = usedLines.length;
while (--j >= 0) {
final int i = usedLines[j].register;
gpioLinuxPins.removeDevice(i);
gpioOutputEnablePins.removeDevice(i);
gpioPullupEnablePins.removeDevice(i);
gpioPinModes.removeDevice(i);
}
}
public static void configDigitalInput(final int dPort) {
gpioOutputEnablePins.setDirectionLow(dPort);
gpioPullupEnablePins.setDirectionHigh(dPort);
gpioLinuxPins.setDirectionIn(dPort);
}
public static void configPWM(final int dPort) {
if ((dPort < 3) || (4 == dPort) || (7 == dPort) || (8 == dPort)
|| (dPort > 11)) // (only 3, 5, 6, 9, 10, 11)
throw new UnsupportedOperationException("PWM only available on 3, 5, 6, 9, 10 or 11");
gpioOutputEnablePins.setDirectionHigh(dPort);
gpioPullupEnablePins.setDirectionIn(dPort);
}
public static void configDigitalOutput(final int dPort) {
gpioPullupEnablePins.setDirectionHigh(dPort);
gpioOutputEnablePins.setDirectionHigh(dPort);
gpioLinuxPins.setDirectionOut(dPort);
}
public static void configI2CClockOut() {
gpioLinuxPins.setDirectionOut(1);
gpioOutputEnablePins.setDirectionHigh(1);
}
public static void configI2CClockIn() {
gpioLinuxPins.setDirectionIn(1); // in
gpioOutputEnablePins.setDirectionLow(1);
}
public static void configI2CDataOut() {
gpioLinuxPins.setDirectionOut(0);
gpioOutputEnablePins.setDirectionHigh(0);
}
public static void configI2CDataIn() {
gpioLinuxPins.setDirectionIn(0);
gpioOutputEnablePins.setDirectionLow(0);
}
public static void configI2C() {
gpioPullupEnablePins.setDirectionIn(0);
gpioPullupEnablePins.setDirectionIn(1);
gpioLinuxPins.setDirectionOut(1);
gpioLinuxPins.setDirectionOut(0);
gpioOutputEnablePins.setDirectionHigh(1);
gpioOutputEnablePins.setDirectionHigh(0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy