#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;
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();
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);
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;
}