From 9f305c4626149ac6924c5b1d5d8e14940d0cee79 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Fri, 5 Jun 2026 17:28:53 +0200 Subject: [PATCH] feat(MP/daemon): new header for led and button functionalities --- src/06-mini-project/daemon/gpio/button.h | 20 +++++++++++++++--- src/06-mini-project/daemon/gpio/led.h | 27 +++++++++++++++--------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/06-mini-project/daemon/gpio/button.h b/src/06-mini-project/daemon/gpio/button.h index 4804300..a87dda7 100644 --- a/src/06-mini-project/daemon/gpio/button.h +++ b/src/06-mini-project/daemon/gpio/button.h @@ -1,10 +1,24 @@ #ifndef BUTTON_H #define BUTTON_H -#define GPIO_EXPORT "/sys/class/gpio/export" -#define GPIO_UNEXPORT "/sys/class/gpio/unexport" +#define GPIO_BTN_INCREASE "0" +#define GPIO_BTN_DECREASE "2" +#define GPIO_BTN_MODE "3" -int btn_open(const char* gpio_path, const char* pin); +typedef enum { + BTN_INCREASE, + BTN_DECREASE, + BTN_MODE, +} btn_type_t; +typedef void (*btn_callback_t)(); + +typedef struct { + int gpio; + btn_callback_t callback; +} btn_t; + +btn_t* btn_init(btn_type_t type); +void btn_set_callback(btn_t* btn, btn_callback_t callback); #endif diff --git a/src/06-mini-project/daemon/gpio/led.h b/src/06-mini-project/daemon/gpio/led.h index e299c95..16b23a5 100644 --- a/src/06-mini-project/daemon/gpio/led.h +++ b/src/06-mini-project/daemon/gpio/led.h @@ -1,14 +1,21 @@ -#ifndef CSEL_WORKSPACE_LED_H -#define CSEL_WORKSPACE_LED_H +#ifndef LED_H +#define LED_H -#define GPIO_EXPORT "/sys/class/gpio/export" -#define GPIO_UNEXPORT "/sys/class/gpio/unexport" +#define GPIO_LED_STATUS "10" +#define GPIO_LED_POWER "362" -#define GPIO_LED "/sys/class/gpio/gpio10" -#define LED "10" +typedef enum { + LED_STATUS, // gpioa.10 --> gpio10 + LED_POWER, // gpiol.10 --> gpio362 +} led_type_t; -int led_open(const char* gpio_path, const char* pin); -void led_on(int led); -void led_off(int led); +typedef struct { + int gpio; +} led_t; -#endif //CSEL_WORKSPACE_LED_H +led_t* led_init(led_type_t type); +void led_on(led_t* led); +void led_off(led_t* led); +void led_toggle(led_t* led); + +#endif //LED_H