A MorseGenerator library that uses LED to blink morse code

Dependents:   MorseGenerator_Example2 9v1

Committer:
wm
Date:
Wed Sep 17 13:29:39 2014 +0000
Revision:
0:0ad54d10593c
Child:
1:bad1b4ca49df
Initial revision of the MorseGenerator library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wm 0:0ad54d10593c 1 #include <map>
wm 0:0ad54d10593c 2 #include <string>
wm 0:0ad54d10593c 3 #include "mbed.h"
wm 0:0ad54d10593c 4
wm 0:0ad54d10593c 5 #define DIT_MS 100
wm 0:0ad54d10593c 6
wm 0:0ad54d10593c 7
wm 0:0ad54d10593c 8 using namespace std;
wm 0:0ad54d10593c 9
wm 0:0ad54d10593c 10 typedef map <char, string> MapType;
wm 0:0ad54d10593c 11 typedef void (*callback_type)(int);
wm 0:0ad54d10593c 12
wm 0:0ad54d10593c 13 const string MORSE_LETTERS[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
wm 0:0ad54d10593c 14 const string MORSE_NUMBERS[] = {".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-----"};
wm 0:0ad54d10593c 15
wm 0:0ad54d10593c 16 /** MorseGenerator class.
wm 0:0ad54d10593c 17 *
wm 0:0ad54d10593c 18 * Example:
wm 0:0ad54d10593c 19 * @code
wm 0:0ad54d10593c 20 * #include "mbed.h"
wm 0:0ad54d10593c 21 * #include "main.h"
wm 0:0ad54d10593c 22 * #include "morsegenerator.h"
wm 0:0ad54d10593c 23 *
wm 0:0ad54d10593c 24 * DigitalOut myled(p18);
wm 0:0ad54d10593c 25 *
wm 0:0ad54d10593c 26 * void morse_callback(int val) {
wm 0:0ad54d10593c 27 * myled = val;
wm 0:0ad54d10593c 28 * }
wm 0:0ad54d10593c 29 *
wm 0:0ad54d10593c 30 * int main() {
wm 0:0ad54d10593c 31 * MorseGenerator morse = MorseGenerator(morse_callback);
wm 0:0ad54d10593c 32 *
wm 0:0ad54d10593c 33 * while (1) {
wm 0:0ad54d10593c 34 * morse.transmit("CQCQ DE M6SPX");
wm 0:0ad54d10593c 35 * }
wm 0:0ad54d10593c 36 * }
wm 0:0ad54d10593c 37 * @endcode
wm 0:0ad54d10593c 38 */
wm 0:0ad54d10593c 39 class MorseGenerator {
wm 0:0ad54d10593c 40 MapType morse_map;
wm 0:0ad54d10593c 41 callback_type callback;
wm 0:0ad54d10593c 42
wm 0:0ad54d10593c 43 void generate_morse_map();
wm 0:0ad54d10593c 44 void add_mappings(string morse_chars, const string morse_codes[]);
wm 0:0ad54d10593c 45 public:
wm 0:0ad54d10593c 46 /** Create a MorseGenerator that calls a specific callback
wm 0:0ad54d10593c 47 *
wm 0:0ad54d10593c 48 * @param callback called when turning on or off.
wm 0:0ad54d10593c 49 */
wm 0:0ad54d10593c 50 MorseGenerator(callback_type callback);
wm 0:0ad54d10593c 51
wm 0:0ad54d10593c 52 /** transmit a string
wm 0:0ad54d10593c 53 *
wm 0:0ad54d10593c 54 * @param message to transmit.
wm 0:0ad54d10593c 55 */
wm 0:0ad54d10593c 56 void transmit(string message);
wm 0:0ad54d10593c 57
wm 0:0ad54d10593c 58 /** transmit a char
wm 0:0ad54d10593c 59 *
wm 0:0ad54d10593c 60 * @param char to transmit.
wm 0:0ad54d10593c 61 */
wm 0:0ad54d10593c 62 void transmit(char letter);
wm 0:0ad54d10593c 63 };