diff options
Diffstat (limited to 'altoslib/AltosTelemetryConfiguration.java')
| -rw-r--r-- | altoslib/AltosTelemetryConfiguration.java | 60 | 
1 files changed, 26 insertions, 34 deletions
| diff --git a/altoslib/AltosTelemetryConfiguration.java b/altoslib/AltosTelemetryConfiguration.java index 6ded5461..ea307442 100644 --- a/altoslib/AltosTelemetryConfiguration.java +++ b/altoslib/AltosTelemetryConfiguration.java @@ -16,47 +16,39 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_12;  public class AltosTelemetryConfiguration extends AltosTelemetryStandard { -	int	device_type; -	int	flight; -	int	config_major; -	int	config_minor; -	int	apogee_delay; -	int	main_deploy; -	int	v_batt; -	int	flight_log_max; -	String	callsign; -	String	version; - -	public AltosTelemetryConfiguration(int[] bytes) { -		super(bytes); +	int	device_type() { return uint8(5); } +	int	flight() { return uint16(6); } +	int	config_major() { return uint8(8); } +	int	config_minor() { return uint8(9); } +	int	apogee_delay() { return uint16(10); } +	int	main_deploy() { return uint16(12); } +	int	v_batt() { return uint16(10); } +	int	flight_log_max() { return uint16(14); } +	String	callsign() { return string(16, 8); } +	String	version() { return string(24, 8); } -		device_type    = uint8(5); -		flight         = uint16(6); -		config_major   = uint8(8); -		config_minor   = uint8(9); -		v_batt	       = uint16(10); -		apogee_delay   = uint16(10); -		main_deploy    = uint16(12); -		flight_log_max = uint16(14); -		callsign       = string(16, 8); -		version        = string(24, 8); +	public AltosTelemetryConfiguration(int[] bytes) throws AltosCRCException { +		super(bytes);  	} -	public void update_state(AltosState state) { -		super.update_state(state); -		state.set_device_type(device_type); -		state.set_flight(flight); -		state.set_config(config_major, config_minor, flight_log_max); -		if (device_type == AltosLib.product_telegps) -			state.set_battery_voltage(AltosConvert.tele_gps_voltage(v_batt)); +	public void provide_data(AltosDataListener listener) { +		super.provide_data(listener); + +		AltosCalData cal_data = listener.cal_data(); + +		cal_data.set_device_type(device_type()); +		cal_data.set_flight(flight()); +		cal_data.set_config(config_major(), config_minor(), flight_log_max()); +		if (device_type() == AltosLib.product_telegps) +			listener.set_battery_voltage(AltosConvert.tele_gps_voltage(v_batt()));  		else -			state.set_flight_params(apogee_delay, main_deploy); +			cal_data.set_flight_params(apogee_delay() / 100.0, main_deploy()); -		state.set_callsign(callsign); -		state.set_firmware_version(version); +		cal_data.set_callsign(callsign()); +		cal_data.set_firmware_version(version());  	}  } | 
