Program for generating morse code via a callback.
morsegenerator.h
- Committer:
- stevep
- Date:
- 2012-04-30
- Revision:
- 1:23b6dc8f569e
- Parent:
- 0:44a2d3f18e9f
- Child:
- 2:bdf2fa2879cf
File content as of revision 1:23b6dc8f569e:
#include <map> #include <string> #include "mbed.h" #define DIT_MS 100 typedef std::map <char, std::string> MapType; typedef void (*callback_type)(int); const std::string MORSE_LETTERS[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}; const std::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(std::string morse_chars, const std::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(std::string message); /** transmit a char * * @param char to transmit. */ void transmit(char letter); };