MorseGenerator Library

Dependents:   MorseGenerator_Example

Committer:
screamer
Date:
Tue Sep 16 14:56:13 2014 +0000
Revision:
0:e6269370b33f
initial revision of the MorseGenerator library

Who changed what in which revision?

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