From ff647e7bc86d3ac4b9cfcb8bd528d9d92299e3fa Mon Sep 17 00:00:00 2001 From: Hidenori Date: Tue, 19 Jul 2016 11:00:49 -0400 Subject: [PATCH] Navio: GPIO driver command fix and update ifdefs --- src/drivers/navio_gpio/navio_gpio.cpp | 22 ++++++++++++++++------ src/drivers/navio_gpio/navio_gpio.h | 12 ++++-------- src/lib/version/version.h | 2 +- src/modules/commander/commander_helper.cpp | 4 ++-- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/drivers/navio_gpio/navio_gpio.cpp b/src/drivers/navio_gpio/navio_gpio.cpp index 5158a39d98..f39f9387ab 100644 --- a/src/drivers/navio_gpio/navio_gpio.cpp +++ b/src/drivers/navio_gpio/navio_gpio.cpp @@ -145,10 +145,10 @@ int navio_gpio_main(int argc, char *argv[]) } if (!strcmp(argv[1], "start")) { + PX4_WARN("gpio should only be started directly for debugging"); if (gpio != nullptr && gpio->isMapped()) { PX4_WARN("already mapped"); - /* this is not an error */ return 0; } @@ -156,13 +156,14 @@ int navio_gpio_main(int argc, char *argv[]) if (gpio == nullptr) { PX4_ERR("alloc failed"); - return -1; + return 1; } int ret = gpio->start(); if (ret != 0) { PX4_ERR("start failed"); + return 1; } return 0; @@ -170,12 +171,16 @@ int navio_gpio_main(int argc, char *argv[]) if (!strcmp(argv[1], "stop")) { - if (gpio == nullptr || gpio->isMapped()) { - PX4_WARN("not mapped"); - /* this is not an error */ + if (gpio == nullptr) { + PX4_WARN("gpio not started from navio_gpio"); return 0; } + if (!gpio->isMapped()) { + PX4_WARN("not mapped"); + return 1; + } + gpio->stop(); delete gpio; @@ -185,7 +190,12 @@ int navio_gpio_main(int argc, char *argv[]) } if (!strcmp(argv[1], "status")) { - if (gpio != nullptr && gpio->isMapped()) { + if (gpio == nullptr) { + PX4_WARN("gpio not started from navio_gpio"); + return 0; + } + + if (gpio->isMapped()) { PX4_INFO("mapped"); } else { diff --git a/src/drivers/navio_gpio/navio_gpio.h b/src/drivers/navio_gpio/navio_gpio.h index 76163190eb..ac2bde2468 100644 --- a/src/drivers/navio_gpio/navio_gpio.h +++ b/src/drivers/navio_gpio/navio_gpio.h @@ -86,13 +86,10 @@ namespace navio_gpio class Gpio { public: - Gpio() : - _isMapped(false) - { - } + Gpio() + { } ~Gpio() - { - } + { } int start(); int stop(); @@ -102,7 +99,7 @@ public: bool gpioread(uint32_t pinset); void gpiowrite(uint32_t pinset, bool value); - bool isMapped() { return _isMapped; } + bool isMapped() { return _gpio_map != nullptr; } private: void atomic_modify(uint32_t addr, @@ -111,7 +108,6 @@ private: unsigned int value); void *_gpio_map; - bool _isMapped; SyncObj m_lock; }; diff --git a/src/lib/version/version.h b/src/lib/version/version.h index b524cb2878..ae2acbd4eb 100644 --- a/src/lib/version/version.h +++ b/src/lib/version/version.h @@ -59,7 +59,7 @@ __END_DECLS # define HW_ARCH "EAGLE" #elif defined(CONFIG_ARCH_BOARD_EXCELSIOR) # define HW_ARCH "EXCELSIOR" -#elif defined(CONFIG_ARCH_BOARD_RPI) || defined(CONFIG_ARCH_BOARD_NAVIO2) +#elif defined(CONFIG_ARCH_BOARD_RPI) # define HW_ARCH "RPI" #elif defined(CONFIG_ARCH_BOARD_BEBOP) # define HW_ARCH "BEBOP" diff --git a/src/modules/commander/commander_helper.cpp b/src/modules/commander/commander_helper.cpp index aaa8bf7e8a..1efcc385d3 100644 --- a/src/modules/commander/commander_helper.cpp +++ b/src/modules/commander/commander_helper.cpp @@ -267,7 +267,7 @@ int led_init() { blink_msg_end = 0; -#ifndef CONFIG_ARCH_BOARD_NAVIO2 +#ifndef CONFIG_ARCH_BOARD_RPI /* first open normal LEDs */ DevMgr::getHandle(LED0_DEVICE_PATH, h_leds); @@ -305,7 +305,7 @@ int led_init() void led_deinit() { -#ifndef CONFIG_ARCH_BOARD_NAVIO2 +#ifndef CONFIG_ARCH_BOARD_RPI DevMgr::releaseHandle(h_leds); #endif DevMgr::releaseHandle(h_rgbleds);