diff options
| author | Keith Packard <keithp@keithp.com> | 2011-08-08 18:45:36 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-08-08 18:45:36 -0700 | 
| commit | dd383b86b9a13d7af2d6b07f4fb85ccc666ed898 (patch) | |
| tree | 8682a711514128cee000d726f87f8e883eb286cf /altosui/AltosConfig.java | |
| parent | 40544dbfe09c64f7764a5f0686415805611fab25 (diff) | |
altosui: Must set radio calibration before radio setting
Setting the radio calibration erases any previous radio setting as
the radio calibration change invalidates any previously computed radio
setting for a specific frequency.
Hence, the radio setting must be configured *after* the radio
calibration value lest it be ignored.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosConfig.java')
| -rw-r--r-- | altosui/AltosConfig.java | 22 | 
1 files changed, 10 insertions, 12 deletions
| diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index 694ef4db..d5d7d56a 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -132,13 +132,12 @@ public class AltosConfig implements ActionListener {  		config_ui.set_version(version.get());  		config_ui.set_main_deploy(main_deploy.get());  		config_ui.set_apogee_delay(apogee_delay.get()); -		config_ui.set_radio_frequency(frequency());  		config_ui.set_radio_calibration(radio_calibration.get()); +		config_ui.set_radio_frequency(frequency());  		config_ui.set_flight_log_max(flight_log_max.get());  		config_ui.set_ignite_mode(ignite_mode.get());  		config_ui.set_pad_orientation(pad_orientation.get());  		config_ui.set_callsign(callsign.get()); -		config_ui.set_radio_setting(radio_setting.get());  		config_ui.set_clean();  		config_ui.make_visible();  	} @@ -218,10 +217,12 @@ public class AltosConfig implements ActionListener {  		void save_data() {  			try {  				double frequency = frequency(); -				boolean has_setting = radio_setting.get() != 0; +				boolean has_setting = radio_setting.get() > 0;  				start_serial();  				serial_line.printf("c m %d\n", main_deploy.get());  				serial_line.printf("c d %d\n", apogee_delay.get()); +				if (!remote) +					serial_line.printf("c f %d\n", radio_calibration.get());  				serial_line.set_radio_frequency(frequency,  								has_setting,  								radio_calibration.get()); @@ -233,8 +234,6 @@ public class AltosConfig implements ActionListener {  					AltosPreferences.set_frequency(device.getSerial(), frequency);  					serial_line.start_remote();  				} -				if (!remote) -					serial_line.printf("c f %d\n", radio_calibration.get());  				serial_line.printf("c c %s\n", callsign.get());  				if (flight_log_max.get() != 0)  					serial_line.printf("c l %d\n", flight_log_max.get()); @@ -321,18 +320,17 @@ public class AltosConfig implements ActionListener {  	}  	double frequency() { -		int	setting = radio_setting.get(); - -		if (setting != 0) -			return AltosConvert.radio_setting_to_frequency(setting, radio_calibration.get()); -		else -			return AltosConvert.radio_channel_to_frequency(radio_channel.get()); +		System.out.printf("setting %d channel %d calibration %d\n", +				  radio_setting.get(), radio_channel.get(), radio_calibration.get()); +		return AltosConvert.radio_to_frequency(radio_setting.get(), +						       radio_calibration.get(), +						       radio_channel.get());  	}  	void set_frequency(double freq) {  		int	setting = radio_setting.get(); -		if (setting != 0) { +		if (setting > 0) {  			radio_setting.set(AltosConvert.radio_frequency_to_setting(freq,  										  radio_calibration.get()));  			radio_channel.set(0); | 
