diff options
author | Keith Packard <keithp@keithp.com> | 2017-05-09 00:17:40 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2017-05-09 00:17:40 -0700 |
commit | 44c0cecabb3a815dbf7f52e6b2dad364cc72b60c (patch) | |
tree | 8f86ca6790b07a87602488d03b514c60fec6221e /altoslib/AltosState.java | |
parent | d3c1ce741c54c5640b7e1b07d86be1ce0951944b (diff) |
altoslib: Add set_config_data to AltosState
Initialize all config-data related state values.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosState.java')
-rw-r--r-- | altoslib/AltosState.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index fd2684db..8c3f93f0 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -1388,7 +1388,7 @@ public class AltosState implements Cloneable { public void set_ms5607(AltosMs5607 ms5607) { baro = ms5607; - if (baro != null) { + if (baro != null && baro.pa != AltosLib.MISSING && baro.cc != AltosLib.MISSING) { set_pressure(baro.pa); set_temperature(baro.cc / 100.0); } @@ -1521,6 +1521,23 @@ public class AltosState implements Cloneable { temp_gps = null; } + public void set_config_data(AltosConfigData config_data) { + if (config_data.callsign != null) + set_callsign(config_data.callsign); + if (config_data.accel_cal_plus != AltosLib.MISSING && + config_data.accel_cal_minus != AltosLib.MISSING) + set_accel_g(config_data.accel_cal_plus, config_data.accel_cal_minus); + if (config_data.product != null) + set_product(config_data.product); + if (config_data.log_format != AltosLib.MISSING) + set_log_format(config_data.log_format); + if (config_data.serial != AltosLib.MISSING) + set_serial(config_data.serial); + AltosMs5607 ms5607 = new AltosMs5607(config_data); + if (ms5607.valid_config()) + set_ms5607(ms5607); + } + public AltosState clone() { AltosState s = new AltosState(); s.copy(this); |