Program for generating morse code via a callback.

Committer:
stevep
Date:
Tue Jul 15 10:36:21 2014 +0000
Revision:
4:38cdcde4eac2
Parent:
3:df8e3f237e26
Fix doxygen syntax

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