A simple library to handle LEDs a little bit easier.

Committer:
coisme
Date:
Fri Jul 31 23:26:36 2015 +0000
Revision:
0:3c77443bfb5b
Child:
1:220396a0cb8a
First commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
coisme 0:3c77443bfb5b 1 #ifndef __LEDUTIL_H__
coisme 0:3c77443bfb5b 2 #define __LEDUTIL_H__
coisme 0:3c77443bfb5b 3
coisme 0:3c77443bfb5b 4 /**
coisme 0:3c77443bfb5b 5 * A simple class to handle LED.
coisme 0:3c77443bfb5b 6 *
coisme 0:3c77443bfb5b 7 * Example (tested on BLENano):
coisme 0:3c77443bfb5b 8 * @code
coisme 0:3c77443bfb5b 9 * #include "mbed.h"
coisme 0:3c77443bfb5b 10 * #include "LEDUtil.h"
coisme 0:3c77443bfb5b 11 *
coisme 0:3c77443bfb5b 12 * // LED is connected to P0_19 on BLENano and it lights up when the pin state is high.
coisme 0:3c77443bfb5b 13 * #define LED_PIN_NAME P0_19
coisme 0:3c77443bfb5b 14 *
coisme 0:3c77443bfb5b 15 * void main() {
coisme 0:3c77443bfb5b 16 * LEDUtil led1(P0_19, LEDUtil::HIGH_ON_LOW_OFF);
coisme 0:3c77443bfb5b 17 *
coisme 0:3c77443bfb5b 18 * while(true) {
coisme 0:3c77443bfb5b 19 * led1.turnOn();
coisme 0:3c77443bfb5b 20 * wait(0.5);
coisme 0:3c77443bfb5b 21 * led1.turnOff();
coisme 0:3c77443bfb5b 22 * wait(0.5);
coisme 0:3c77443bfb5b 23 * }
coisme 0:3c77443bfb5b 24 * }
coisme 0:3c77443bfb5b 25 * @endcode
coisme 0:3c77443bfb5b 26 */
coisme 0:3c77443bfb5b 27 class LEDUtil {
coisme 0:3c77443bfb5b 28
coisme 0:3c77443bfb5b 29 public:
coisme 0:3c77443bfb5b 30
coisme 0:3c77443bfb5b 31 /** Polarity of LED's configuration. */
coisme 0:3c77443bfb5b 32 typedef enum {
coisme 0:3c77443bfb5b 33 /** The target LED lights up when the pin level is high. */
coisme 0:3c77443bfb5b 34 HIGH_ON_LOW_OFF,
coisme 0:3c77443bfb5b 35 /** The target LED lights up when the pin level is low. */
coisme 0:3c77443bfb5b 36 LOW_ON_HIGH_OFF
coisme 0:3c77443bfb5b 37 } Polarity;
coisme 0:3c77443bfb5b 38
coisme 0:3c77443bfb5b 39 /**
coisme 0:3c77443bfb5b 40 * Constructor.
coisme 0:3c77443bfb5b 41 *
coisme 0:3c77443bfb5b 42 * @param targetPinName pin name of the target pin which is coneccted with the target LED.
coisme 0:3c77443bfb5b 43 * @param targetPinPolarity pin polarity of the target. The default value is POLARITY_HIGH_ON_LOW_OFF
coisme 0:3c77443bfb5b 44 */
coisme 0:3c77443bfb5b 45 LEDUtil(PinName targetPinName, Polarity targetPinPolarity = HIGH_ON_LOW_OFF);
coisme 0:3c77443bfb5b 46
coisme 0:3c77443bfb5b 47 /**
coisme 0:3c77443bfb5b 48 * Turns on the LED.
coisme 0:3c77443bfb5b 49 */
coisme 0:3c77443bfb5b 50 void turnOn();
coisme 0:3c77443bfb5b 51
coisme 0:3c77443bfb5b 52 /**
coisme 0:3c77443bfb5b 53 * Turns off the LED.
coisme 0:3c77443bfb5b 54 */
coisme 0:3c77443bfb5b 55 void turnOff();
coisme 0:3c77443bfb5b 56
coisme 0:3c77443bfb5b 57 /**
coisme 0:3c77443bfb5b 58 * Returns if the LED is on.
coisme 0:3c77443bfb5b 59 * @return Returns true if the LED is on. Otherwise returns false.
coisme 0:3c77443bfb5b 60 */
coisme 0:3c77443bfb5b 61 bool isOn();
coisme 0:3c77443bfb5b 62
coisme 0:3c77443bfb5b 63 /**
coisme 0:3c77443bfb5b 64 * Returns if the LED is off.
coisme 0:3c77443bfb5b 65 * @return Returns true if the LED is off. Otherwise returns false.
coisme 0:3c77443bfb5b 66 */
coisme 0:3c77443bfb5b 67 bool isOff();
coisme 0:3c77443bfb5b 68
coisme 0:3c77443bfb5b 69 /**
coisme 0:3c77443bfb5b 70 * Get polarity setting.
coisme 0:3c77443bfb5b 71 * @return polarity setting of this LED configuration.
coisme 0:3c77443bfb5b 72 */
coisme 0:3c77443bfb5b 73 Polarity getPolarity();
coisme 0:3c77443bfb5b 74
coisme 0:3c77443bfb5b 75
coisme 0:3c77443bfb5b 76 private:
coisme 0:3c77443bfb5b 77
coisme 0:3c77443bfb5b 78 /* Holds the target LED's pin name. */
coisme 0:3c77443bfb5b 79 PinName pinName;
coisme 0:3c77443bfb5b 80
coisme 0:3c77443bfb5b 81 /* Holds polarity of the target LED pin. */
coisme 0:3c77443bfb5b 82 Polarity polarity;
coisme 0:3c77443bfb5b 83
coisme 0:3c77443bfb5b 84 /* State of the LED, i.e. on or off. */
coisme 0:3c77443bfb5b 85 typedef enum {LED_ON, LED_OFF} LedState;
coisme 0:3c77443bfb5b 86
coisme 0:3c77443bfb5b 87 /*
coisme 0:3c77443bfb5b 88 * Sets the LED state.
coisme 0:3c77443bfb5b 89 * @param state LED state to be set.
coisme 0:3c77443bfb5b 90 */
coisme 0:3c77443bfb5b 91 void setLedState(LedState state);
coisme 0:3c77443bfb5b 92
coisme 0:3c77443bfb5b 93 /*
coisme 0:3c77443bfb5b 94 * Gets the LED state.
coisme 0:3c77443bfb5b 95 * @return Returns LED state.
coisme 0:3c77443bfb5b 96 */
coisme 0:3c77443bfb5b 97 LedState getLedState();
coisme 0:3c77443bfb5b 98 };
coisme 0:3c77443bfb5b 99
coisme 0:3c77443bfb5b 100 #endif