summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-08-26 23:55:44 -0700
committerKeith Packard <keithp@keithp.com>2010-08-26 23:55:44 -0700
commit68967157cee620ebedcc8c2ffd6fc7656532087b (patch)
tree8d4f68a9e5e54738d49cce15ca5aec1e1b96dabb
parent7e0506dc2014b7178f52b950e8c1cb820b35f9c6 (diff)
altosui: command line args are converted to csv format
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--ao-tools/altosui/AltosUI.java63
1 files changed, 61 insertions, 2 deletions
diff --git a/ao-tools/altosui/AltosUI.java b/ao-tools/altosui/AltosUI.java
index 63cb486c..4f3b5dde 100644
--- a/ao-tools/altosui/AltosUI.java
+++ b/ao-tools/altosui/AltosUI.java
@@ -719,8 +719,67 @@ public class AltosUI extends JFrame {
this.setJMenuBar(menubar);
}
+
+ static String replace_extension(String input, String extension) {
+ int dot = input.lastIndexOf(".");
+ if (dot > 0)
+ input = input.substring(0,dot);
+ return input.concat(extension);
+ }
+
+ static AltosReader open_logfile(String filename) {
+ File file = new File (filename);
+ try {
+ FileInputStream in;
+
+ in = new FileInputStream(file);
+ if (filename.endsWith("eeprom"))
+ return new AltosEepromReader(in);
+ else
+ return new AltosTelemetryReader(in);
+ } catch (FileNotFoundException fe) {
+ System.out.printf("Cannot open '%s'\n", filename);
+ return null;
+ }
+ }
+
+ static AltosCSV open_csv(String filename) {
+ File file = new File (filename);
+ try {
+ return new AltosCSV(file);
+ } catch (FileNotFoundException fe) {
+ System.out.printf("Cannot open '%s'\n", filename);
+ return null;
+ }
+ }
+
+ static void process_file(String input) {
+ String output = replace_extension(input,".csv");
+ if (input.equals(output)) {
+ System.out.printf("Not processing '%s'\n", input);
+ return;
+ }
+ System.out.printf("Processing \"%s\" to \"%s\"\n", input, output);
+ AltosReader reader = open_logfile(input);
+ if (reader == null)
+ return;
+ AltosCSV writer = open_csv(output);
+ if (writer == null)
+ return;
+ writer.write(reader);
+ reader.close();
+ writer.close();
+ }
+
public static void main(final String[] args) {
- AltosUI altosui = new AltosUI();
- altosui.setVisible(true);
+
+ /* Handle batch-mode */
+ if (args.length > 0) {
+ for (int i = 0; i < args.length; i++)
+ process_file(args[i]);
+ } else {
+ AltosUI altosui = new AltosUI();
+ altosui.setVisible(true);
+ }
}
} \ No newline at end of file