main: fix group_gpio_config parsing

Fix incorrect parsing of GPIO "pin"/"num"  in group_gpio_config.

Motivation:
The code mistakenly accessed "pin"/"num" from the outer gpioConfig
object instead of from each config entry in group_gpio_config.
When "pin"/"num" only existed in the inner config, this led to
std::out_of_range exceptions at runtime.

Design:
Changed the parsing logic to read "pin"/"num" from each individual
config entry inside group_gpio_config instead of the parent object.

Change-Id: Ie479a336fae5e67c47c458e031a4cb2e9d8954cf
Signed-off-by: Liora Guo <liora.guo.wiwynn@gmail.com>
diff --git a/src/main.cpp b/src/main.cpp
index 06e1c80..c715d5b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -102,15 +102,15 @@
             for (const auto& config : groupGpio)
             {
                 GpioInfo gpioCfg;
-                if (gpioConfig.contains("pin"))
+                if (config.contains("pin"))
                 {
                     // When "pin" key is used, parse as alphanumeric
-                    gpioCfg.number = getGpioNum(gpioConfig.at("pin"));
+                    gpioCfg.number = getGpioNum(config.at("pin"));
                 }
                 else
                 {
                     // Without "pin", "num" is assumed and parsed as an integer
-                    gpioCfg.number = gpioConfig.at("num").get<uint32_t>();
+                    gpioCfg.number = config.at("num").get<uint32_t>();
                 }
                 gpioCfg.direction = config["direction"];
                 gpioCfg.name = config["name"];