aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-08-27 07:59:53 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-08-27 07:59:53 +0200
commit1fbdca4ee988d5816eebbd9fef95ce498bacfd14 (patch)
treec4e9bde9a283d1ecb37d8ed57f4575de00176dd1
parentc79bc7073eb65f08b724a3893d183d20781f06e2 (diff)
downloadpx4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.tar.gz
px4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.tar.bz2
px4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.zip
Add command to run termination failsafe
-rw-r--r--src/systemcmds/pwm/pwm.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/systemcmds/pwm/pwm.c b/src/systemcmds/pwm/pwm.c
index c8d698b86..478c2a772 100644
--- a/src/systemcmds/pwm/pwm.c
+++ b/src/systemcmds/pwm/pwm.c
@@ -654,9 +654,28 @@ pwm_main(int argc, char *argv[])
}
}
exit(0);
+ } else if (!strcmp(argv[1], "terminatefail")) {
+
+ if (argc < 3) {
+ errx(1, "arg missing [on|off]");
+ } else {
+
+ if (!strcmp(argv[2], "on")) {
+ /* force failsafe */
+ ret = ioctl(fd, PWM_SERVO_SET_TERMINATION_FAILSAFE, 1);
+ } else {
+ /* force failsafe */
+ ret = ioctl(fd, PWM_SERVO_SET_TERMINATION_FAILSAFE, 0);
+ }
+
+ if (ret != OK) {
+ warnx("FAILED setting termination failsafe %s", argv[2]);
+ }
+ }
+ exit(0);
}
- usage("specify arm|disarm|rate|failsafe|disarmed|min|max|test|info|forcefail");
+ usage("specify arm|disarm|rate|failsafe\n\t\tdisarmed|min|max|test|info|forcefail|terminatefail");
return 0;
}