From 091b989b30f1d35e1fb007828a1d84d278e0f243 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 24 Jul 2013 14:58:14 +1000 Subject: [PATCH] HAL_PX4: some GPIO functions are not available on FMUv2 yet --- libraries/AP_HAL_PX4/GPIO.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/AP_HAL_PX4/GPIO.cpp b/libraries/AP_HAL_PX4/GPIO.cpp index bb4822c58d..1c62954f40 100644 --- a/libraries/AP_HAL_PX4/GPIO.cpp +++ b/libraries/AP_HAL_PX4/GPIO.cpp @@ -30,6 +30,7 @@ PX4GPIO::PX4GPIO() void PX4GPIO::init() { +#ifdef CONFIG_ARCH_BOARD_PX4IO_V1 _led_fd = open(LED_DEVICE_PATH, O_RDWR); if (_led_fd == -1) { hal.scheduler->panic("Unable to open " LED_DEVICE_PATH); @@ -40,20 +41,21 @@ void PX4GPIO::init() if (ioctl(_led_fd, LED_OFF, LED_RED) != 0) { hal.console->printf("GPIO: Unable to setup GPIO LED RED\n"); } - +#endif _tone_alarm_fd = open("/dev/tone_alarm", O_WRONLY); if (_tone_alarm_fd == -1) { hal.scheduler->panic("Unable to open /dev/tone_alarm"); } - _gpio_fd = open(GPIO_DEVICE_PATH, O_RDWR); + _gpio_fd = open(PX4FMU_DEVICE_PATH, O_RDWR); if (_gpio_fd == -1) { hal.scheduler->panic("Unable to open GPIO"); } +#ifdef CONFIG_ARCH_BOARD_PX4IO_V1 if (ioctl(_gpio_fd, GPIO_CLEAR, GPIO_EXT_1) != 0) { hal.console->printf("GPIO: Unable to setup GPIO_1\n"); } - +#endif } @@ -77,6 +79,7 @@ void PX4GPIO::write(uint8_t pin, uint8_t value) switch (pin) { +#ifdef CONFIG_ARCH_BOARD_PX4IO_V1 case A_LED_PIN: // Arming LED if (value == LOW) { ioctl(_led_fd, LED_OFF, LED_RED); @@ -95,6 +98,7 @@ void PX4GPIO::write(uint8_t pin, uint8_t value) ioctl(_led_fd, LED_ON, LED_BLUE); } break; +#endif case PX4_GPIO_PIEZO_PIN: // Piezo beeper if (value == LOW) { // this is inverted @@ -106,11 +110,13 @@ void PX4GPIO::write(uint8_t pin, uint8_t value) break; case PX4_GPIO_EXT_RELAY_PIN: // Ext Relay +#ifdef CONFIG_ARCH_BOARD_PX4IO_V1 if (value == LOW) { ioctl(_gpio_fd, GPIO_CLEAR, GPIO_EXT_1); } else { ioctl(_gpio_fd, GPIO_SET, GPIO_EXT_1); } +#endif break; } }