aboutsummaryrefslogtreecommitdiff
path: root/PunchingBag
diff options
context:
space:
mode:
Diffstat (limited to 'PunchingBag')
-rw-r--r--PunchingBag/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--PunchingBag/src/AccelListener.java7
-rw-r--r--PunchingBag/src/Arduino.java42
-rw-r--r--PunchingBag/src/Font.java374
-rw-r--r--PunchingBag/src/PunchingBag.java21
-rw-r--r--PunchingBag/src/PunchingBagGUI.java4
6 files changed, 436 insertions, 20 deletions
diff --git a/PunchingBag/.settings/org.eclipse.jdt.core.prefs b/PunchingBag/.settings/org.eclipse.jdt.core.prefs
index 9fd8280..394e4df 100644
--- a/PunchingBag/.settings/org.eclipse.jdt.core.prefs
+++ b/PunchingBag/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
-#Wed Jul 13 14:12:05 BST 2011
+#Tue Sep 06 14:26:41 BST 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/PunchingBag/src/AccelListener.java b/PunchingBag/src/AccelListener.java
new file mode 100644
index 0000000..a3ad465
--- /dev/null
+++ b/PunchingBag/src/AccelListener.java
@@ -0,0 +1,7 @@
+import java.util.EventListener;
+
+interface AccelListener extends EventListener {
+
+ void AccelChanged();
+
+}
diff --git a/PunchingBag/src/Arduino.java b/PunchingBag/src/Arduino.java
index 5e6e288..f76bcf6 100644
--- a/PunchingBag/src/Arduino.java
+++ b/PunchingBag/src/Arduino.java
@@ -11,7 +11,10 @@ import java.io.OutputStream;
import gnu.io.*;
-public class Arduino {
+public class Arduino implements Runnable {
+
+ InputStream in;
+ OutputStream out;
static void listPorts()
{
@@ -85,12 +88,10 @@ public class Arduino {
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
- InputStream in = serialPort.getInputStream();
- OutputStream out = serialPort.getOutputStream();
+ in = serialPort.getInputStream();
+ out = serialPort.getOutputStream();
- (new Thread(new SerialReader(in))).start();
- (new Thread(new SerialWriter(out))).start();
-
+ (new Thread(this)).start();
}
else
{
@@ -100,7 +101,7 @@ public class Arduino {
}
/** */
- public static class SerialReader implements Runnable
+ public class SerialReader implements Runnable
{
InputStream in;
@@ -118,6 +119,7 @@ public class Arduino {
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
+ input(new String(buffer,0,len));
}
}
catch ( IOException e )
@@ -126,9 +128,13 @@ public class Arduino {
}
}
}
+
+ public static void input(String string) {
+
+ }
/** */
- public static class SerialWriter implements Runnable
+ public class SerialWriter implements Runnable
{
OutputStream out;
@@ -154,4 +160,24 @@ public class Arduino {
}
}
+ public void run() {
+ byte[] buffer = new byte[1024];
+ int len = -1;
+ try
+ {
+ while ( ( len = this.in.read(buffer)) > -1 )
+ {
+ System.out.print(new String(buffer,0,len));
+ input(new String(buffer,0,len));
+ }
+ }
+ catch ( IOException e )
+ {
+ e.printStackTrace();
+ }
+
+ }
+
+
+
}
diff --git a/PunchingBag/src/Font.java b/PunchingBag/src/Font.java
new file mode 100644
index 0000000..a8996bf
--- /dev/null
+++ b/PunchingBag/src/Font.java
@@ -0,0 +1,374 @@
+
+public class Font {
+ char font[] = {
+ // -------- Space
+ 0b00000000,
+ 0b00000000,
+ 0b00000000,
+ 0b00000000,
+ // -------- A
+ 0b01111110,
+ 0b10010000,
+ 0b10010000,
+ 0b01111110,
+ // -------- B
+ 0b01101100,
+ 0b10010010,
+ 0b10010010,
+ 0b11111110,
+ // -------- C
+ 0b10000010,
+ 0b10000010,
+ 0b01111100,
+ // -------- D
+ 0b00111000,
+ 0b01000100,
+ 0b10000010,
+ 0b11111110,
+ // -------- E
+ 0b10000010,
+ 0b10010010,
+ 0b11111110,
+ // -------- F
+ 0b10000000,
+ 0b10010000,
+ 0b11111110,
+ // -------- G
+ 0b01011100,
+ 0b10010010,
+ 0b10000010,
+ 0b01111100,
+ // -------- H
+ 0b11111110,
+ 0b00010000,
+ 0b00010000,
+ 0b11111110,
+ // -------- I
+ 0b10000010,
+ 0b11111110,
+ 0b10000010,
+ // -------- J
+ 0b11111100,
+ 0b00000010,
+ 0b00001100,
+ // -------- K
+ 0b10000110,
+ 0b01001000,
+ 0b00110000,
+ 0b11111110,
+ // -------- L
+ 0b00000010,
+ 0b00000010,
+ 0b11111110,
+ // -------- M
+ 0b11111110,
+ 0b01100000,
+ 0b00111100,
+ 0b01100000,
+ 0b11111110,
+ // -------- N
+ 0b11111110,
+ 0b00011000,
+ 0b01100000,
+ 0b11111110,
+ // -------- O
+ 0b01111100,
+ 0b10000010,
+ 0b10000010,
+ 0b01111100,
+ // -------- P
+ 0b01100000,
+ 0b10010000,
+ 0b10010000,
+ 0b11111110,
+ // -------- Q
+ 0b01111010,
+ 0b10000100,
+ 0b10001010,
+ 0b01111100,
+ // -------- R
+ 0b01100110,
+ 0b10011000,
+ 0b10010000,
+ 0b11111110,
+ // -------- S
+ 0b10001100,
+ 0b10010010,
+ 0b01100010,
+ // -------- T
+ 0b10000000,
+ 0b11111110,
+ 0b10000000,
+ // -------- U
+ 0b11111100,
+ 0b00000010,
+ 0b00000010,
+ 0b11111100,
+ // -------- V
+ 0b11000000,
+ 0b00111000,
+ 0b00000110,
+ 0b00111000,
+ 0b11000000,
+ // -------- W
+ 0b11111110,
+ 0b00001100,
+ 0b00111000,
+ 0b00001100,
+ 0b11111110,
+ // -------- X
+ 0b11000110,
+ 0b00111000,
+ 0b00111000,
+ 0b11000110,
+ // -------- Y
+ 0b11100000,
+ 0b00011110,
+ 0b11100000,
+ // -------- Z
+ 0b11000010,
+ 0b10110010,
+ 0b10001110,
+ // -------- Unknown character
+ 0b00111000,
+ 0b00111000,
+ 0b00111000,
+ // -------- 0
+ 0b01111100,
+ 0b10100010,
+ 0b10010010,
+ 0b01111100,
+ // -------- 1
+ 0b11111110,
+ 0b01000000,
+ // -------- 2
+ 0b01100010,
+ 0b10010010,
+ 0b10001110,
+ // -------- 3
+ 0b01101100,
+ 0b10010010,
+ 0b10000010,
+ // -------- 4
+ 0b11111110,
+ 0b00010000,
+ 0b11110000,
+ // -------- 5
+ 0b10001100,
+ 0b10010010,
+ 0b11110010,
+ // -------- 6
+ 0b01001100,
+ 0b10010010,
+ 0b10010010,
+ 0b01111100,
+ // -------- 7
+ 0b11100000,
+ 0b10011110,
+ 0b10000000,
+ // -------- 8
+ 0b01101100,
+ 0b10010010,
+ 0b10010010,
+ 0b01101100,
+ // -------- 9
+ 0b01111100,
+ 0b10010010,
+ 0b10010010,
+ 0b01100100,
+ // -------- :
+ 0b00100100,
+ // -------- ;
+ 0b00100110,
+ 0b00000001,
+ // -------- !
+ 0b01100000,
+ 0b11111010,
+ 0b01100000,
+ // -------- Heart
+ 0b01111000,
+ 0b11111100,
+ 0b11111110,
+ 0b01111111,
+ 0b11111110,
+ 0b11111100,
+ 0b01111000,
+ // -------- <
+ 0b01000100,
+ 0b00101000,
+ 0b00010000,
+ // -------- =
+ 0b00101000,
+ 0b00101000,
+ 0b00101000,
+ 0b00101000,
+ // -------- >
+ 0b00010000,
+ 0b00101000,
+ 0b01000100,
+ // -------- ?
+ 0b01100000,
+ 0b10011010,
+ 0b10000000,
+ // -------- @
+ 0b01111100,
+ 0b10000010,
+ 0b10111010,
+ 0b10100010,
+ 0b01011100,
+ // -------- (
+ 0b10000010,
+ 0b01111100,
+ // -------- )
+ 0b01111100,
+ 0b10000010,
+ // -------- *
+ 0b00101000,
+ 0b00010000,
+ 0b00101000,
+ // -------- +
+ 0b00010000,
+ 0b00010000,
+ 0b01111100,
+ 0b00010000,
+ 0b00010000,
+ // -------- ,
+ 0b00000110,
+ 0b00000001,
+ // -------- -
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ // -------- .
+ 0b00000010,
+ // -------- /
+ 0b11000000,
+ 0b00111000,
+ 0b00000110,
+ // -------- a
+ 0b00111110,
+ 0b00100010,
+ 0b00100010,
+ 0b00011100,
+ // -------- b
+ 0b00011100,
+ 0b00100010,
+ 0b00100010,
+ 0b11111110,
+ // -------- c
+ 0b00100010,
+ 0b00100010,
+ 0b00011100,
+ // -------- d
+ 0b11111110,
+ 0b00100010,
+ 0b00100010,
+ 0b00011100,
+ // -------- e
+ 0b00011000,
+ 0b00101010,
+ 0b00101010,
+ 0b00011100,
+ // -------- f
+ 0b10010000,
+ 0b01111110,
+ 0b00010000,
+ // -------- g
+ 0b00111110,
+ 0b00100101,
+ 0b00100101,
+ 0b00011000,
+ // -------- h
+ 0b00011110,
+ 0b00100000,
+ 0b00100000,
+ 0b11111110,
+ // -------- i
+ 0b00000010,
+ 0b01011110,
+ 0b00010010,
+ // -------- j
+ 0b01011110,
+ 0b00000001,
+ 0b00000001,
+ // -------- k
+ 0b00100010,
+ 0b00010100,
+ 0b00001000,
+ 0b11111110,
+ // -------- l
+ 0b00000010,
+ 0b11111100,
+ // -------- m
+ 0b00011110,
+ 0b00100000,
+ 0b00111110,
+ 0b00100000,
+ 0b00111110,
+ // -------- n
+ 0b00011110,
+ 0b00100000,
+ 0b00100000,
+ 0b00111110,
+ // -------- o
+ 0b00011100,
+ 0b00100010,
+ 0b00100010,
+ 0b00011100,
+ // -------- p
+ 0b00011100,
+ 0b00100010,
+ 0b00100010,
+ 0b00111111,
+ // -------- q
+ 0b00111111,
+ 0b00100010,
+ 0b00100010,
+ 0b00011100,
+ // -------- r
+ 0b00010000,
+ 0b00100000,
+ 0b00111110,
+ // -------- s
+ 0b00100100,
+ 0b00101010,
+ 0b00101010,
+ 0b00010010,
+ // -------- t
+ 0b00100010,
+ 0b11111100,
+ 0b00100000,
+ // -------- u
+ 0b00111110,
+ 0b00000010,
+ 0b00000010,
+ 0b00111100,
+ // -------- v
+ 0b00111000,
+ 0b00000110,
+ 0b00111000,
+ // -------- w
+ 0b00111110,
+ 0b00000010,
+ 0b00011110,
+ 0b00000010,
+ 0b00111100,
+ // -------- x
+ 0b00110110,
+ 0b00001000,
+ 0b00110110,
+ // -------- y
+ 0b00111110,
+ 0b00000101,
+ 0b00000101,
+ 0b00111001,
+ // -------- z
+ 0b00110010,
+ 0b00101010,
+ 0b00100110,
+ 0b00100010,
+ 0b11000001
+ };
+
+}
diff --git a/PunchingBag/src/PunchingBag.java b/PunchingBag/src/PunchingBag.java
index d6eca55..bcaf220 100644
--- a/PunchingBag/src/PunchingBag.java
+++ b/PunchingBag/src/PunchingBag.java
@@ -20,6 +20,8 @@ public class PunchingBag implements Runnable {
boolean buttonsChanged = false;
private ArrayList<Effect> runningEffects = new ArrayList<Effect>();
+
+ ButtonArduino buttonArduino = new ButtonArduino();
public enum Colour {
None, Red, Yellow, Green
@@ -32,6 +34,8 @@ public class PunchingBag implements Runnable {
// Is there a better class for this? One that it is not a swing class.
private EventListenerList buttonListenerList = new EventListenerList();
private EventListenerList ledListenerList = new EventListenerList();
+ private EventListenerList accelListenerList = new EventListenerList();
+
public PunchingBag() {
new Thread(this).start();
@@ -50,6 +54,10 @@ public class PunchingBag implements Runnable {
public void addLEDChangeListener(LEDListener l) {
ledListenerList.add(LEDListener.class, l);
}
+
+ public void addLEDChangeListener(AccelListener l) {
+ accelListenerList.add(AccelListener.class, l);
+ }
public Colour getLED(int x, int y) {
return leds[x][y];
@@ -75,7 +83,8 @@ public class PunchingBag implements Runnable {
abstract class Effect {
long lastRefresh = 0;
boolean stop = false;
- int refreshRate = 60; // Times per second to refresh
+
+ // int refreshRate = 60; // Times per second to refresh
public void stop() {
stop = true;
@@ -254,16 +263,16 @@ public class PunchingBag implements Runnable {
public void run() {
while (true) {
synchronized (runningEffects) { // Should prevent
- // ConcurrentModificationException's
- // (havent managed to produce one
- // though
+ // ConcurrentModificationException's
+ // (havent managed to produce one
+ // though
for (Iterator<Effect> iter = runningEffects.iterator(); iter
.hasNext();) {
Effect ef = (Effect) iter.next();
if (ef.stop) {
iter.remove();
- } else if ((ef.lastRefresh + (1000 / ef.refreshRate)) <= System
- .currentTimeMillis()) {
+ } else {// if ((ef.lastRefresh + (1000 / ef.refreshRate)) <=
+ // Systems.currentTimeMillis()) {
ef.draw();
ef.lastRefresh = System.currentTimeMillis();
}
diff --git a/PunchingBag/src/PunchingBagGUI.java b/PunchingBag/src/PunchingBagGUI.java
index 1db9d68..63f05ae 100644
--- a/PunchingBag/src/PunchingBagGUI.java
+++ b/PunchingBag/src/PunchingBagGUI.java
@@ -21,12 +21,12 @@ public class PunchingBagGUI implements MouseListener, MouseMotionListener,
static JFrame frame;
static JFrame bagSimFrame;
- static PunchingBag bag = new PunchingBag();
-
// Contact
public enum Direction {
None, Up, Down, Left, Right
};
+
+ PunchingBag bag = new PunchingBag();
final boolean useDebugScreen = true;