diff options
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<AltosLine> telem;
 +	LinkedBlockingQueue<AltosLine> 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<AltosLine>();
 -		link.add_monitor(telem);
 +		state = null;
 +		telemQueue = new LinkedBlockingQueue<AltosLine>();
 +		link.add_monitor(telemQueue);
  	}
  }
 | 
