A simple library to handle LEDs a little bit easier.
Diff: LEDUtil.cpp
- Revision:
- 0:3c77443bfb5b
- Child:
- 1:220396a0cb8a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LEDUtil.cpp Fri Jul 31 23:26:36 2015 +0000 @@ -0,0 +1,57 @@ +#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; +} +