X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosuilib%2FAltosInfoTable.java;h=09e497a5ec01a049ea5d54251bf24d14e840053e;hp=99f17617b4ce24916154ba5e686a112bd1095eed;hb=b2deef36f135b52ba2eea3042e9d1a1198d4a9ae;hpb=cb23b992be8ba40c97d8988c134a814a13ccd58c diff --git a/altosuilib/AltosInfoTable.java b/altosuilib/AltosInfoTable.java index 99f17617..09e497a5 100644 --- a/altosuilib/AltosInfoTable.java +++ b/altosuilib/AltosInfoTable.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,19 +16,19 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_7; +package org.altusmetrum.altosuilib_13; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; -import org.altusmetrum.altoslib_7.*; +import org.altusmetrum.altoslib_13.*; public class AltosInfoTable extends JTable implements AltosFlightDisplay, HierarchyListener { private AltosFlightInfoTableModel model; - static final int info_columns = 3; - static final int info_rows = 17; + static final int info_columns = 4; + static final int info_rows = 18; private AltosState last_state; private AltosListenerState last_listener_state; @@ -127,6 +128,8 @@ public class AltosInfoTable extends JTable implements AltosFlightDisplay, Hierar public void show(AltosState state, AltosListenerState listener_state) { + AltosCalData cal_data = state.cal_data(); + if (!isShowing()) { last_state = state; last_listener_state = listener_state; @@ -135,12 +138,16 @@ public class AltosInfoTable extends JTable implements AltosFlightDisplay, Hierar reset(); if (state != null) { - if (state.device_type != AltosLib.MISSING) - info_add_row(0, "Device", "%s", AltosLib.product_name(state.device_type)); + if (cal_data.device_type != AltosLib.MISSING) + info_add_row(0, "Device", "%s", AltosLib.product_name(cal_data.device_type)); + else if (cal_data.product != null) + info_add_row(0, "Device", "%s", cal_data.product); + if (state.tick() != AltosLib.MISSING) + info_add_row(0, "Tick", "%6d", state.tick()); if (state.altitude() != AltosLib.MISSING) info_add_row(0, "Altitude", "%6.0f m", state.altitude()); - if (state.ground_altitude() != AltosLib.MISSING) - info_add_row(0, "Pad altitude", "%6.0f m", state.ground_altitude()); + if (cal_data.ground_altitude != AltosLib.MISSING) + info_add_row(0, "Pad altitude", "%6.0f m", cal_data.ground_altitude); if (state.height() != AltosLib.MISSING) info_add_row(0, "Height", "%6.0f m", state.height()); if (state.max_height() != AltosLib.MISSING) @@ -263,6 +270,27 @@ public class AltosInfoTable extends JTable implements AltosFlightDisplay, Hierar } } } + + if (state != null && state.accel_along() != AltosLib.MISSING) { + info_add_row(3, "Accel along", "%8.1f m/s²", state.accel_along()); + info_add_row(3, "Accel across", "%8.1f m/s²", state.accel_across()); + info_add_row(3, "Accel through", "%8.1f m/s²", state.accel_through()); + info_add_row(3, "Gyro roll", "%8.1f °/s", state.gyro_roll()); + info_add_row(3, "Gyro pitch", "%8.1f °/s", state.gyro_pitch()); + info_add_row(3, "Gyro yaw", "%8.1f °/s", state.gyro_yaw()); + if (state.mag_along() != AltosLib.MISSING) { + /* Report mag in nanoteslas (1 G = 100000 nT (or γ)) */ + info_add_row(3, "Mag along", "%8.1f γ", state.mag_along() * 100000.0); + info_add_row(3, "Mag across", "%8.1f γ", state.mag_across() * 100000.0); + info_add_row(3, "Mag Through", "%8.1f γ", state.mag_through() * 100000.0); + } + } + + if (state != null && state.igniter_voltage != null) { + for (int i = 0; i < state.igniter_voltage.length; i++) + info_add_row(3, AltosLib.igniter_name(i), "%9.2f V", state.igniter_voltage[i]); + } + info_finish(); } }