Hack to detect the number of control inputs

This commit is contained in:
Lorenz Meier
2012-11-10 19:04:04 +01:00
parent 92fe049f65
commit 6adab3b319
+16 -2
View File
@@ -441,13 +441,27 @@ l_actuator_outputs(struct listener *l)
uint8_t mavlink_mode = 0;
get_mavlink_mode_and_state(&mavlink_state, &mavlink_mode);
float rudder, throttle;
// XXX very ugly, needs rework
if (isfinite(act_outputs.output[3])
&& act_outputs.output[3] > 800 && act_outputs.output[3] < 2200) {
/* throttle is fourth output */
rudder = (act_outputs.output[2] - 1000.0f) / 1000.0f;
throttle = (act_outputs.output[3] - 1000.0f) / 1000.0f;
} else {
/* only three outputs, put throttle on position 4 / index 3 */
rudder = 0;
throttle = (act_outputs.output[2] - 1000.0f) / 1000.0f;
}
/* HIL message as per MAVLink spec */
mavlink_msg_hil_controls_send(chan,
hrt_absolute_time(),
(act_outputs.output[0] - 1000.0f) / 1000.0f,
(act_outputs.output[1] - 1000.0f) / 1000.0f,
(act_outputs.output[2] - 1000.0f) / 1000.0f,
(act_outputs.output[3] - 1000.0f) / 1000.0f,
rudder,
throttle,
(act_outputs.output[4] - 1000.0f) / 1000.0f,
(act_outputs.output[5] - 1000.0f) / 1000.0f,
(act_outputs.output[6] - 1000.0f) / 1000.0f,