MorseGenerator test

Committer:
screamer
Date:
Tue Nov 27 17:52:36 2012 +0000
Revision:
0:79a42458a848
initial

Who changed what in which revision?

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