altosui: Move AltosEepromChunk.java to lib
authorKeith Packard <keithp@keithp.com>
Tue, 3 Jan 2012 04:47:16 +0000 (20:47 -0800)
committerKeith Packard <keithp@keithp.com>
Sun, 3 Jun 2012 02:27:54 +0000 (19:27 -0700)
Also fixes install issues with split lib

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosEepromChunk.java [deleted file]
altosui/Makefile.am
altosui/altoslib/Makefile.am
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromChunk.java [new file with mode: 0644]
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java

diff --git a/altosui/AltosEepromChunk.java b/altosui/AltosEepromChunk.java
deleted file mode 100644 (file)
index e4d1165..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright © 2011 Keith Packard <keithp@keithp.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package altosui;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-import java.util.concurrent.*;
-import org.altusmetrum.AltosLib.*;
-
-public class AltosEepromChunk {
-
-       static final int        chunk_size = 256;
-       static final int        per_line = 8;
-
-       public int              data[];
-       public int              address;
-       public ParseException   parse_exception = null;
-
-       int[] ParseHex(String line) {
-               String[] tokens = line.split("\\s+");
-               int[] array = new int[tokens.length];
-
-               for (int i = 0; i < tokens.length; i++)
-                       try {
-                               array[i] = Integer.parseInt(tokens[i], 16);
-                       } catch (NumberFormatException ne) {
-                               return null;
-                       }
-               return array;
-       }
-
-       int data(int offset) {
-               return data[offset];
-       }
-
-       int data16(int offset) {
-               return data[offset] | (data[offset + 1] << 8);
-       }
-
-       int data32(int offset) {
-               return data[offset] | (data[offset + 1] << 8) |
-                       (data[offset+2] << 16) | (data[offset+3] << 24);
-       }
-
-       boolean erased(int start, int len) {
-               for (int i = 0; i < len; i++)
-                       if (data[start+i] != 0xff)
-                               return false;
-               return true;
-       }
-
-       public AltosEepromChunk(AltosSerial serial_line, int block, boolean flush)
-               throws TimeoutException, InterruptedException {
-
-               int     offset;
-
-               data = new int[chunk_size];
-               address = block * chunk_size;
-               if (flush)
-                       serial_line.flush_input();
-               serial_line.printf("e %x\n", block);
-
-               for (offset = 0; offset < chunk_size; offset += per_line) {
-                       try {
-                               String  line = serial_line.get_reply(5000);
-
-                               if (line == null)
-                                       throw new TimeoutException();
-
-                               int[] values = ParseHex(line);
-
-                               if (values == null || values.length != per_line + 1)
-                                       throw new ParseException(String.format("invalid line %s", line), 0);
-                               if (values[0] != offset)
-                                       throw new ParseException(String.format("data address out of sync at 0x%x",
-                                                                              address + offset), 0);
-                               for (int i = 0; i < per_line; i++)
-                                       data[offset + i] = values[1 + i];
-                       } catch (ParseException pe) {
-                               for (int i = 0; i < per_line; i++)
-                                       data[offset + i] = 0xff;
-                               if (parse_exception == null)
-                                       parse_exception = pe;
-                       }
-               }
-       }
-}
\ No newline at end of file
index 4005d16dda97cda51aaee9fc694c30d59965eb4c..01732749d480e6c3673dd9d0074504cbcee37085 100644 (file)
@@ -37,7 +37,6 @@ altosui_JAVA = \
        AltosDevice.java \
        AltosUSBDevice.java \
        AltosDisplayThread.java \
-       AltosEepromChunk.java \
        AltosEepromDelete.java \
        AltosEepromDownload.java \
        AltosEepromList.java \
@@ -265,7 +264,7 @@ altosui: Makefile
 
 altosui-test: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec java -cp ":altoslib/*:$(FREETTS)/*:$(JFREECHART)/*:$(JCOMMON)/*" -Djava.library.path="libaltos/.libs" -jar altosui.jar "$$@"' >> $@
+       echo 'exec java -cp "./*:$(FREETTS)/*:$(JFREECHART)/*:$(JCOMMON)/*" -Djava.library.path="libaltos/.libs" -jar altosui.jar "$$@"' >> $@
        chmod +x $@
 
 altosui-jdb: Makefile
