X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosConfigData.java;fp=altoslib%2FAltosConfigData.java;h=ea7b63fa5813e963eabc60786258135c785ae8e0;hp=5634ff410229f9fa77386c805e4f3b88c41446e2;hb=6550585af6d80306d037661be66004ccf8d09013;hpb=c992792ba6a76a0bc1d31ccdcffa2d6ca52a9e55 diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 5634ff41..ea7b63fa 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -202,8 +202,8 @@ public class AltosConfigData { case AltosLib.AO_LOG_FORMAT_TELEMETRUM: case AltosLib.AO_LOG_FORMAT_TELEMEGA: case AltosLib.AO_LOG_FORMAT_TELEMEGA_3: - case AltosLib.AO_LOG_FORMAT_TELEMEGA_4: return 4095 - value; + case AltosLib.AO_LOG_FORMAT_TELEMEGA_4: case AltosLib.AO_LOG_FORMAT_EASYMEGA_2: case AltosLib.AO_LOG_FORMAT_EASYMOTOR: return -value; @@ -321,6 +321,9 @@ public class AltosConfigData { /* Return + accel calibration relative to a specific pad orientation */ public int accel_cal_plus(int pad_orientation) { adjust_accel_cal(); + if (!accel_cal_adjusted) + return AltosLib.MISSING; + switch (pad_orientation) { case AltosLib.AO_PAD_ORIENTATION_ANTENNA_UP: case AltosLib.AO_PAD_ORIENTATION_WORDS_UPRIGHT: @@ -338,6 +341,9 @@ public class AltosConfigData { /* Return - accel calibration relative to a specific pad orientation */ public int accel_cal_minus(int pad_orientation) { adjust_accel_cal(); + if (!accel_cal_adjusted) + return AltosLib.MISSING; + switch (pad_orientation) { case AltosLib.AO_PAD_ORIENTATION_ANTENNA_UP: case AltosLib.AO_PAD_ORIENTATION_WORDS_UPRIGHT: @@ -357,6 +363,7 @@ public class AltosConfigData { */ private void adjust_accel_cal() { if (!accel_cal_adjusted && + product != null && pad_orientation != AltosLib.MISSING && accel_cal_plus != AltosLib.MISSING && accel_cal_minus != AltosLib.MISSING) @@ -538,9 +545,6 @@ public class AltosConfigData { } } } catch (Exception e) {} - - /* Fix accel cal as soon as all of the necessary values appear */ - adjust_accel_cal(); } public AltosConfigData() { @@ -839,6 +843,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) @@ -910,5 +918,6 @@ public class AltosConfigData { read_link(link, "done"); break; } + adjust_accel_cal(); } }