From 001e291d632d7a1f57db2a2e90267771eb525995 Mon Sep 17 00:00:00 2001 From: Henry Bruce Date: Mon, 27 Jul 2015 09:39:41 -0700 Subject: [PATCH] mraa-gpio: Added sub-platform support. Signed-off-by: Henry Bruce Signed-off-by: Brendan Le Foll --- examples/mraa-gpio.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/examples/mraa-gpio.c b/examples/mraa-gpio.c index 0e4339d..b466cb2 100644 --- a/examples/mraa-gpio.c +++ b/examples/mraa-gpio.c @@ -59,18 +59,15 @@ print_command_error() print_help(); } -void -list_pins() +int +list_platform_pins() { int pin_count = mraa_get_pin_count(); - if (pin_count == 0) { - fprintf(stdout, "No Pins\n"); - return; - } int i; for (i = 0; i < pin_count; ++i) { if (strcmp(mraa_get_pin_name(i), "INVALID") != 0) { - fprintf(stdout, "%02d ", i); + int pin_id = mraa_is_sub_platform_selected() ? mraa_use_sub_platform(i) : i; + fprintf(stdout, "%02d ", pin_id); fprintf(stdout, "%*s: ", (MRAA_PIN_NAME_SIZE - 1), mraa_get_pin_name(i)); if (mraa_pin_mode_test(i, MRAA_PIN_GPIO)) fprintf(stdout, "GPIO "); @@ -87,8 +84,24 @@ list_pins() fprintf(stdout, "\n"); } } + return pin_count; } +int +list_pins() +{ + int pin_count = 0; + mraa_select_main_platform(); + pin_count += list_platform_pins(); + mraa_select_sub_platform(); + pin_count += list_platform_pins(); + if (pin_count == 0) { + fprintf(stdout, "No Pins\n"); + } + mraa_select_main_platform(); +} + + mraa_result_t gpio_set(int pin, int level, mraa_boolean_t raw) {