From 423974291c90fbba82ed586499e01c774ee96ae0 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Sep 2006 10:05:31 +0100 Subject: [PATCH] checkpoint --- src/com/atmel/fpslic/Chip.java | 22 +++++++-------- src/com/atmel/fpslic/ChipImpl.java | 30 ++++++++++----------- src/com/ftdi/usb/FtdiUart.java | 16 +++++------ src/com/ftdi/usb/ftdi.i | 20 +++++++------- src/edu/berkeley/obits/device/atmel/AvrDrone.java | 8 +++++- src/edu/berkeley/slipway/Board.java | 2 +- src/edu/berkeley/slipway/FtdiBoard.java | 2 +- 7 files changed, 51 insertions(+), 49 deletions(-) diff --git a/src/com/atmel/fpslic/Chip.java b/src/com/atmel/fpslic/Chip.java index 23f1be3..3bc97e8 100644 --- a/src/com/atmel/fpslic/Chip.java +++ b/src/com/atmel/fpslic/Chip.java @@ -5,18 +5,18 @@ import java.io.*; public interface Chip { - public void doReset(); - public void reset(boolean on); - public void avrrst(boolean on); - public void config(boolean bit); - public void config(int data, int numbits); - public boolean initErr(); + public void doReset() throws IOException; + public void reset(boolean on) throws IOException; + public void avrrst(boolean on) throws IOException; + public void config(boolean bit) throws IOException; + public void config(int data, int numbits) throws IOException; + public boolean initErr() throws IOException; - public void con(boolean b); - public boolean con(); - public boolean rcon(); + public void con(boolean b) throws IOException; + public boolean con() throws IOException; + public boolean rcon() throws IOException; //remove - public void flush(); - public int readPins(); + public void flush() throws IOException; + public int readPins() throws IOException; } diff --git a/src/com/atmel/fpslic/ChipImpl.java b/src/com/atmel/fpslic/ChipImpl.java index 5aa9d89..84a41c5 100644 --- a/src/com/atmel/fpslic/ChipImpl.java +++ b/src/com/atmel/fpslic/ChipImpl.java @@ -14,26 +14,26 @@ public class ChipImpl extends FtdiUart implements Chip { (1<<6) | (1<<7); - public ChipImpl() { + public ChipImpl() throws IOException { super(0x6666, 0x3133, 1500 * 1000); doReset(); } - public void flush() { + public void flush() throws IOException { try { getOutputStream().flush(); } catch (Exception e) { throw new RuntimeException(e); } } protected int dbits = 0; - protected synchronized void dbang(int bit, boolean val) { + protected synchronized void dbang(int bit, boolean val) throws IOException { dbits = val ? (dbits | (1 << bit)) : (dbits & (~(1 << bit))); try { getOutputStream().write((byte)dbits); } catch (IOException e) { throw new RuntimeException(e); } } - public void doReset() { + public void doReset() throws IOException { dmask = (1<<0) | @@ -72,9 +72,9 @@ public class ChipImpl extends FtdiUart implements Chip { con(false); } - public void config(boolean bit) { config(bit?1:0, 1); } - public void config(int dat) { config(dat, 8); } - public void config(int dat, int numbits) { + public void config(boolean bit) throws IOException { config(bit?1:0, 1); } + public void config(int dat) throws IOException { config(dat, 8); } + public void config(int dat, int numbits) throws IOException { for(int i=(numbits-1); i>=0; i--) { boolean bit = (dat & (1<FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_init() returned nonzero result"); return $null; } @@ -31,7 +31,7 @@ int ftdi_init(struct ftdi_context *ftdi); %exception ftdi_read_data { $action if (result<0) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_read_data() returned negative result"); return $null; } @@ -41,7 +41,7 @@ int ftdi_read_data(struct ftdi_context *ftdi, signed char buf[], int size); %exception ftdi_write_data { $action if (result<0) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_write_data() returned negative result"); return $null; } @@ -51,7 +51,7 @@ int ftdi_write_data(struct ftdi_context *ftdi, signed char buf[], int size); %exception ftdi_usb_open { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_usb_open() returned nonzero result"); return $null; } @@ -61,7 +61,7 @@ int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product); %exception ftdi_set_baudrate { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdftdi_set_baudrate() returned nonzero result"); return $null; } @@ -71,7 +71,7 @@ int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate); %exception ftdi_set_line_property { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_set_line_property() returned nonzero result"); return $null; } @@ -81,7 +81,7 @@ int ftdi_set_line_property(struct ftdi_context *ftdi, int bits, int sbit, int pa %exception ftdi_set_bitmode { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftftdi_set_bitmodeeturned nonzero result"); return $null; } @@ -91,7 +91,7 @@ int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned %exception ftdi_read_pins { $action if (result<0) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_read_pins() returned negative result"); return $null; } @@ -101,7 +101,7 @@ int ftdi_read_pins(struct ftdi_context *ftdi, signed char pins[]); %exception ftdi_setflowctrl { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_setflowctrl() returned nonzero result"); return $null; } @@ -111,7 +111,7 @@ int ftdi_setflowctrl(struct ftdi_context *ftdi, int flowctrl); %exception ftdi_usb_reset { $action if (result) { - jclass clazz = (*jenv)->FindClass(jenv, "java/lang/RuntimeException"); + jclass clazz = (*jenv)->FindClass(jenv, "java/io/IOException"); (*jenv)->ThrowNew(jenv, clazz, "ftdi_usb_reset() nonzero result"); return $null; } diff --git a/src/edu/berkeley/obits/device/atmel/AvrDrone.java b/src/edu/berkeley/obits/device/atmel/AvrDrone.java index 06849cd..6776b8b 100644 --- a/src/edu/berkeley/obits/device/atmel/AvrDrone.java +++ b/src/edu/berkeley/obits/device/atmel/AvrDrone.java @@ -21,7 +21,13 @@ public class AvrDrone extends AtmelDevice { init(); } - public void reset() { board.reset(); } + public void reset() throws DeviceException { + try { + board.reset(); + } catch (IOException e) { + throw new DeviceException(e); + } + } private void init() throws IOException { Log.debug(this, "waiting for device to identify itself"); diff --git a/src/edu/berkeley/slipway/Board.java b/src/edu/berkeley/slipway/Board.java index ed0352f..f1c51f9 100644 --- a/src/edu/berkeley/slipway/Board.java +++ b/src/edu/berkeley/slipway/Board.java @@ -8,7 +8,7 @@ import gnu.io.*; public abstract class Board { - public abstract void reset(); + public abstract void reset() throws IOException; public abstract void boot(Reader r) throws Exception; public abstract InputStream getInputStream(); public abstract OutputStream getOutputStream(); diff --git a/src/edu/berkeley/slipway/FtdiBoard.java b/src/edu/berkeley/slipway/FtdiBoard.java index 03b0d93..b32ba76 100644 --- a/src/edu/berkeley/slipway/FtdiBoard.java +++ b/src/edu/berkeley/slipway/FtdiBoard.java @@ -29,7 +29,7 @@ public class FtdiBoard extends Board { out.flush(); } - public void reset() { + public void reset() throws IOException { chip.doReset(); } -- 1.7.10.4