diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-08-27 07:59:53 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-08-27 07:59:53 +0200 |
commit | 1fbdca4ee988d5816eebbd9fef95ce498bacfd14 (patch) | |
tree | c4e9bde9a283d1ecb37d8ed57f4575de00176dd1 /src | |
parent | c79bc7073eb65f08b724a3893d183d20781f06e2 (diff) | |
download | px4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.tar.gz px4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.tar.bz2 px4-firmware-1fbdca4ee988d5816eebbd9fef95ce498bacfd14.zip |
Add command to run termination failsafe
Diffstat (limited to 'src')
-rw-r--r-- | src/systemcmds/pwm/pwm.c | 21 |
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; } |