projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos/stmf0: Add ao_crc_stm.c
[fw/altos]
/
micropeak
/
MicroData.java
diff --git
a/micropeak/MicroData.java
b/micropeak/MicroData.java
index 04e9ad3206e5400638a46c44254ca1df1e595e8c..857dbe584b0c157a14f7bd322f288eb7e1848bb9 100644
(file)
--- a/
micropeak/MicroData.java
+++ b/
micropeak/MicroData.java
@@
-20,8
+20,8
@@
package org.altusmetrum.micropeak;
import java.lang.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.*;
-import org.altusmetrum.altoslib_
3
.*;
-import org.altusmetrum.altosuilib_
1
.*;
+import org.altusmetrum.altoslib_
6
.*;
+import org.altusmetrum.altosuilib_
6
.*;
class MicroIterator implements Iterator<MicroDataPoint> {
int i;
class MicroIterator implements Iterator<MicroDataPoint> {
int i;
@@
-97,16
+97,22
@@
public class MicroData implements AltosUIDataSet {
private double time_step;
private double ground_altitude;
private ArrayList<Integer> bytes;
private double time_step;
private double ground_altitude;
private ArrayList<Integer> bytes;
+ public int log_id;
String name;
MicroStats stats;
String name;
MicroStats stats;
-
- class FileEndedException extends Exception {
+
+ public static final int LOG_ID_MICROPEAK = 0;
+ public static final int LOG_ID_MICROKITE = 1;
+
+ public static final double CLOCK = 0.096;
+
+ public class FileEndedException extends Exception {
}
}
- class NonHexcharException extends Exception {
+
public
class NonHexcharException extends Exception {
}
}
- class InvalidCrcException extends Exception {
+
public
class InvalidCrcException extends Exception {
}
private int getc(InputStream f) throws IOException, FileEndedException {
}
private int getc(InputStream f) throws IOException, FileEndedException {
@@
-167,16
+173,12
@@
public class MicroData implements AltosUIDataSet {
return h;
}
return h;
}
- private boolean find_header(InputStream f) throws IOException {
- try {
- for (;;) {
- if (get_nonwhite(f) == 'M' && get_nonwhite(f) == 'P')
- return true;
- }
- } catch (FileEndedException fe) {
- return false;
+ private boolean find_header(InputStream f) throws IOException, FileEndedException {
+ for (;;) {
+ if (get_nonwhite(f) == 'M' && get_nonwhite(f) == 'P')
+ return true;
}
}
- }
+ }
private int get_32(InputStream f) throws IOException, FileEndedException, NonHexcharException {
int v = 0;
private int get_32(InputStream f) throws IOException, FileEndedException, NonHexcharException {
int v = 0;
@@
-339,7
+341,7
@@
public class MicroData implements AltosUIDataSet {
this.name = name;
}
this.name = name;
}
- public MicroData (InputStream f, String name) throws IOException, InterruptedException {
+ public MicroData (InputStream f, String name) throws IOException, InterruptedException
, NonHexcharException, FileEndedException
{
this.name = name;
bytes = new ArrayList<Integer>();
if (!find_header(f))
this.name = name;
bytes = new ArrayList<Integer>();
if (!find_header(f))
@@
-349,6
+351,9
@@
public class MicroData implements AltosUIDataSet {
ground_pressure = get_32(f);
min_pressure = get_32(f);
int nsamples = get_16(f);
ground_pressure = get_32(f);
min_pressure = get_32(f);
int nsamples = get_16(f);
+
+ log_id = nsamples >> 12;
+ nsamples &= 0xfff;
pressures = new int[nsamples + 1];
ground_altitude = AltosConvert.pressure_to_altitude(ground_pressure);
pressures = new int[nsamples + 1];
ground_altitude = AltosConvert.pressure_to_altitude(ground_pressure);
@@
-371,7
+376,7
@@
public class MicroData implements AltosUIDataSet {
else
cur = down;
}
else
cur = down;
}
-
+
pressures[i+1] = cur;
}
pressures[i+1] = cur;
}
@@
-380,12
+385,17
@@
public class MicroData implements AltosUIDataSet {
crc_valid = crc == current_crc;
crc_valid = crc == current_crc;
- time_step = 0.192;
+ switch (log_id) {
+ case LOG_ID_MICROPEAK:
+ time_step = 2 * CLOCK;
+ break;
+ case LOG_ID_MICROKITE:
+ time_step = 200 * CLOCK;
+ break;
+ }
stats = new MicroStats(this);
} catch (FileEndedException fe) {
throw new IOException("File Ended Unexpectedly");
stats = new MicroStats(this);
} catch (FileEndedException fe) {
throw new IOException("File Ended Unexpectedly");
- } catch (NonHexcharException ne) {
- throw new IOException("Non hexadecimal character found");
}
}
}
}
@@
-395,5
+405,5
@@
public class MicroData implements AltosUIDataSet {
pressures = new int[1];
pressures[0] = 101000;
}
pressures = new int[1];
pressures[0] = 101000;
}
-
+
}
}