mraa-gpio: Added sub-platform support.
authorHenry Bruce <henry.bruce@intel.com>
Mon, 27 Jul 2015 16:39:41 +0000 (09:39 -0700)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Tue, 8 Sep 2015 13:42:03 +0000 (14:42 +0100)
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
examples/mraa-gpio.c

index 0e4339d..b466cb2 100644 (file)
@@ -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)
 {