RocketLogger  2.0.2
gpio.h
Go to the documentation of this file.
1 
32 #ifndef GPIO_H_
33 #define GPIO_H_
34 
35 #include <gpiod.h>
36 #include <time.h>
37 
39 #define GPIO_FHR1 30
41 #define GPIO_FHR2 60
43 #define GPIO_LED_STATUS 45
45 #define GPIO_LED_ERROR 44
47 #define GPIO_BUTTON 26
49 #define GPIO_POWER 31
50 
54 typedef enum gpio_mode {
58 
62 typedef enum gpio_interrupt {
68 
72 typedef struct gpiod_line gpio_t;
73 
79 int gpio_init();
80 
86 void gpio_deinit();
87 
99 gpio_t *gpio_setup(int gpio_number, gpio_mode_t mode, const char *name);
100 
110 gpio_t *gpio_setup_interrupt(int gpio_number, gpio_interrupt_t edge,
111  const char *name);
112 
118 void gpio_release(gpio_t *gpio);
119 
127 int gpio_set_value(gpio_t *gpio, int value);
128 
135 int gpio_get_value(gpio_t *gpio);
136 
145 int gpio_wait_interrupt(gpio_t *gpio, const struct timespec *timeout);
146 
147 #endif /* GPIO_H_ */
gpio_interrupt
Definition: gpio.h:62
@ GPIO_INTERRUPT_FALLING
Interrupt on falling edge.
Definition: gpio.h:65
@ GPIO_INTERRUPT_BOTH
Interrupt on both edges.
Definition: gpio.h:66
@ GPIO_INTERRUPT_NONE
No interrupt.
Definition: gpio.h:63
@ GPIO_INTERRUPT_RISING
Interrupt on rising edge.
Definition: gpio.h:64
gpio_t * gpio_setup(int gpio_number, gpio_mode_t mode, const char *name)
Definition: gpio.c:103
enum gpio_interrupt gpio_interrupt_t
gpio_mode
Definition: gpio.h:54
@ GPIO_MODE_OUT
GPIO write mode.
Definition: gpio.h:56
@ GPIO_MODE_IN
GPIO read mode.
Definition: gpio.h:55
int gpio_set_value(gpio_t *gpio, int value)
Definition: gpio.c:135
int gpio_init()
Definition: gpio.c:77
gpio_t * gpio_setup_interrupt(int gpio_number, gpio_interrupt_t edge, const char *name)
Definition: gpio.c:148
int gpio_get_value(gpio_t *gpio)
Definition: gpio.c:146
struct gpiod_line gpio_t
Definition: gpio.h:72
void gpio_release(gpio_t *gpio)
Definition: gpio.c:130
void gpio_deinit()
Definition: gpio.c:92
int gpio_wait_interrupt(gpio_t *gpio, const struct timespec *timeout)
Definition: gpio.c:187
enum gpio_mode gpio_mode_t