MorseGenerator test

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers morsegenerator.h Source File

morsegenerator.h

00001 #include <map>
00002 #include <string>
00003 #include "mbed.h"
00004 
00005 #define DIT_MS 100
00006 
00007 
00008 using namespace std;
00009 
00010 typedef map <char, string> MapType;
00011 typedef void (*callback_type)(int);
00012 
00013 const string MORSE_LETTERS[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
00014 const string MORSE_NUMBERS[] = {".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-----"};
00015 
00016 /** MorseGenerator class.
00017  *
00018  * Example:
00019  * @code
00020  * #include "mbed.h"
00021  * #include "main.h"
00022  * #include "morsegenerator.h"
00023  *
00024  * DigitalOut myled(p18);
00025  *
00026  * void morse_callback(int val) {
00027  *     myled = val;
00028  * }
00029  * 
00030  * int main() {
00031  *     MorseGenerator morse = MorseGenerator(morse_callback);
00032  * 
00033  *     while (1) {
00034  *         morse.transmit("CQCQ DE M6SPX");
00035  *     }
00036  * }
00037  * @endcode
00038  */
00039 class MorseGenerator {
00040     MapType morse_map;
00041     callback_type callback;
00042     
00043     void generate_morse_map();
00044     void add_mappings(string morse_chars, const string morse_codes[]);
00045 public:
00046     /** Create a MorseGenerator that calls a specific callback
00047      *
00048      * @param callback called when turning on or off.
00049      */
00050     MorseGenerator(callback_type callback);
00051     
00052     /** transmit a string
00053      *
00054      * @param message to transmit.
00055      */
00056     void transmit(string message);
00057     
00058     /** transmit a char
00059      *
00060      * @param char to transmit.
00061      */
00062     void transmit(char letter);
00063 };