index cbf716b0daf1b69cba8f1af4248a70c3c4fa54e5..cce9b4c435a7c89613ee38bcbfe705e8260d4b60 100644 (file)
@@ -14,6 +14,7 @@ AltosLib_JAVA = \
        $(SRC)/AltosConfigData.java \
        $(SRC)/AltosConvert.java \
        $(SRC)/AltosCRCException.java \
+       $(SRC)/AltosEepromChunk.java \
        $(SRC)/AltosFrequency.java \
        $(SRC)/AltosGPS.java \
        $(SRC)/AltosGPSSat.java \
@@ -44,13 +45,11 @@ all-local: $(JAR)
 clean-local:
        -rm -rf bin $(JAR)
 
-altosuidir=$(datadir)/java
-
-install-altosuiJAVA: $(JAR)
+install-AltosLibJAVA: $(JAR)
        @$(NORMAL_INSTALL)
-       test -z "$(altosuidir)" || $(MKDIR_P) "$(DESTDIR)$(altosuidir)"
-       echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(altosuidir)/$(JAR)"; \
-       $(INSTALL_DATA) "$<" "$(DESTDIR)$(altosuidir)"
+       test -z "$(AltosLibdir)" || $(MKDIR_P) "$(DESTDIR)$(AltosLibdir)"
+       echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(AltosLibdir)/$(JAR)"; \
+       $(INSTALL_DATA) "$<" "$(DESTDIR)$(AltosLibdir)"
 
 bin:
        mkdir -p bin
diff --git a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromChunk.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromChunk.java
new file mode 100644 (file)
index 0000000..4a9a267
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright © 2011 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+package org.altusmetrum.AltosLib;
+
+import java.io.*;
+import java.util.*;
+import java.text.*;
+import java.util.concurrent.*;
+
+public class AltosEepromChunk {
+
+       static final int        chunk_size = 256;
+       static final int        per_line = 8;
+
+       public int              data[];
+       public int              address;
+       public ParseException   parse_exception = null;
+
+       int[] ParseHex(String line) {
+               String[] tokens = line.split("\\s+");
+               int[] array = new int[tokens.length];
+
+               for (int i = 0; i < tokens.length; i++)
+                       try {
+                               array[i] = Integer.parseInt(tokens[i], 16);
+                       } catch (NumberFormatException ne) {
+                               return null;
+                       }
+               return array;
+       }
+
+       int data(int offset) {
+               return data[offset];
+       }
+
+       int data16(int offset) {
+               return data[offset] | (data[offset + 1] << 8);
+       }
+
+       int data32(int offset) {
+               return data[offset] | (data[offset + 1] << 8) |
+                       (data[offset+2] << 16) | (data[offset+3] << 24);
+       }
+
+       boolean erased(int start, int len) {
+               for (int i = 0; i < len; i++)
+                       if (data[start+i] != 0xff)
+                               return false;
+               return true;
+       }
+
+       public AltosEepromChunk(AltosLink link, int block, boolean flush)
+               throws TimeoutException, InterruptedException {
+
+               int     offset;
+
+               data = new int[chunk_size];
+               address = block * chunk_size;
+               if (flush)
+                       link.flush_input();
+               link.printf("e %x\n", block);
+
+               for (offset = 0; offset < chunk_size; offset += per_line) {
+                       try {
+                               String  line = link.get_reply(5000);
+
+                               if (line == null)
+                                       throw new TimeoutException();
+
+                               int[] values = ParseHex(line);
+
+                               if (values == null || values.length != per_line + 1)
+                                       throw new ParseException(String.format("invalid line %s", line), 0);
+                               if (values[0] != offset)
+                                       throw new ParseException(String.format("data address out of sync at 0x%x",
+                                                                              address + offset), 0);
+                               for (int i = 0; i < per_line; i++)
+                                       data[offset + i] = values[1 + i];
+                       } catch (ParseException pe) {
+                               for (int i = 0; i < per_line; i++)
+                                       data[offset + i] = 0xff;
+                               if (parse_exception == null)
+                                       parse_exception = pe;
+                       }
+               }
+       }
+}
\ No newline at end of file
index 80f3d7124aa1b5049791fc6ed67b571fdd0ffe95..9a23b3061a119c9a4f5ee7514dc8dae00e6fa88d 100644 (file)
@@ -23,4 +23,6 @@ public interface AltosLink {
        public String get_reply() throws InterruptedException;
 
        public String get_reply(int timeout) throws InterruptedException;
+
+       public void flush_input() throws InterruptedException;
 }