From ee14ad16c242e8bd7a9d33ebf569211d1490b8e1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 3 Sep 2013 15:10:23 +1200 Subject: [PATCH] altosdroid: update to support new state code Signed-off-by: Mike Beattie Conflicts: altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java --- .../altusmetrum/AltosDroid/AltosDroid.java | 12 +++--- .../altusmetrum/AltosDroid/AltosVoice.java | 6 +-- .../org/altusmetrum/AltosDroid/TabAscent.java | 8 ++-- .../altusmetrum/AltosDroid/TabDescent.java | 8 ++-- .../org/altusmetrum/AltosDroid/TabPad.java | 20 +++++----- .../AltosDroid/TelemetryReader.java | 37 ++++++++++--------- 6 files changed, 46 insertions(+), 45 deletions(-) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 6f378777..92287476 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -147,7 +147,7 @@ public class AltosDroid extends FragmentActivity { case MSG_CRC_ERROR: case MSG_UPDATE_AGE: if (ad.saved_state != null) { - ad.mAgeView.setText(String.format("%d", (System.currentTimeMillis() - ad.saved_state.report_time + 500) / 1000)); + ad.mAgeView.setText(String.format("%d", (System.currentTimeMillis() - ad.saved_state.received_time + 500) / 1000)); } break; } @@ -243,11 +243,11 @@ public class AltosDroid extends FragmentActivity { } if (state != null) { - mCallsignView.setText(state.data.callsign); - mSerialView.setText(String.format("%d", state.data.serial)); - mFlightView.setText(String.format("%d", state.data.flight)); - mStateView.setText(state.data.state()); - mRSSIView.setText(String.format("%d", state.data.rssi)); + mCallsignView.setText(state.callsign); + mSerialView.setText(String.format("%d", state.serial)); + mFlightView.setText(String.format("%d", state.flight)); + mStateView.setText(state.state_name()); + mRSSIView.setText(String.format("%d", state.rssi)); } for (AltosDroidTab mTab : mTabs) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index df7409c4..c512089f 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -63,7 +63,7 @@ public class AltosVoice { boolean spoke = false; if (old_state == null || old_state.state != state.state) { - speak(state.data.state()); + speak(state.state_name()); if ((old_state == null || old_state.state <= AltosLib.ao_flight_boost) && state.state > AltosLib.ao_flight_boost) { speak(String.format("max speed: %d meters per second.", (int) (state.max_speed() + 0.5))); @@ -132,10 +132,10 @@ public class AltosVoice { */ if (state.state >= AltosLib.ao_flight_drogue && (last || - System.currentTimeMillis() - state.report_time >= 15000 || + System.currentTimeMillis() - state.received_time >= 15000 || state.state == AltosLib.ao_flight_landed)) { - if (Math.abs(state.baro_speed) < 20 && state.height < 100) + if (Math.abs(state.speed) < 20 && state.height < 100) speak("rocket landed safely"); else speak("rocket may have crashed"); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java index 69bc68c9..95aaea36 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java @@ -102,11 +102,11 @@ public class TabAscent extends Fragment implements AltosDroidTab { mLongitudeView.setText(""); } - mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosLib.MISSING); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); + mApogeeLights.set(state.apogee_voltage > 3.2, state.apogee_voltage == AltosLib.MISSING); - mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosLib.MISSING); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage)); + mMainLights.set(state.main_voltage > 3.2, state.main_voltage == AltosLib.MISSING); } } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index ee09ea88..6076c401 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -111,11 +111,11 @@ public class TabDescent extends Fragment implements AltosDroidTab { mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); } - mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosLib.MISSING); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); + mApogeeLights.set(state.apogee_voltage > 3.2, state.apogee_voltage == AltosLib.MISSING); - mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosLib.MISSING); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage)); + mMainLights.set(state.main_voltage > 3.2, state.main_voltage == AltosLib.MISSING); } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index f9d30b34..2c6732e5 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -103,26 +103,26 @@ public class TabPad extends Fragment implements AltosDroidTab { 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 == AltosLib.MISSING); + mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery_voltage)); + mBatteryLights.set(state.battery_voltage > 3.7, state.battery_voltage == AltosLib.MISSING); - mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosLib.MISSING); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); + mApogeeLights.set(state.apogee_voltage > 3.2, state.apogee_voltage == AltosLib.MISSING); - mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosLib.MISSING); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage)); + mMainLights.set(state.main_voltage > 3.2, 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 == AltosLib.MISSING); + mDataLoggingLights.set(state.flight != 0, state.flight == AltosLib.MISSING); if (state.gps != null) { mGPSLockedView.setText(AltosDroid.integer("%4d sats", state.gps.nsat)); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index e37019fd..cdd1decd 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -37,25 +37,29 @@ public class TelemetryReader extends Thread { Handler handler; AltosLink link; - AltosRecord previous; + AltosState state = null; - LinkedBlockingQueue telem; + LinkedBlockingQueue telemQueue; - public AltosRecord read() throws ParseException, AltosCRCException, InterruptedException, IOException { - AltosLine l = telem.take(); + public AltosState read() throws ParseException, AltosCRCException, InterruptedException, IOException { + AltosLine l = telemQueue.take(); if (l.line == null) throw new IOException("IO error"); - AltosRecord next = AltosTelemetry.parse(l.line, previous); - previous = next; - return next; + AltosTelemetry telem = AltosTelemetryLegacy.parse(l.line); + if (state == null) + state = new AltosState(); + else + state = state.clone(); + telem.update_state(state); + return state; } public void close() { - previous = null; - link.remove_monitor(telem); + state = null; + link.remove_monitor(telemQueue); link = null; - telem.clear(); - telem = null; + telemQueue.clear(); + telemQueue = null; } public void run() { @@ -64,10 +68,7 @@ public class TelemetryReader extends Thread { try { for (;;) { try { - AltosRecord record = read(); - if (record == null) - break; - state = new AltosState(record, state); + state = read(); handler.obtainMessage(TelemetryService.MSG_TELEMETRY, state).sendToTarget(); } catch (ParseException pp) { Log.e(TAG, String.format("Parse error: %d \"%s\"", pp.getErrorOffset(), pp.getMessage())); @@ -87,8 +88,8 @@ public class TelemetryReader extends Thread { link = in_link; handler = in_handler; - previous = null; - telem = new LinkedBlockingQueue(); - link.add_monitor(telem); + state = null; + telemQueue = new LinkedBlockingQueue(); + link.add_monitor(telemQueue); } } -- 2.30.2