Program Listing for File hss-pal-gpio-ino.cpp

Return to documentation for file (src/framework/arduino/pal/hss-pal-gpio-ino.cpp)

#include <Arduino.h>
#include "hss-pal-gpio-ino.hpp"

using namespace hss;

GPIOIno::GPIOIno() : pin(0), mode(OUTPUT), logic(POSITIVE)
{

}

GPIOIno::GPIOIno(uint8_t pin, uint8_t mode, VLogic_t logic)
: pin(pin), mode(mode), logic(logic)
{

}

Error_t GPIOIno::init()
{
    pinMode(this->pin, this->mode);
    return OK;
}

Error_t GPIOIno::deinit()
{
    return OK;
}

GPIOIno::VLevel_t GPIOIno::read()
{
    return (VLevel_t) digitalRead(this->pin);
}

Error_t GPIOIno::write(VLevel_t level)
{
    digitalWrite(this->pin, level);
    return OK;
}

Error_t GPIOIno::enable()
{
    if(this->logic == POSITIVE){
        digitalWrite(this->pin, GPIO_HIGH);
    }
    else if(this->logic == NEGATIVE){
        digitalWrite(this->pin, GPIO_LOW);;
    }
    return OK;
}

Error_t GPIOIno::disable()
{
    if(this->logic == POSITIVE){
        digitalWrite(this->pin, GPIO_LOW);
    }
    else if(this->logic == NEGATIVE){
        digitalWrite(this->pin, GPIO_HIGH);
    }
    return OK;
}