summaryrefslogtreecommitdiff
path: root/altoslib/AltosIdleMonitor.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-05-02 16:13:53 -0700
committerKeith Packard <keithp@keithp.com>2016-05-02 16:18:54 -0700
commit0b0b359cbce6b818257b44b2a6aee0edcbaee40d (patch)
tree38840d0a2addfdaa00bbd46a8980f6e31066afe0 /altoslib/AltosIdleMonitor.java
parent1a797f5fd5d25ba635fd79ad7604763253caabf2 (diff)
altoslib: Deal with TeleMetrum v2.0 MMA6555 being inverted
Dumping the MMA655X data with the 'A' command provides the raw sensor value. On TM v2.0 boards, the sensor is inverted, and all of the firmware uses the inverted value except for the 'dump the raw data' command. As a result, MonitorIdle was using the un-inverted value and displaying mystic values. I've fixed this in the ground station code by checking the product name and conditionally inverting the value (4095 - value) for TeleMetrum v2.0 products. Unknown products will generate a warning dialog on AltosUI so we'll catch places where we've failed to add a new product name. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosIdleMonitor.java')
-rw-r--r--altoslib/AltosIdleMonitor.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java
index bcf20ef3..c67b4d8a 100644
--- a/altoslib/AltosIdleMonitor.java
+++ b/altoslib/AltosIdleMonitor.java
@@ -51,7 +51,7 @@ public class AltosIdleMonitor extends Thread {
return link.reply_abort;
}
- boolean update_state(AltosState state) throws InterruptedException, TimeoutException {
+ boolean update_state(AltosState state) throws InterruptedException, TimeoutException, AltosUnknownProduct {
boolean worked = false;
boolean aborted = false;
@@ -99,6 +99,8 @@ public class AltosIdleMonitor extends Thread {
update_state(state);
listener.update(state, listener_state);
} catch (TimeoutException te) {
+ } catch (AltosUnknownProduct ae) {
+ listener.error(String.format("Unknown product \"%s\"", ae.product));
}
if (link.has_error || link.reply_abort) {
listener.failed();