import processing.core.*; import cc.arduino.*; class LEDControl { final int comRate = 57600; Arduino arduino; boolean[] state = {false, false, false, false}; LEDControl(PApplet applet, int whichArduino) { // Arduino - initialize correct arduino String[] arduinos = Arduino.list(); // if (arduinos.length == 0) { // PApplet.println("There are no arduinos available for use."); // applet.exit(); // } else { // PApplet.println("Available arduinos:"); // for(int i = 0; i < arduinos.length; i++) { // PApplet.println(arduinos[i]); // } // PApplet.print("Using arduino "); // PApplet.println(arduinos[whichArduino]); // // this.arduino = new Arduino(applet, arduinos[whichArduino], comRate); // // for (Direction dir : Direction.values()) { // this.arduino.pinMode(dir.pin, Arduino.OUTPUT); // } // } } boolean isActive(Direction dir) { return this.state[dir.index]; } public void turnOff(Direction dir) { this.arduino.digitalWrite(dir.pin, Arduino.LOW); this.state[dir.index] = false; } public void turnOn(Direction dir) { this.arduino.digitalWrite(dir.pin, Arduino.HIGH); this.state[dir.index] = true; } public void toggle(Direction dir) { if (isActive(dir)) { turnOff(dir); } else { turnOn(dir); } } public void allOn() { for (Direction dir : Direction.values()) { turnOn(dir); } } public void allOff() { for (Direction dir : Direction.values()) { turnOff(dir); } } enum Direction { LEFT (0, 10), RIGHT (1, 5), UP (2, 6), DOWN (3, 9); final int index, pin; Direction(int index, int pin) { this.index = index; this.pin = pin; } } }