From bb516be61edacd455ca645db913d6b03175c058c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 28 Dec 2017 15:28:15 +0100 Subject: [PATCH] Commander: Enforce correct system configuration for HITL This is important to ensure that users are not trying to use HITL with airframes that will not work. --- .../commander/state_machine_helper.cpp | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index 9f3a1bb566..a1c542a842 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -520,11 +520,28 @@ transition_result_t hil_state_transition(hil_state_t new_state, orb_advert_t sta int32_t hitl_on = 0; param_get(param_find("SYS_HITL"), &hitl_on); + int32_t airframe = 0; + param_get(param_find("SYS_AUTOSTART"), &airframe); + + if (!(airframe == 1000 + || airframe == 1001 + || airframe == 4001 + || airframe == 4002 + || airframe == 4010 + || airframe == 4011)) { + mavlink_log_critical(mavlink_log_pub, "Not a supported airframe config for HITL."); + ret = TRANSITION_DENIED; + break; + } + + // Check for compatible airframes + + if (hitl_on) { - mavlink_log_info(mavlink_log_pub, "Enabled Hardware-in-the-loop simulation."); + mavlink_log_info(mavlink_log_pub, "Enabled Hardware-in-the-loop simulation (HITL)."); } else { - mavlink_log_critical(mavlink_log_pub, "Set parameter SYS_HITL to 1 before starting HITL."); + mavlink_log_critical(mavlink_log_pub, "Set SYS_HITL to 1 and reboot to enable HITL."); ret = TRANSITION_DENIED; }