#include "inc/GPIO.h" // init, term GEN_TYPE_boolean gpio_initialized = false; GEN_TYPE_boolean gpio_terminated = false; void gpio_init(GPIO_PIN_T pin) { // important, since all pins are accessing the same method if(gpio_initialized) return; if(wiringPiSetup() == -1) { perror("cannot setup wiring pi\n"); return; } gpio_initialized = true; } void gpio_init_in(GPIO_PIN_T pin) { gpio_init(pin); pinMode(pin, INPUT); } void gpio_init_out(GPIO_PIN_T pin) { gpio_init(pin); pinMode(pin, OUTPUT); } void gpio_term(GPIO_PIN_T pin) { // important, since all pins are accessing the same method if(gpio_terminated) return; gpio_terminated = false; } // noval GEN_TYPE_boolean gpio_is_noval(GPIO_PIN_T pin) { return false; } void gpio_set_noval(GPIO_PIN_T pin) { // do nothing } // readers GEN_TYPE_boolean gpio_read(GPIO_PIN_T pin) { return digitalRead(pin); } // writers void gpio_write(GPIO_PIN_T pin, GEN_TYPE_boolean value) { digitalWrite(pin, value); }