Display librairy manage 3 LED and a TextLCD (on, off, flash) (print message, clear)

Committer:
us191
Date:
Mon May 06 08:00:51 2013 +0000
Revision:
4:424dd7f7b12c
Parent:
3:28370613ca07
message examples V2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
us191 1:fa0962d6e0b0 1 /* import this librairies :
us191 1:fa0962d6e0b0 2 * TextLCD.h
us191 1:fa0962d6e0b0 3 * online compiler : https://mbed.org/compiler/#import:https://mbed.org/users/simon/code/TextLCD/;mode:lib
us191 1:fa0962d6e0b0 4 * file.zip : http://mbed.org/users/simon/code/TextLCD/archive/44f34c09bd37.zip
us191 1:fa0962d6e0b0 5 *
us191 1:fa0962d6e0b0 6 * Led.h
us191 1:fa0962d6e0b0 7 * online compiler : https://mbed.org/compiler/#import:https://mbed.org/users/us191/code/LED/;mode:lib
us191 1:fa0962d6e0b0 8 * file.zip : https://mbed.org/users/us191/code/LED/archive/75240e7c857c.zip
us191 0:71286332d6f7 9 */
us191 0:71286332d6f7 10
us191 0:71286332d6f7 11 #ifndef Display_H
us191 0:71286332d6f7 12 #define Display_H
us191 0:71286332d6f7 13
us191 0:71286332d6f7 14 #include "mbed.h"
us191 0:71286332d6f7 15 #include "TextLCD.h"
us191 0:71286332d6f7 16 #include "Led.h"
us191 0:71286332d6f7 17 #include "string"
us191 0:71286332d6f7 18 #include <vector>
us191 0:71286332d6f7 19
us191 0:71286332d6f7 20
us191 2:035050036dbf 21 /** This class manage 3 LED and 1 TextLCD display.
us191 2:035050036dbf 22 * She permit to print messages and to light or flash LED.
us191 0:71286332d6f7 23 *
us191 0:71286332d6f7 24 * @code
us191 0:71286332d6f7 25 * #include "mbed.h"
us191 0:71286332d6f7 26 * #include "Display.h"
us191 0:71286332d6f7 27 *
us191 0:71286332d6f7 28 * Display disp(p12, p13, p14, p15, p16, p5, p6, p7, p8); // greenLED, redLED, orangeLED, LCD : rs, e, d4-d7 (default : 16X2 screen)
us191 0:71286332d6f7 29 *
us191 0:71286332d6f7 30 * float delay = 3;
us191 0:71286332d6f7 31 *
us191 0:71286332d6f7 32 *
us191 0:71286332d6f7 33 * int main() {
us191 0:71286332d6f7 34 *
us191 0:71286332d6f7 35 * // print "HelloWorld !" on LCD screen and put on greenLED, flash redLED and put off orangeLED
us191 0:71286332d6f7 36 * disp.printMessage("Hello World !", Display::on, Display::flash, Display::off);
us191 0:71286332d6f7 37 * wait(delay);
us191 0:71286332d6f7 38 *
us191 0:71286332d6f7 39 * // print "coucou !" on LCD screen and put off greenLED, put on redLED and flash orangeLED
us191 0:71286332d6f7 40 * disp.printMessage("coucou !", Display::off, Display::on, Display::flash);
us191 0:71286332d6f7 41 * wait(delay);
us191 0:71286332d6f7 42 *
us191 0:71286332d6f7 43 * // print "bye bye !" on LCD screen and flash greenLED, put off redLED and put on orangeLED
us191 0:71286332d6f7 44 * disp.printMessage("bye bye !", Display::flash, Display::off, Display::on);
us191 0:71286332d6f7 45 * wait(delay);
us191 0:71286332d6f7 46 *
us191 0:71286332d6f7 47 * // clear LCD screen and shutdown 3 LED
us191 0:71286332d6f7 48 * disp.clear();
us191 0:71286332d6f7 49 * }
us191 1:fa0962d6e0b0 50 * @endcode
us191 0:71286332d6f7 51 */
us191 0:71286332d6f7 52
us191 0:71286332d6f7 53 class Display {
us191 0:71286332d6f7 54
us191 0:71286332d6f7 55 public :
us191 0:71286332d6f7 56
us191 0:71286332d6f7 57 /** use by printMessage() and changeStatusLed() */
us191 0:71286332d6f7 58 enum choiceStatusLED {
us191 0:71286332d6f7 59 on /**< put on led */
us191 0:71286332d6f7 60 , off /**< put off led */
us191 0:71286332d6f7 61 , flash /**< flash led */
us191 0:71286332d6f7 62 };
us191 0:71286332d6f7 63
us191 0:71286332d6f7 64
us191 0:71286332d6f7 65 /** Create a Display interface (default : 16X2 screen)
us191 0:71286332d6f7 66 *
us191 0:71286332d6f7 67 * @param pinGreenLED greenLED broche
us191 0:71286332d6f7 68 * @param pinRedLED redLED broche
us191 0:71286332d6f7 69 * @param pinOrangeLED orangeLED broche
us191 0:71286332d6f7 70 * @param pinLCDrs LCD Instruction/data control line
us191 0:71286332d6f7 71 * @param pinLCDe LCD Enable line (clock)
us191 0:71286332d6f7 72 * @param pinLCDd0-d3 LCD Data lines
us191 0:71286332d6f7 73 */
us191 0:71286332d6f7 74 Display(PinName pinGreenLED, PinName pinRedLED, PinName pinOrangeLED, PinName pinLCDrs, PinName pinLCDe,
us191 0:71286332d6f7 75 PinName pinLCDd0, PinName pinLCDd1, PinName pinLCDd2, PinName pinLCDd3);
us191 0:71286332d6f7 76
us191 0:71286332d6f7 77 /** Create a Display interface
us191 0:71286332d6f7 78 *
us191 0:71286332d6f7 79 * @param pinGreenLED greenLED broche
us191 0:71286332d6f7 80 * @param pinRedLED redLED broche
us191 0:71286332d6f7 81 * @param pinOrangeLED orangeLED broche
us191 0:71286332d6f7 82 * @param pinLCDrs LCD Instruction/data control line
us191 0:71286332d6f7 83 * @param pinLCDe LCD Enable line (clock)
us191 0:71286332d6f7 84 * @param pinLCDd0-d3 LCD Data lines
us191 0:71286332d6f7 85 * @param typeScreen LCD Sets the panel size/addressing mode (default = LCD16x2)
us191 0:71286332d6f7 86 */
us191 0:71286332d6f7 87 Display(PinName pinGreenLED, PinName pinRedLED, PinName pinOrangeLED, PinName pinLCDrs, PinName pinLCDe,
us191 0:71286332d6f7 88 PinName pinLCDd0, PinName pinLCDd1, PinName pinLCDd2, PinName pinLCDd3, TextLCD::LCDType typeScreen);
us191 0:71286332d6f7 89
us191 0:71286332d6f7 90 /** Destructor
us191 0:71286332d6f7 91 */
us191 0:71286332d6f7 92 ~Display(void);
us191 0:71286332d6f7 93
us191 1:fa0962d6e0b0 94
us191 2:035050036dbf 95 /** print message on LCD screen and change status of green, red and orange LED.
us191 2:035050036dbf 96 * all line except the last line, have to finish by CRLF. Warning : CRLF count like a character.
us191 4:424dd7f7b12c 97 * don't end message by CRLF.
us191 4:424dd7f7b12c 98 * examples :\n
us191 3:28370613ca07 99 * "this line have to finish by CRLF\/n
us191 3:28370613ca07 100 * and next too\/n
us191 3:28370613ca07 101 * but not the last"
us191 0:71286332d6f7 102 *
us191 0:71286332d6f7 103 * @param message message will be display on screen
us191 0:71286332d6f7 104 * @param statusGreenLED new status of greenLED (on, off, flash)
us191 0:71286332d6f7 105 * @param statusRedLED new status of redLED (on, off, flash)
us191 0:71286332d6f7 106 * @param statusOrangeLED new status of orangeLED (on, off, flash)
us191 0:71286332d6f7 107 */
us191 0:71286332d6f7 108 void printMessage(string message, choiceStatusLED statusGreenLED, choiceStatusLED statusRedLED, choiceStatusLED statusOrangeLED);
us191 0:71286332d6f7 109
us191 0:71286332d6f7 110 /** put off 3 LED and clear LCD screen
us191 0:71286332d6f7 111 */
us191 0:71286332d6f7 112 void clear(void);
us191 1:fa0962d6e0b0 113
us191 0:71286332d6f7 114
us191 0:71286332d6f7 115 protected :
us191 0:71286332d6f7 116
us191 1:fa0962d6e0b0 117 /* 3 led manage by current object */
us191 0:71286332d6f7 118 Led _greenLED, _redLED, _orangeLED;
us191 1:fa0962d6e0b0 119 /* LCD screen manage by current object */
us191 0:71286332d6f7 120 TextLCD _lcd;
us191 0:71286332d6f7 121
us191 1:fa0962d6e0b0 122 /* use by changeStatusLed() */
us191 0:71286332d6f7 123 enum choiceLED {
us191 1:fa0962d6e0b0 124 green /*< choice greenLED */
us191 1:fa0962d6e0b0 125 , red /*< choice redLED */
us191 1:fa0962d6e0b0 126 , orange /*< choice orangeLED */
us191 0:71286332d6f7 127 };
us191 0:71286332d6f7 128
us191 0:71286332d6f7 129
us191 0:71286332d6f7 130
us191 1:fa0962d6e0b0 131 /* change led status to statusLED
us191 0:71286332d6f7 132 * use by printMessage()
us191 0:71286332d6f7 133 *
us191 0:71286332d6f7 134 * @param led the led (green, red, orange)
us191 0:71286332d6f7 135 * @param statusLED new status (on, off, flash)
us191 0:71286332d6f7 136 */
us191 0:71286332d6f7 137 void changeStatusLED(choiceLED led, choiceStatusLED statusLED);
us191 0:71286332d6f7 138
us191 1:fa0962d6e0b0 139 /* put off 3 LED
us191 0:71286332d6f7 140 * use by clear()
us191 0:71286332d6f7 141 */
us191 0:71286332d6f7 142 void shutdownLED(void);
us191 0:71286332d6f7 143
us191 1:fa0962d6e0b0 144 /* clear LCD screen
us191 0:71286332d6f7 145 * use by clear()
us191 0:71286332d6f7 146 */
us191 0:71286332d6f7 147 void cls(void);
us191 0:71286332d6f7 148
us191 1:fa0962d6e0b0 149 /* check if this message can be display correctly on LCD screen
us191 0:71286332d6f7 150 * use by printMessage()
us191 0:71286332d6f7 151 *
us191 0:71286332d6f7 152 * @param message the message to be verified
us191 0:71286332d6f7 153 * @return
us191 0:71286332d6f7 154 * true if message is ok
us191 0:71286332d6f7 155 * flase else
us191 0:71286332d6f7 156 */
us191 0:71286332d6f7 157 bool checkMessage(string message);
us191 0:71286332d6f7 158
us191 1:fa0962d6e0b0 159 /* calcul number of '\n'
us191 0:71286332d6f7 160 * use by checkMessage()
us191 0:71286332d6f7 161 *
us191 0:71286332d6f7 162 * @param message the message to be analyse
us191 0:71286332d6f7 163 * @return number of '\n'
us191 0:71286332d6f7 164 */
us191 0:71286332d6f7 165 int calculNbCRLF(string message);
us191 0:71286332d6f7 166
us191 1:fa0962d6e0b0 167 /* return vector of all line message
us191 0:71286332d6f7 168 * use by checkMessage()
us191 0:71286332d6f7 169 *
us191 0:71286332d6f7 170 * @param message the message to be cut
us191 0:71286332d6f7 171 * @return a vector which contains a line of the message by entry
us191 0:71286332d6f7 172 */
us191 0:71286332d6f7 173 vector<string> subAllLine(string message);
us191 0:71286332d6f7 174
us191 0:71286332d6f7 175 };
us191 0:71286332d6f7 176
us191 1:fa0962d6e0b0 177 #endif // Display_H