From 4358d83ba96b072cabd344e287fa77005968690f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 29 Oct 2020 11:37:03 -0700 Subject: [PATCH] altoslib: Avoid sending negative accel cal values to flight computer Pre-1.9.7 firmware does not handle negative values. Instead, send large positive values which will wrap around to negative values inside the flight computer. Signed-off-by: Keith Packard --- altoslib/AltosAccelCal.java | 4 ++++ altoslib/AltosConfigData.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/altoslib/AltosAccelCal.java b/altoslib/AltosAccelCal.java index e8859b27..8d0e9927 100644 --- a/altoslib/AltosAccelCal.java +++ b/altoslib/AltosAccelCal.java @@ -182,6 +182,10 @@ public class AltosAccelCal implements Runnable { if (config_data.pad_orientation != AltosLib.MISSING) link.printf("c o %d\n", config_data.pad_orientation); if (plus != AltosLib.MISSING && minus != AltosLib.MISSING && plus != 0) { + if (plus < 0) + plus = 65536 + plus; + if (minus < 0) + minus = 65536 + minus; if (config_data.accel_zero_along != AltosLib.MISSING) link.printf("c a %d %d %d %d %d\n", plus, minus, diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 5634ff41..c0855728 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -839,6 +839,10 @@ public class AltosConfigData { int plus = accel_cal_plus(pad_orientation); int minus = accel_cal_minus(pad_orientation); if (plus != AltosLib.MISSING && minus != AltosLib.MISSING) { + if (plus < 0) + plus = 65536 + plus; + if (minus < 0) + minus = 65536 + minus; if (accel_zero_along != AltosLib.MISSING && accel_zero_across != AltosLib.MISSING && accel_zero_through != AltosLib.MISSING) -- 2.30.2