summaryrefslogtreecommitdiff
path: root/altoslib/AltosEepromChunk.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-11-12 14:03:42 +0900
committerKeith Packard <keithp@keithp.com>2013-11-12 14:03:42 +0900
commit74d73a2cd0b6a228eb396552e1d16685669349c0 (patch)
tree20095fb73b9c435a8a7092dd55959996125f2c95 /altoslib/AltosEepromChunk.java
parentbdd6244d8b4a55c9aa4fb79b0cb1a0727afbc2ac (diff)
altoslib: Raise ParseException on invalid eeprom format
Make sure the user knows when data are not downloaded successfully because the UI doesn't understand the eeprom format. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosEepromChunk.java')
-rw-r--r--altoslib/AltosEepromChunk.java47
1 files changed, 23 insertions, 24 deletions
diff --git a/altoslib/AltosEepromChunk.java b/altoslib/AltosEepromChunk.java
index 48d29e1b..c03fa931 100644
--- a/altoslib/AltosEepromChunk.java
+++ b/altoslib/AltosEepromChunk.java
@@ -62,31 +62,30 @@ public class AltosEepromChunk {
return true;
}
- public AltosEeprom eeprom(int offset, int log_format, AltosState state) {
+ public AltosEeprom eeprom(int offset, int log_format, AltosState state) throws ParseException {
AltosEeprom eeprom = null;
- try {
- switch (log_format) {
- case AltosLib.AO_LOG_FORMAT_FULL:
- eeprom = new AltosEepromTM(this, offset);
- break;
- case AltosLib.AO_LOG_FORMAT_TINY:
- eeprom = new AltosEepromTm(this, offset, state);
- break;
- case AltosLib.AO_LOG_FORMAT_TELEMETRY:
- case AltosLib.AO_LOG_FORMAT_TELESCIENCE:
- break;
- case AltosLib.AO_LOG_FORMAT_TELEMEGA:
- eeprom = new AltosEepromMega(this, offset);
- break;
- case AltosLib.AO_LOG_FORMAT_TELEMETRUM:
- eeprom = new AltosEepromMetrum2(this, offset);
- break;
- case AltosLib.AO_LOG_FORMAT_TELEMINI:
- case AltosLib.AO_LOG_FORMAT_EASYMINI:
- eeprom = new AltosEepromMini(this, offset);
- break;
- }
- } catch (ParseException e) {
+ switch (log_format) {
+ case AltosLib.AO_LOG_FORMAT_FULL:
+ eeprom = new AltosEepromTM(this, offset);
+ break;
+ case AltosLib.AO_LOG_FORMAT_TINY:
+ eeprom = new AltosEepromTm(this, offset, state);
+ break;
+ case AltosLib.AO_LOG_FORMAT_TELEMETRY:
+ case AltosLib.AO_LOG_FORMAT_TELESCIENCE:
+ break;
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+ eeprom = new AltosEepromMega(this, offset);
+ break;
+ case AltosLib.AO_LOG_FORMAT_TELEMETRUM:
+ eeprom = new AltosEepromMetrum2(this, offset);
+ break;
+ case AltosLib.AO_LOG_FORMAT_TELEMINI:
+ case AltosLib.AO_LOG_FORMAT_EASYMINI:
+ eeprom = new AltosEepromMini(this, offset);
+ break;
+ default:
+ throw new ParseException("unknown eeprom format " + log_format, 0);
}
return eeprom;
}