AP_BoardConfig: call PWM_SERVO_IGNORE_SAFETY on fmu as well

This commit is contained in:
Andrew Tridgell 2016-10-17 17:59:11 +11:00
parent 07c09ad6dc
commit 8cb93ae7c3
1 changed files with 14 additions and 1 deletions

View File

@ -138,9 +138,22 @@ void AP_BoardConfig::px4_setup_safety()
// setup channels to ignore the armed state
int px4io_fd = open("/dev/px4io", 0);
if (px4io_fd != -1) {
if (ioctl(px4io_fd, PWM_SERVO_IGNORE_SAFETY, (uint16_t)(0x0000FFFF & px4.ignore_safety_channels)) != 0) {
if (ioctl(px4io_fd, PWM_SERVO_IGNORE_SAFETY, (uint16_t)px4.ignore_safety_channels) != 0) {
hal.console->printf("IGNORE_SAFETY failed\n");
}
}
int px4fmu_fd = open("/dev/px4fmu", 0);
if (px4fmu_fd != -1) {
uint16_t mask = px4.ignore_safety_channels;
if (px4io_fd != -1) {
mask >>= 8;
}
if (ioctl(px4io_fd, PWM_SERVO_IGNORE_SAFETY, (uint16_t)mask) != 0) {
hal.console->printf("IGNORE_SAFETY failed\n");
}
close(px4fmu_fd);
}
if (px4io_fd != -1) {
close(px4io_fd);
}
#endif