|
|
@@ -6,10 +6,18 @@ import java.awt.event.KeyListener;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import com.pi4j.io.gpio.GpioController;
|
|
|
+import com.pi4j.io.gpio.GpioFactory;
|
|
|
+import com.pi4j.io.gpio.GpioPinDigitalInput;
|
|
|
+import com.pi4j.io.gpio.PinState;
|
|
|
+import com.pi4j.io.gpio.RaspiPin;
|
|
|
+import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
|
|
|
+import com.pi4j.io.gpio.event.GpioPinListenerDigital;
|
|
|
+
|
|
|
import main.Window;
|
|
|
import control.LedHandler;
|
|
|
|
|
|
-public class ButtonHandler implements KeyListener{
|
|
|
+public class ButtonHandler{
|
|
|
|
|
|
List<ButtonListener> listeners;
|
|
|
static List<Button> buttons;
|
|
|
@@ -34,6 +42,34 @@ public class ButtonHandler implements KeyListener{
|
|
|
{
|
|
|
b.setColor(new Color((int)(Math.random()*254+1),(int)(Math.random()*254+1),(int)(Math.random()*254+1)));
|
|
|
}
|
|
|
+
|
|
|
+ // create gpio controller
|
|
|
+ ArrayList<GpioPinDigitalInput> inputpins = new ArrayList<GpioPinDigitalInput>();
|
|
|
+ final GpioController gpio = GpioFactory.getInstance();
|
|
|
+
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_02, "1")); //button 1 to 6 + start button
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, "2"));
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_13, "3"));
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_14, "4"));
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_00, "5"));
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_12, "6"));
|
|
|
+ inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_06, "0"));
|
|
|
+
|
|
|
+
|
|
|
+ for(GpioPinDigitalInput p:inputpins){
|
|
|
+ p.addListener(new GpioPinListenerDigital() {
|
|
|
+ @Override
|
|
|
+ public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent e) {
|
|
|
+ if(e.getState() == PinState.HIGH){
|
|
|
+ buttonPress(buttons.get(Integer.parseInt(e.getPin().getName())));
|
|
|
+ System.out.println(e.getPin().getName() + " Released");
|
|
|
+ }else{
|
|
|
+ buttonRelease(buttons.get(Integer.parseInt(e.getPin().getName())));
|
|
|
+ System.out.println(e.getPin().getName() + " Pressed");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void addButtonListener(ButtonListener toAdd) {
|
|
|
@@ -53,41 +89,41 @@ public class ButtonHandler implements KeyListener{
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- public void keyPressed(KeyEvent e) {
|
|
|
- switch(e.getKeyCode())
|
|
|
- {
|
|
|
- case KeyEvent.VK_0:
|
|
|
- buttonPress(buttons.get(0));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_1:
|
|
|
- buttonPress(buttons.get(1));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_2:
|
|
|
- buttonPress(buttons.get(2));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_3:
|
|
|
- buttonPress(buttons.get(3));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_4:
|
|
|
- buttonPress(buttons.get(4));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_5:
|
|
|
- buttonPress(buttons.get(5));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_6:
|
|
|
- buttonPress(buttons.get(6));
|
|
|
- break;
|
|
|
- case KeyEvent.VK_ESCAPE:
|
|
|
- if(!Window.ON_RASP)
|
|
|
- System.exit(0);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void keyReleased(KeyEvent arg0) {}
|
|
|
- public void keyTyped(KeyEvent arg0) {}
|
|
|
-
|
|
|
+// @Override
|
|
|
+// public void keyPressed(KeyEvent e) {
|
|
|
+// switch(e.getKeyCode())
|
|
|
+// {
|
|
|
+// case KeyEvent.VK_0:
|
|
|
+// buttonPress(buttons.get(0));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_1:
|
|
|
+// buttonPress(buttons.get(1));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_2:
|
|
|
+// buttonPress(buttons.get(2));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_3:
|
|
|
+// buttonPress(buttons.get(3));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_4:
|
|
|
+// buttonPress(buttons.get(4));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_5:
|
|
|
+// buttonPress(buttons.get(5));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_6:
|
|
|
+// buttonPress(buttons.get(6));
|
|
|
+// break;
|
|
|
+// case KeyEvent.VK_ESCAPE:
|
|
|
+// if(!Window.ON_RASP)
|
|
|
+// System.exit(0);
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void keyReleased(KeyEvent arg0) {}
|
|
|
+// public void keyTyped(KeyEvent arg0) {}
|
|
|
+//
|
|
|
public static List<Button> getButtons()
|
|
|
{
|
|
|
return buttons;
|