A simple library to handle LEDs a little bit easier.

LEDUtil.cpp

Committer:
coisme
Date:
2015-07-31
Revision:
1:220396a0cb8a
Parent:
0:3c77443bfb5b

File content as of revision 1:220396a0cb8a:

#include "mbed.h"
#include "LEDUtil.h"

#define PIN_HIGH  1
#define PIN_LOW   0

LEDUtil::LEDUtil(PinName targetPinName, LEDUtil::Polarity targetPinPolarity)
{
    this->pinName = targetPinName;
    this->polarity = targetPinPolarity;
}


void LEDUtil::setLedState(LedState state)
{
    DigitalOut pin(pinName);

    if (state == LEDUtil::LED_ON) {
        // turns on the LED
        pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_HIGH : PIN_LOW);
    } else {
        // turns off the LED
        pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_LOW : PIN_HIGH);
    }
}

void LEDUtil::turnOn()
{
    LEDUtil::setLedState(LEDUtil::LED_ON);
}

void LEDUtil::turnOff()
{
    LEDUtil::setLedState(LEDUtil::LED_OFF);
}

bool LEDUtil::isOn()
{
    if (getLedState() == LEDUtil::LED_ON) {
        return true;
    } else {
        return false;
    }
}

bool LEDUtil::isOff()
{
    return (!LEDUtil::isOn());
}

LEDUtil::LedState LEDUtil::getLedState()
{
    DigitalOut pin(pinName);
    LedState state = LEDUtil::LED_OFF;

    if (pin.read() == PIN_HIGH) {
        state = ((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? LEDUtil::LED_ON : LEDUtil::LED_OFF);
    } else {
        state = ((polarity == LEDUtil::LOW_ON_HIGH_OFF) ? LEDUtil::LED_OFF : LEDUtil::LED_ON);
    }

    return state;
}