X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FTabPad.java;h=5ff9d12bbc17ebfa1fd1ec718dab98324257256c;hp=92bb9013375b47ce18cf86a087ead4c2e2e192af;hb=c4af5cb233013b35d6763f5adf8d11b47f847111;hpb=9af72a2e629779833ff1787bbfc2ddc8b9d88bba diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 92bb9013..5ff9d12b 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -22,25 +22,25 @@ import org.altusmetrum.altoslib_7.*; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; +import android.view.*; +import android.widget.*; import android.location.Location; public class TabPad extends AltosDroidTab { private TextView battery_voltage_view; private GoNoGoLights battery_lights; + private TableRow receiver_row; private TextView receiver_voltage_view; private TextView receiver_voltage_label; private GoNoGoLights receiver_voltage_lights; + private TableRow apogee_row; private TextView apogee_voltage_view; private TextView apogee_voltage_label; private GoNoGoLights apogee_lights; + private TableRow main_row; private TextView main_voltage_view; private TextView main_voltage_label; private GoNoGoLights main_lights; @@ -54,9 +54,15 @@ public class TabPad extends AltosDroidTab { private TextView gps_ready_view; private GoNoGoLights gps_ready_lights; - private TextView pad_latitude_view; - private TextView pad_longitude_view; - private TextView pad_altitude_view; + private TextView receiver_latitude_view; + private TextView receiver_longitude_view; + private TextView receiver_altitude_view; + + private TableRow[] ignite_row = new TableRow[4]; + private TextView[] ignite_voltage_view = new TextView[4]; + private TextView[] ignite_voltage_label = new TextView[4]; + private GoNoGoLights[] ignite_lights = new GoNoGoLights[4]; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -66,18 +72,21 @@ public class TabPad extends AltosDroidTab { (ImageView) v.findViewById(R.id.battery_greenled), getResources()); + receiver_row = (TableRow) v.findViewById(R.id.receiver_row); receiver_voltage_view = (TextView) v.findViewById(R.id.receiver_voltage_value); receiver_voltage_label = (TextView) v.findViewById(R.id.receiver_voltage_label); receiver_voltage_lights = new GoNoGoLights((ImageView) v.findViewById(R.id.receiver_redled), (ImageView) v.findViewById(R.id.receiver_greenled), getResources()); + apogee_row = (TableRow) v.findViewById(R.id.apogee_row); apogee_voltage_view = (TextView) v.findViewById(R.id.apogee_voltage_value); apogee_voltage_label = (TextView) v.findViewById(R.id.apogee_voltage_label); apogee_lights = new GoNoGoLights((ImageView) v.findViewById(R.id.apogee_redled), (ImageView) v.findViewById(R.id.apogee_greenled), getResources()); + main_row = (TableRow) v.findViewById(R.id.main_row); main_voltage_view = (TextView) v.findViewById(R.id.main_voltage_value); main_voltage_label = (TextView) v.findViewById(R.id.main_voltage_label); main_lights = new GoNoGoLights((ImageView) v.findViewById(R.id.main_redled), @@ -99,37 +108,88 @@ public class TabPad extends AltosDroidTab { (ImageView) v.findViewById(R.id.gps_ready_greenled), getResources()); - pad_latitude_view = (TextView) v.findViewById(R.id.pad_lat_value); - pad_longitude_view = (TextView) v.findViewById(R.id.pad_lon_value); - pad_altitude_view = (TextView) v.findViewById(R.id.pad_alt_value); + for (int i = 0; i < 4; i++) { + int row_id, view_id, label_id, lights_id; + int red_id, green_id; + switch (i) { + case 0: + default: + row_id = R.id.ignite_a_row; + view_id = R.id.ignite_a_voltage_value; + label_id = R.id.ignite_a_voltage_label; + red_id = R.id.ignite_a_redled; + green_id = R.id.ignite_a_greenled; + break; + case 1: + row_id = R.id.ignite_b_row; + view_id = R.id.ignite_b_voltage_value; + label_id = R.id.ignite_b_voltage_label; + red_id = R.id.ignite_b_redled; + green_id = R.id.ignite_b_greenled; + break; + case 2: + row_id = R.id.ignite_c_row; + view_id = R.id.ignite_c_voltage_value; + label_id = R.id.ignite_c_voltage_label; + red_id = R.id.ignite_c_redled; + green_id = R.id.ignite_c_greenled; + break; + case 3: + row_id = R.id.ignite_d_row; + view_id = R.id.ignite_d_voltage_value; + label_id = R.id.ignite_d_voltage_label; + red_id = R.id.ignite_d_redled; + green_id = R.id.ignite_d_greenled; + break; + } + ignite_row[i] = (TableRow) v.findViewById(row_id); + ignite_voltage_view[i] = (TextView) v.findViewById(view_id); + ignite_voltage_label[i] = (TextView) v.findViewById(label_id); + ignite_lights[i] = new GoNoGoLights((ImageView) v.findViewById(red_id), + (ImageView) v.findViewById(green_id), + getResources()); + } + + receiver_latitude_view = (TextView) v.findViewById(R.id.receiver_lat_value); + receiver_longitude_view = (TextView) v.findViewById(R.id.receiver_lon_value); + receiver_altitude_view = (TextView) v.findViewById(R.id.receiver_alt_value); return v; } - public String tab_name() { return "pad"; } + public String tab_name() { return AltosDroid.tab_pad_name; } public void show(TelemetryState telem_state, AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (state != null) { - battery_voltage_view.setText(AltosDroid.number("%4.2f V", state.battery_voltage)); + battery_voltage_view.setText(AltosDroid.number(" %4.2f V", state.battery_voltage)); battery_lights.set(state.battery_voltage >= AltosLib.ao_battery_good, state.battery_voltage == AltosLib.MISSING); if (state.apogee_voltage == AltosLib.MISSING) { - apogee_voltage_view.setVisibility(View.GONE); - apogee_voltage_label.setVisibility(View.GONE); + apogee_row.setVisibility(View.GONE); } else { - apogee_voltage_view.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); - apogee_voltage_view.setVisibility(View.VISIBLE); - apogee_voltage_label.setVisibility(View.VISIBLE); + apogee_voltage_view.setText(AltosDroid.number(" %4.2f V", state.apogee_voltage)); + apogee_row.setVisibility(View.VISIBLE); } apogee_lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good, state.apogee_voltage == AltosLib.MISSING); if (state.main_voltage == AltosLib.MISSING) { - main_voltage_view.setVisibility(View.GONE); - main_voltage_label.setVisibility(View.GONE); + main_row.setVisibility(View.GONE); } else { - main_voltage_view.setText(AltosDroid.number("%4.2f V", state.main_voltage)); - main_voltage_view.setVisibility(View.VISIBLE); - main_voltage_label.setVisibility(View.VISIBLE); + main_voltage_view.setText(AltosDroid.number(" %4.2f V", state.main_voltage)); + main_row.setVisibility(View.VISIBLE); } main_lights.set(state.main_voltage >= AltosLib.ao_igniter_good, state.main_voltage == AltosLib.MISSING); + int num_igniter = state.ignitor_voltage == null ? 0 : state.ignitor_voltage.length; + + for (int i = 0; i < 4; i++) { + double voltage = i >= num_igniter ? AltosLib.MISSING : state.ignitor_voltage[i]; + if (voltage == AltosLib.MISSING) { + ignite_row[i].setVisibility(View.GONE); + } else { + ignite_voltage_view[i].setText(AltosDroid.number(" %4.2f V", voltage)); + ignite_row[i].setVisibility(View.VISIBLE); + } + ignite_lights[i].set(voltage >= AltosLib.ao_igniter_good, voltage == AltosLib.MISSING); + } + if (state.flight != 0) { if (state.state <= AltosLib.ao_flight_pad) data_logging_view.setText("Ready to record"); @@ -145,7 +205,7 @@ public class TabPad extends AltosDroidTab { if (state.gps != null) { int soln = state.gps.nsat; int nsat = state.gps.cc_gps_sat != null ? state.gps.cc_gps_sat.length : 0; - gps_locked_view.setText(String.format("%4d in soln, %4d in view", soln, nsat)); + gps_locked_view.setText(String.format("%d in soln, %d in view", soln, nsat)); gps_locked_lights.set(state.gps.locked && state.gps.nsat >= 4, false); if (state.gps_ready) gps_ready_view.setText("Ready"); @@ -158,12 +218,10 @@ public class TabPad extends AltosDroidTab { if (telem_state != null) { if (telem_state.receiver_battery == AltosLib.MISSING) { - receiver_voltage_view.setVisibility(View.GONE); - receiver_voltage_label.setVisibility(View.GONE); + receiver_row.setVisibility(View.GONE); } else { - receiver_voltage_view.setText(AltosDroid.number("%4.2f V", telem_state.receiver_battery)); - receiver_voltage_view.setVisibility(View.VISIBLE); - receiver_voltage_label.setVisibility(View.VISIBLE); + receiver_voltage_view.setText(AltosDroid.number(" %4.2f V", telem_state.receiver_battery)); + receiver_row.setVisibility(View.VISIBLE); } receiver_voltage_lights.set(telem_state.receiver_battery >= AltosLib.ao_battery_good, telem_state.receiver_battery == AltosLib.MISSING); } @@ -172,10 +230,9 @@ public class TabPad extends AltosDroidTab { double altitude = AltosLib.MISSING; if (receiver.hasAltitude()) altitude = receiver.getAltitude(); - pad_latitude_view.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); - pad_longitude_view.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W")); - set_value(pad_altitude_view, AltosConvert.height, 6, altitude); + receiver_latitude_view.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); + receiver_longitude_view.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W")); + set_value(receiver_altitude_view, AltosConvert.height, 1, altitude); } } - }