#ifndef __GPIO_H
#define __GPIO_H

#include <wiringPi.h>
#include "inc-gen/data_dictionary.h"

// types
typedef int GPIO_PIN_T;

// init, term
void gpio_init(GPIO_PIN_T pin);
void gpio_init_in(GPIO_PIN_T pin);
void gpio_init_out(GPIO_PIN_T pin);
void gpio_term(GPIO_PIN_T pin);

// noval
GEN_TYPE_boolean gpio_is_noval(GPIO_PIN_T pin);
void gpio_set_noval(GPIO_PIN_T pin);

// readers
GEN_TYPE_boolean gpio_read(GPIO_PIN_T pin);

// writers
void gpio_write(GPIO_PIN_T pin, GEN_TYPE_boolean value);

#endif // __GPIO_H