MorseGenerator Library
Dependents: MorseGenerator_Example
Diff: MorseGenerator.h
- Revision:
- 0:e6269370b33f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MorseGenerator.h Tue Sep 16 14:56:13 2014 +0000 @@ -0,0 +1,63 @@ +#include <map> +#include <string> +#include "mbed.h" + +#define DIT_MS 100 + + +using namespace std; + +typedef map <char, string> MapType; +typedef void (*callback_type)(int); + +const string MORSE_LETTERS[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}; +const string MORSE_NUMBERS[] = {".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-----"}; + +/** MorseGenerator class. + * + * Example: + * @code + * #include "mbed.h" + * #include "main.h" + * #include "morsegenerator.h" + * + * DigitalOut myled(p18); + * + * void morse_callback(int val) { + * myled = val; + * } + * + * int main() { + * MorseGenerator morse = MorseGenerator(morse_callback); + * + * while (1) { + * morse.transmit("CQCQ DE M6SPX"); + * } + * } + * @endcode + */ +class MorseGenerator { + MapType morse_map; + callback_type callback; + + void generate_morse_map(); + void add_mappings(string morse_chars, const string morse_codes[]); +public: + /** Create a MorseGenerator that calls a specific callback + * + * @param callback called when turning on or off. + */ + MorseGenerator(callback_type callback); + + /** transmit a string + * + * @param message to transmit. + */ + void transmit(string message); + + /** transmit a char + * + * @param char to transmit. + */ + void transmit(char letter); +}; \ No newline at end of file