aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/ardrone_interface
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-06-14 13:53:26 +0200
committerJulian Oes <julian@oes.ch>2013-06-14 13:53:26 +0200
commit90f5e30f2a177bed2ac08e76699ec3029292d640 (patch)
tree25752b2843f573e3affe42b7e20b8fc06c457290 /src/drivers/ardrone_interface
parent236053a600f5708aee0e5849f4fefc2380e7d101 (diff)
downloadpx4-firmware-90f5e30f2a177bed2ac08e76699ec3029292d640.tar.gz
px4-firmware-90f5e30f2a177bed2ac08e76699ec3029292d640.tar.bz2
px4-firmware-90f5e30f2a177bed2ac08e76699ec3029292d640.zip
Introduced new actuator_safety topic
Diffstat (limited to 'src/drivers/ardrone_interface')
-rw-r--r--src/drivers/ardrone_interface/ardrone_interface.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/drivers/ardrone_interface/ardrone_interface.c b/src/drivers/ardrone_interface/ardrone_interface.c
index 264041e65..4a6f30a4f 100644
--- a/src/drivers/ardrone_interface/ardrone_interface.c
+++ b/src/drivers/ardrone_interface/ardrone_interface.c
@@ -55,6 +55,7 @@
#include <uORB/uORB.h>
#include <uORB/topics/vehicle_status.h>
#include <uORB/topics/actuator_controls.h>
+#include <uORB/topics/actuator_safety.h>
#include <systemlib/systemlib.h>
@@ -247,13 +248,13 @@ int ardrone_interface_thread_main(int argc, char *argv[])
memset(&state, 0, sizeof(state));
struct actuator_controls_s actuator_controls;
memset(&actuator_controls, 0, sizeof(actuator_controls));
- struct actuator_armed_s armed;
- armed.armed = false;
+ struct actuator_safety_s safety;
+ safety.armed = false;
/* subscribe to attitude, motor setpoints and system state */
int actuator_controls_sub = orb_subscribe(ORB_ID_VEHICLE_ATTITUDE_CONTROLS);
int state_sub = orb_subscribe(ORB_ID(vehicle_status));
- int armed_sub = orb_subscribe(ORB_ID(actuator_armed));
+ int safety_sub = orb_subscribe(ORB_ID(actuator_safety));
printf("[ardrone_interface] Motors initialized - ready.\n");
fflush(stdout);
@@ -322,18 +323,14 @@ int ardrone_interface_thread_main(int argc, char *argv[])
} else {
/* MAIN OPERATION MODE */
- /* get a local copy of the vehicle state */
- orb_copy(ORB_ID(vehicle_status), state_sub, &state);
/* get a local copy of the actuator controls */
orb_copy(ORB_ID_VEHICLE_ATTITUDE_CONTROLS, actuator_controls_sub, &actuator_controls);
- orb_copy(ORB_ID(actuator_armed), armed_sub, &armed);
+ orb_copy(ORB_ID(actuator_safety), safety_sub, &safety);
/* for now only spin if armed and immediately shut down
* if in failsafe
*/
- //XXX fix this
- //if (armed.armed && !armed.lockdown) {
- if (state.flag_fmu_armed) {
+ if (safety.armed && !safety.lockdown) {
ardrone_mixing_and_output(ardrone_write, &actuator_controls);
} else {