X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FTabPad.java;h=c8e2ed644040bc35277c91d92bcf7ce784b0a660;hp=8b3c401290055006cd7332652265b3d7e09d470e;hb=47956ac01397c0a7fafc6b0a4840113186924b2e;hpb=c2640c09c76ce32e471dcf6df83095d146bb39a2 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 8b3c4012..c8e2ed64 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altoslib_5.*; import android.app.Activity; import android.os.Bundle; @@ -29,14 +29,17 @@ import android.widget.ImageView; import android.widget.TextView; import android.location.Location; -public class TabPad extends Fragment implements AltosDroidTab { +public class TabPad extends AltosDroidTab { AltosDroid mAltosDroid; private TextView mBatteryVoltageView; + private TextView mBatteryVoltageLabel; private GoNoGoLights mBatteryLights; private TextView mApogeeVoltageView; + private TextView mApogeeVoltageLabel; private GoNoGoLights mApogeeLights; private TextView mMainVoltageView; + private TextView mMainVoltageLabel; private GoNoGoLights mMainLights; private TextView mDataLoggingView; private GoNoGoLights mDataLoggingLights; @@ -59,16 +62,19 @@ public class TabPad extends Fragment implements AltosDroidTab { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.tab_pad, container, false); mBatteryVoltageView = (TextView) v.findViewById(R.id.battery_voltage_value); + mBatteryVoltageLabel = (TextView) v.findViewById(R.id.battery_voltage_label); mBatteryLights = new GoNoGoLights((ImageView) v.findViewById(R.id.battery_redled), (ImageView) v.findViewById(R.id.battery_greenled), getResources()); mApogeeVoltageView = (TextView) v.findViewById(R.id.apogee_voltage_value); + mApogeeVoltageLabel = (TextView) v.findViewById(R.id.apogee_voltage_label); mApogeeLights = new GoNoGoLights((ImageView) v.findViewById(R.id.apogee_redled), (ImageView) v.findViewById(R.id.apogee_greenled), getResources()); mMainVoltageView = (TextView) v.findViewById(R.id.main_voltage_value); + mMainVoltageLabel = (TextView) v.findViewById(R.id.main_voltage_label); mMainLights = new GoNoGoLights((ImageView) v.findViewById(R.id.main_redled), (ImageView) v.findViewById(R.id.main_greenled), getResources()); @@ -101,48 +107,64 @@ public class TabPad extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { - if (state != null) { - mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery)); - mBatteryLights.set(state.battery > 3.7, state.battery == AltosRecord.MISSING); - - mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING); + public String tab_name() { return "pad"; } - mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING); + public void show(AltosState state, AltosGreatCircle from_receiver, Location receiver) { + if (state != null) { + mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery_voltage)); + mBatteryLights.set(state.battery_voltage >= AltosLib.ao_battery_good, state.battery_voltage == AltosLib.MISSING); + if (state.apogee_voltage == AltosLib.MISSING) { + mApogeeVoltageView.setVisibility(View.GONE); + mApogeeVoltageLabel.setVisibility(View.GONE); + } else { + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); + mApogeeVoltageView.setVisibility(View.VISIBLE); + mApogeeVoltageLabel.setVisibility(View.VISIBLE); + } + mApogeeLights.set(state.apogee_voltage >= AltosLib.ao_igniter_good, state.apogee_voltage == AltosLib.MISSING); + if (state.main_voltage == AltosLib.MISSING) { + mMainVoltageView.setVisibility(View.GONE); + mMainVoltageLabel.setVisibility(View.GONE); + } else { + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage)); + mMainVoltageView.setVisibility(View.VISIBLE); + mMainVoltageLabel.setVisibility(View.VISIBLE); + } + mMainLights.set(state.main_voltage >= AltosLib.ao_igniter_good, state.main_voltage == AltosLib.MISSING); - if (state.data.flight != 0) { - if (state.data.state <= AltosLib.ao_flight_pad) + if (state.flight != 0) { + if (state.state <= AltosLib.ao_flight_pad) mDataLoggingView.setText("Ready to record"); - else if (state.data.state < AltosLib.ao_flight_landed) + else if (state.state < AltosLib.ao_flight_landed) mDataLoggingView.setText("Recording data"); else mDataLoggingView.setText("Recorded data"); } else { mDataLoggingView.setText("Storage full"); } - mDataLoggingLights.set(state.data.flight != 0, state.data.flight != AltosRecord.MISSING); + mDataLoggingLights.set(state.flight != 0, state.flight == AltosLib.MISSING); if (state.gps != null) { - mGPSLockedView.setText(AltosDroid.number("%4d sats", state.gps.nsat)); + int soln = state.gps.nsat; + int nsat = state.gps.cc_gps_sat != null ? state.gps.cc_gps_sat.length : 0; + mGPSLockedView.setText(String.format("%4d in soln, %4d in view", soln, nsat)); mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4, false); if (state.gps_ready) mGPSReadyView.setText("Ready"); else - mGPSReadyView.setText(AltosDroid.number("Waiting %d", state.gps_waiting)); + mGPSReadyView.setText(AltosDroid.integer("Waiting %d", state.gps_waiting)); } else mGPSLockedLights.set(false, true); mGPSReadyLights.set(state.gps_ready, state.gps == null); } if (receiver != null) { - double altitude = 0; + double altitude = AltosLib.MISSING; if (receiver.hasAltitude()) altitude = receiver.getAltitude(); mPadLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); - mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); - mPadAltitudeView.setText(AltosDroid.number("%4.0f m", altitude)); + mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W")); + set_value(mPadAltitudeView, AltosConvert.height, 6, altitude); } }