diff --git a/conf/modules/fc_rotor.xml b/conf/modules/fc_rotor.xml index e17f68c260..424b44d696 100644 --- a/conf/modules/fc_rotor.xml +++ b/conf/modules/fc_rotor.xml @@ -7,6 +7,13 @@ The vehicles are are running the INDI control and the desired acceleration are given by script from ground. + + + + + + +
diff --git a/sw/airborne/modules/multi/fc_rotor/fc_rotor.c b/sw/airborne/modules/multi/fc_rotor/fc_rotor.c index e46b2cae7f..2ecfe1c4f9 100644 --- a/sw/airborne/modules/multi/fc_rotor/fc_rotor.c +++ b/sw/airborne/modules/multi/fc_rotor/fc_rotor.c @@ -25,8 +25,15 @@ #include "modules/multi/fc_rotor/fc_rotor.h" #include "firmwares/rotorcraft/navigation.h" +bool fc_rotor_started = false; + +#ifndef FCROTOR_STARTED +#define FCROTOR_STARTED true +#endif + void fc_rotor_init(void) { + fc_rotor_started = FCROTOR_STARTED; } void fc_read_msg(uint8_t *buf) @@ -34,7 +41,7 @@ void fc_read_msg(uint8_t *buf) struct FloatVect3 u; uint8_t ac_id = DL_DESIRED_SETPOINT_ac_id(buf); - if (ac_id == AC_ID) { + if ((ac_id == AC_ID) && (fc_rotor_started == true)) { // 0: 2D control, 1: 3D control uint8_t flag = DL_DESIRED_SETPOINT_flag(buf); diff --git a/sw/airborne/modules/multi/fc_rotor/fc_rotor.h b/sw/airborne/modules/multi/fc_rotor/fc_rotor.h index 0001a631d2..902078364e 100644 --- a/sw/airborne/modules/multi/fc_rotor/fc_rotor.h +++ b/sw/airborne/modules/multi/fc_rotor/fc_rotor.h @@ -32,4 +32,6 @@ extern void fc_rotor_init(void); extern void fc_read_msg(uint8_t *buf); +extern bool fc_rotor_started; + #endif // FC_ROTOR_H