adjust_accel_cal();
switch (pad_orientation) {
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_UP:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPRIGHT:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_UP:
return accel_cal_plus_cooked;
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_DOWN:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPSIDEDOWN:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_DOWN:
return invert_accel_value(accel_cal_minus_cooked);
default:
return AltosLib.MISSING;
adjust_accel_cal();
switch (pad_orientation) {
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_UP:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPRIGHT:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_UP:
return accel_cal_minus_cooked;
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_DOWN:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPSIDEDOWN:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_DOWN:
return invert_accel_value(accel_cal_plus_cooked);
default:
return AltosLib.MISSING;
{
switch (pad_orientation) {
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_UP:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPRIGHT:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_UP:
accel_cal_plus_cooked = accel_cal_plus;
accel_cal_minus_cooked = accel_cal_minus;
accel_cal_adjusted = true;
break;
case AltosLib.AO_PAD_ORIENTATION_ANTENNA_DOWN:
+ case AltosLib.AO_PAD_ORIENTATION_WORDS_UPSIDEDOWN:
+ case AltosLib.AO_PAD_ORIENTATION_BIG_PARTS_DOWN:
accel_cal_plus_cooked = invert_accel_value(accel_cal_minus);
accel_cal_minus_cooked = invert_accel_value(accel_cal_plus);
accel_cal_adjusted = true;
dest.set_flight_log_max_enabled(max_enabled);
dest.set_radio_enable(radio_enable);
- dest.set_flight_log_max_limit(log_space() / 1024);
+ dest.set_flight_log_max_limit(log_space() >> 10, storage_erase_unit >> 10);
dest.set_flight_log_max(flight_log_max);
dest.set_ignite_mode(ignite_mode);
dest.set_pad_orientation(pad_orientation);
has_setting,
radio_calibration);
/* When remote, reset the dongle frequency at the same time */
- if (remote) {
- link.flush_output();
+ if (remote && frequency != link.frequency) {
link.stop_remote();
link.set_radio_frequency(frequency);
- link.flush_output();
link.start_remote();
}
}
if (telemetry_rate != AltosLib.MISSING) {
link.printf("c T %d\n", telemetry_rate);
- if (remote) {
- link.flush_output();
+ if (remote && telemetry_rate != link.telemetry_rate) {
link.stop_remote();
link.set_telemetry_rate(telemetry_rate);
- link.flush_output();
link.start_remote();
}
}
if (callsign != null) {
link.printf("c c %s\n", callsign);
- if (remote) {
- link.flush_output();
+ if (remote && !callsign.equals(link.callsign)) {
+ System.out.printf("changing link callsign from %s to %s\n", link.callsign, callsign);
link.stop_remote();
link.set_callsign(callsign);
- link.flush_output();
link.start_remote();
}
}
link.printf("c a %d %d\n", plus, minus);
/* HAS_LOG */
- if (flight_log_max != 0)
+ if (flight_log_max != 0 && flight_log_max != AltosLib.MISSING)
link.printf("c l %d\n", flight_log_max);
/* HAS_IGNITE */
/* UI doesn't support accel cal */
link.printf("c w\n");
- link.flush_output();
+ read_link(link, "Saved");
}
public AltosConfigData(AltosLink link) throws InterruptedException, TimeoutException {