Program for generating morse code via a callback.

Committer:
stevep
Date:
Mon Apr 30 21:05:30 2012 +0000
Revision:
0:44a2d3f18e9f
Child:
1:23b6dc8f569e
publish morse generator

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stevep 0:44a2d3f18e9f 1 #include <map>
stevep 0:44a2d3f18e9f 2 #include <string>
stevep 0:44a2d3f18e9f 3 #include "mbed.h"
stevep 0:44a2d3f18e9f 4
stevep 0:44a2d3f18e9f 5 #define DIT_MS 100
stevep 0:44a2d3f18e9f 6
stevep 0:44a2d3f18e9f 7 typedef std::map <char, std::string> MapType;
stevep 0:44a2d3f18e9f 8 typedef void (*callback_type)(int);
stevep 0:44a2d3f18e9f 9
stevep 0:44a2d3f18e9f 10 const std::string MORSE_LETTERS[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
stevep 0:44a2d3f18e9f 11 const std::string MORSE_NUMBERS[] = {".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-----"};
stevep 0:44a2d3f18e9f 12
stevep 0:44a2d3f18e9f 13 class MorseGenerator {
stevep 0:44a2d3f18e9f 14 MapType morse_map;
stevep 0:44a2d3f18e9f 15 callback_type callback;
stevep 0:44a2d3f18e9f 16
stevep 0:44a2d3f18e9f 17 void generate_morse_map();
stevep 0:44a2d3f18e9f 18 void add_mappings(std::string morse_chars, const std::string morse_codes[]);
stevep 0:44a2d3f18e9f 19 public:
stevep 0:44a2d3f18e9f 20 /** Create a MorseGenerator that calls a specific callback
stevep 0:44a2d3f18e9f 21 *
stevep 0:44a2d3f18e9f 22 * @param callback called when turning on or off.
stevep 0:44a2d3f18e9f 23 */
stevep 0:44a2d3f18e9f 24 MorseGenerator(callback_type callback);
stevep 0:44a2d3f18e9f 25
stevep 0:44a2d3f18e9f 26 /** transmit a string
stevep 0:44a2d3f18e9f 27 *
stevep 0:44a2d3f18e9f 28 * @param message to transmit.
stevep 0:44a2d3f18e9f 29 */
stevep 0:44a2d3f18e9f 30 void transmit(std::string message);
stevep 0:44a2d3f18e9f 31
stevep 0:44a2d3f18e9f 32 /** transmit a char
stevep 0:44a2d3f18e9f 33 *
stevep 0:44a2d3f18e9f 34 * @param char to transmit.
stevep 0:44a2d3f18e9f 35 */
stevep 0:44a2d3f18e9f 36 void transmit(char letter);
stevep 0:44a2d3f18e9f 37 };