param-reset: Add option to reset all configurable params, but not the ones that store vehicle information

This commit is contained in:
Thomas Debrunner
2022-04-14 07:57:48 +02:00
committed by Beat Küng
parent 3f13c70cae
commit f6bdc42977
3 changed files with 24 additions and 7 deletions
+5 -1
View File
@@ -1535,11 +1535,15 @@ Commander::handle_command(const vehicle_command_s &cmd)
} else if (((int)(cmd.param1)) == 2) {
answer_command(cmd, vehicle_command_s::VEHICLE_CMD_RESULT_ACCEPTED);
_worker_thread.startTask(WorkerThread::Request::ParamResetAll);
_worker_thread.startTask(WorkerThread::Request::ParamResetAllConfig);
} else if (((int)(cmd.param1)) == 3) {
answer_command(cmd, vehicle_command_s::VEHICLE_CMD_RESULT_ACCEPTED);
_worker_thread.startTask(WorkerThread::Request::ParamResetSensorFactory);
} else if (((int)(cmd.param1)) == 4) {
answer_command(cmd, vehicle_command_s::VEHICLE_CMD_RESULT_ACCEPTED);
_worker_thread.startTask(WorkerThread::Request::ParamResetAll);
}
}
+18 -6
View File
@@ -174,14 +174,26 @@ void WorkerThread::threadEntry()
_ret_value = 0;
break;
case Request::ParamResetSensorFactory:
const char *reset_cal[] = { "CAL_ACC*", "CAL_GYRO*", "CAL_MAG*" };
param_reset_specific(reset_cal, sizeof(reset_cal) / sizeof(reset_cal[0]));
_ret_value = param_save_default();
case Request::ParamResetSensorFactory: {
const char *reset_cal[] = { "CAL_ACC*", "CAL_GYRO*", "CAL_MAG*" };
param_reset_specific(reset_cal, sizeof(reset_cal) / sizeof(reset_cal[0]));
_ret_value = param_save_default();
#if defined(CONFIG_BOARDCTL_RESET)
px4_reboot_request(false, 400_ms);
px4_reboot_request(false, 400_ms);
#endif // CONFIG_BOARDCTL_RESET
break;
break;
}
case Request::ParamResetAllConfig: {
const char *exclude_list[] = {
"LND_FLIGHT_T_HI",
"LND_FLIGHT_T_LO",
"COM_FLIGHT_UUID"
};
param_reset_excludes(exclude_list, sizeof(exclude_list) / sizeof(exclude_list[0]));
_ret_value = 0;
break;
}
}
_state.store((int)State::Finished); // set this last to signal the main thread we're done
+1
View File
@@ -64,6 +64,7 @@ public:
ParamSaveDefault,
ParamResetAll,
ParamResetSensorFactory,
ParamResetAllConfig
};
WorkerThread() = default;