Car params loaded using config api
[apps/native/gear-racing-car.git] / src / resource / resource_lap_counter.c
index fd54e22..e6d5029 100644 (file)
 #include <time.h>
 #include "log.h"
 #include "lap_counter/lap_counter.h"
+#include "config.h"
 
-#define GPIO_PIN 26
-
+#define DEFAULT_LAP_GPIO 26
+#define CONFIG_KEY_RPI_PIN_LAP_COUNTER "lap.counter"
+#define CONFIG_GRP_RPI "Rpi"
 
 typedef struct _lap_counter_s {
        peripheral_gpio_h gpio;
@@ -46,7 +48,7 @@ static void _gpio_interrupted_cb(peripheral_gpio_h gpio, peripheral_error_e erro
        int ret = peripheral_gpio_read(s_info.gpio, &gpio_value);
        CHECK_GPIO_ERROR(s_info.gpio, ret);
 
-       _D("GPIO_%d value: %d initial: %d, prev: %d", GPIO_PIN, gpio_value, s_info.gpio_initial_value, s_info.gpio_prev_value);
+       _D("value: %d initial: %d, prev: %d", gpio_value, s_info.gpio_initial_value, s_info.gpio_prev_value);
 
        if (gpio_value != s_info.gpio_initial_value && s_info.gpio_prev_value == s_info.gpio_initial_value) {
                lap_counter_get_lap_time();
@@ -59,8 +61,17 @@ static void _gpio_interrupted_cb(peripheral_gpio_h gpio, peripheral_error_e erro
 void resource_lap_counter_init(void)
 {
        int ret = PERIPHERAL_ERROR_NONE;
+       int pin = DEFAULT_LAP_GPIO;
+
+       bool modified = config_get_int_with_default(CONFIG_GRP_RPI, CONFIG_KEY_RPI_PIN_LAP_COUNTER, DEFAULT_LAP_GPIO, &pin);
+
+       _D("Lap gpio: %d", pin);
+
+       if (modified) {
+               config_save();
+       }
 
-       ret = peripheral_gpio_open(GPIO_PIN, &s_info.gpio);
+       ret = peripheral_gpio_open(pin, &s_info.gpio);
        retv_error_message(ret != PERIPHERAL_ERROR_NONE, ret);
 
        ret = peripheral_gpio_set_direction(s_info.gpio, PERIPHERAL_GPIO_DIRECTION_IN);
@@ -75,7 +86,7 @@ void resource_lap_counter_init(void)
        ret = peripheral_gpio_read(s_info.gpio, &s_info.gpio_initial_value);
        CHECK_GPIO_ERROR(s_info.gpio, ret);
 
-       _D("GPIO_%d initial value: %d", GPIO_PIN, s_info.gpio_initial_value);
+       _D("GPIO_%d initial value: %d", pin, s_info.gpio_initial_value);
        s_info.gpio_prev_value = s_info.gpio_initial_value;
 }