From 6a9721f344d1837c913fee142c875de4d7357820 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 24 Feb 2024 12:44:00 -0800 Subject: [PATCH] altoslib: Add EasyMega v3.0 support Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 1 + altoslib/AltosEepromRecordSet.java | 1 + altoslib/AltosIMU.java | 5 ++++- altoslib/AltosIdleFetch.java | 8 ++++++++ altoslib/AltosLib.java | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 17a81329..005ef571 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -220,6 +220,7 @@ public class AltosConfigData { case AltosLib.AO_LOG_FORMAT_TELEMEGA_5: case AltosLib.AO_LOG_FORMAT_TELEMEGA_6: case AltosLib.AO_LOG_FORMAT_EASYMEGA_2: + case AltosLib.AO_LOG_FORMAT_EASYMEGA_3: case AltosLib.AO_LOG_FORMAT_EASYMOTOR: /* ADXL375 */ return -value; diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index c42f78af..8f3fa459 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -88,6 +88,7 @@ public class AltosEepromRecordSet implements AltosRecordSet { case AltosLib.AO_LOG_FORMAT_TELEMEGA_4: case AltosLib.AO_LOG_FORMAT_TELEMEGA_5: case AltosLib.AO_LOG_FORMAT_TELEMEGA_6: + case AltosLib.AO_LOG_FORMAT_EASYMEGA_3: record = new AltosEepromRecordMega(eeprom); break; case AltosLib.AO_LOG_FORMAT_TELEMETRUM: diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java index 436d54cc..01ecc161 100644 --- a/altoslib/AltosIMU.java +++ b/altoslib/AltosIMU.java @@ -278,8 +278,10 @@ public class AltosIMU implements Cloneable { } private int accel_along(int imu_type) { - if (accel_along != AltosLib.MISSING) + if (accel_along != AltosLib.MISSING) { + System.out.printf("accel along %d\n", accel_along); return accel_along; + } switch (imu_type) { case imu_type_telemega_v1_v2: @@ -407,6 +409,7 @@ public class AltosIMU implements Cloneable { AltosIMU imu = new AltosIMU(link); AltosCalData cal_data = listener.cal_data(); + System.out.printf("imu_model %d mag_model %d\n", imu.imu_model, imu.mag_model); if (imu_type != AltosLib.MISSING) cal_data.set_imu_type(imu_type); if (imu != null) { diff --git a/altoslib/AltosIdleFetch.java b/altoslib/AltosIdleFetch.java index 2b92d729..b64ba0a4 100644 --- a/altoslib/AltosIdleFetch.java +++ b/altoslib/AltosIdleFetch.java @@ -41,6 +41,7 @@ class AltosIdler { static final int idle_adxl375_easymotor_v2 = 11; static final int idle_imu = 12; static final int idle_imu_et_v2 = 13; + static final int idle_imu_em_v3 = 14; static final int idle_sensor_tm = 100; static final int idle_sensor_metrum = 101; @@ -56,6 +57,7 @@ class AltosIdler { static final int idle_sensor_easymotor2 = 111; static final int idle_sensor_emini3 = 112; static final int idle_sensor_etimer2 = 113; + static final int idle_sensor_emega3 = 114; public void provide_data(AltosDataListener listener, AltosLink link) throws InterruptedException, TimeoutException, AltosUnknownProduct { for (int idler : idlers) { @@ -257,6 +259,12 @@ public class AltosIdleFetch implements AltosDataProvider { AltosIdler.idle_ms5607, AltosIdler.idle_imu_em_v2, AltosIdler.idle_sensor_mega), + new AltosIdler("EasyMega-v3", + AltosIdler.idle_adxl375, + AltosIdler.idle_ms5607, + AltosIdler.idle_imu, + AltosIdler.idle_mag, + AltosIdler.idle_sensor_mega), new AltosIdler("TeleGPS-v1", AltosIdler.idle_gps, AltosIdler.idle_sensor_tgps1), diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 7cd0e15c..82b5881a 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -388,6 +388,7 @@ public class AltosLib { public static final int AO_LOG_FORMAT_TELEMEGA_5 = 21; public static final int AO_LOG_FORMAT_TELEMEGA_6 = 22; public static final int AO_LOG_FORMAT_EASYTIMER_2 = 23; + public static final int AO_LOG_FORMAT_EASYMEGA_3 = 24; public static final int AO_LOG_FORMAT_NONE = 127; public static final int model_mpu6000 = 0; @@ -615,6 +616,7 @@ public class AltosLib { case product_telegps: return "TeleGPS"; case product_easymini: return "EasyMini"; case product_telemini: return "TeleMini"; + case product_easymega: return "EasyMega"; case product_easymotor: return "EasyMotor"; default: return "unknown"; } @@ -655,6 +657,7 @@ public class AltosLib { case AO_LOG_FORMAT_TELEMEGA_3: return product_telemega; case AO_LOG_FORMAT_EASYMEGA_2: + case AO_LOG_FORMAT_EASYMEGA_3: return product_easymega; case AO_LOG_FORMAT_TELESTATIC: return product_altusmetrum; -- 2.30.2