micropeak: Use data.export for Raw display. Change to MPH
authorKeith Packard <keithp@keithp.com>
Fri, 4 Jan 2013 02:14:40 +0000 (18:14 -0800)
committerKeith Packard <keithp@keithp.com>
Fri, 4 Jan 2013 02:14:40 +0000 (18:14 -0800)
data.export already knows how to format stuff, so use that to
construct the raw data presentation for the GUI too.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosSpeed.java
micropeak/MicroData.java
micropeak/MicroRaw.java

index af63ed17ebbefb79cbaf81f6c3ca51c2da98dabb..4e2daf5ad05f9e4553641a4c117c3c31c7b648d4 100644 (file)
@@ -21,19 +21,19 @@ public class AltosSpeed extends AltosUnits {
 
        public double value(double v) {
                if (AltosConvert.imperial_units)
-                       return AltosConvert.meters_to_feet(v);
+                       return AltosConvert.meters_to_mph(v);
                return v;
        }
 
        public String show_units() {
                if (AltosConvert.imperial_units)
-                       return "ft/s";
+                       return "mph";
                return "m/s";
        }
 
        public String say_units() {
                if (AltosConvert.imperial_units)
-                       return "feet per second";
+                       return "miles per hour";
                return "meters per second";
        }
 
index d3c8c43e634cefc0b79105e229a765c73906e5ed..f1204e1111bfdaffeb1080dda8f2395bfd46ea0d 100644 (file)
@@ -265,15 +265,15 @@ public class MicroData {
 
        public void export (Writer f) throws IOException {
                PrintWriter     pw = new PrintWriter(f);
-               pw.printf("  Time, Press(Pa), Height(m), Height(f), Speed(m/s), Speed(ft/s), Speed(mach), Accel(m/s²), Accel(ft/s²),  Accel(g)\n");
+               pw.printf("  Time, Press(Pa), Height(m), Height(f), Speed(m/s), Speed(mph), Speed(mach), Accel(m/s²), Accel(ft/s²),  Accel(g)\n");
                for (MicroDataPoint point : points()) {
-                       pw.printf("%6.3f,%10.0f,%10.1f,%10.1f,%11.2f,%12.2f,%12.4f,%12.2f,%13.2f,%10.4f\n",
+                       pw.printf("%6.3f,%10.0f,%10.1f,%10.1f,%11.2f,%11.2f,%12.4f,%12.2f,%13.2f,%10.4f\n",
                                  point.time,
                                  point.pressure,
                                  point.height,
                                  AltosConvert.meters_to_feet(point.height),
                                  point.speed,
-                                 AltosConvert.meters_to_feet(point.speed),
+                                 AltosConvert.meters_to_mph(point.speed),
                                  AltosConvert.meters_to_mach(point.speed),
                                  point.accel,
                                  AltosConvert.meters_to_feet(point.accel),
index f5bea76ffa0a59a3727e1d49a81ce7b3a8dc479f..dd480bfe30e00e007f71a6e296edb2f86fe0a530 100644 (file)
@@ -18,6 +18,7 @@
 package org.altusmetrum.micropeak;
 
 import java.awt.*;
+import java.io.*;
 import javax.swing.*;
 import org.altusmetrum.AltosLib.*;
 import org.altusmetrum.altosuilib.*;
@@ -25,12 +26,13 @@ import org.altusmetrum.altosuilib.*;
 public class MicroRaw extends JTextArea {
 
        public void setData(MicroData data) {
-               setRows(data.pressures.length);
-               setText("  Time, Press, Height,  Speed,  Accel\n");
-               for (MicroDataPoint point : data.points()) {
-                       append(String.format(
-                                      "%6.3f,%6.0f,%7.1f,%7.2f,%7.2f\n",
-                                      point.time, point.pressure, point.height, point.speed, point.accel));
+               StringWriter    sw = new StringWriter();
+               try {
+                       data.export(sw);
+                       setRows(data.pressures.length + 1);
+                       setText(sw.toString());
+               } catch (IOException ie) {
+                       setText(String.format("Error writing data: %s", ie.getMessage()));
                }
        }