-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRPiGPIOLight.java
More file actions
36 lines (28 loc) · 904 Bytes
/
RPiGPIOLight.java
File metadata and controls
36 lines (28 loc) · 904 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.easternedgerobotics.rov.io.rpi;
import com.easternedgerobotics.rov.io.devices.Light;
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.RaspiPin;
public final class RPiGPIOLight implements Light {
/**
* The raspi gpio pin being used.
*/
private final GpioPinDigitalOutput pin;
/**
* Flashing period for the lights.
*/
private static final int PERIOD = 600;
public RPiGPIOLight(final int pinNumber) {
final GpioController gpioController = GpioFactory.getInstance();
pin = gpioController.provisionDigitalOutputPin(RaspiPin.getPinByName("GPIO " + pinNumber));
}
@Override
public void write(final boolean value) {
pin.setState(value);
}
@Override
public void flash() {
pin.blink(PERIOD);
}
}