Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MorseCode.cpp@6:02df5c1108f1, 2020-04-09 (annotated)
- Committer:
- kabukistarship
- Date:
- Thu Apr 09 22:40:13 2020 +0000
- Revision:
- 6:02df5c1108f1
- Parent:
- 5:4136e9141bde
Renamed StatusLED to StatusIndicator.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kabukistarship | 2:aa9a1377aa0d | 1 | /* mbedBug @version 0.x |
kabukistarship | 2:aa9a1377aa0d | 2 | @link https://github.com/KabukiStarship/mbedbug.git |
kabukistarship | 6:02df5c1108f1 | 3 | @file /MorseCode.cpp |
kabukistarship | 2:aa9a1377aa0d | 4 | @author Cale McCollough <https://cale-mccollough.github.io> |
kabukistarship | 2:aa9a1377aa0d | 5 | @license Copyright 2016-20 (C) Kabuki Starship <kabukistarship.com>; all rights |
kabukistarship | 2:aa9a1377aa0d | 6 | reserved (R). This Source Code Form is subject to the terms of the Mozilla |
kabukistarship | 2:aa9a1377aa0d | 7 | Public License, v. 2.0. If a copy of the MPL was not distributed with this file, |
kabukistarship | 2:aa9a1377aa0d | 8 | You can obtain one at <https://mozilla.org/MPL/2.0/>. */ |
kabukistarship | 5:4136e9141bde | 9 | #include "MorseCode.h" |
kabukistarship | 2:aa9a1377aa0d | 10 | namespace mbedBug { |
kabukistarship | 5:4136e9141bde | 11 | const char* MorseCode (char Code) { |
kabukistarship | 5:4136e9141bde | 12 | static const char* Space = " "; //< |
kabukistarship | 2:aa9a1377aa0d | 13 | |
kabukistarship | 2:aa9a1377aa0d | 14 | static const char* Cypher[] = { |
kabukistarship | 2:aa9a1377aa0d | 15 | ".-.-.", //< ASCII: NUL, Morse code: End of message. |
kabukistarship | 2:aa9a1377aa0d | 16 | 0, //< ASCII: SOH. |
kabukistarship | 2:aa9a1377aa0d | 17 | "-.-.-", //< ASCII: STX, Morse code: Start copying. |
kabukistarship | 2:aa9a1377aa0d | 18 | "-.-..-..", //< ASCII: ETX, Morse code: Going off the air ("clear"). |
kabukistarship | 2:aa9a1377aa0d | 19 | "...-.-", //< ASCII: EOT, Morse code: End of transmission. |
kabukistarship | 2:aa9a1377aa0d | 20 | "-.--.", //< ASCII: ENQ, Morse code: Invite a specific station to transmit. |
kabukistarship | 2:aa9a1377aa0d | 21 | "...-.", //< ASCII: ACK, Morse code: Understood. |
kabukistarship | 2:aa9a1377aa0d | 22 | "...---...", //< ASCII: BEL, Morse code: SOS distress signal. |
kabukistarship | 2:aa9a1377aa0d | 23 | "........", //< ASCII: BS, Morse code: Prosign error. |
kabukistarship | 2:aa9a1377aa0d | 24 | Space, //< ASCII: HT, Morse code: non-standard space. |
kabukistarship | 2:aa9a1377aa0d | 25 | ".-.-", //< ASCII: LF, Morse code: New Line |
kabukistarship | 2:aa9a1377aa0d | 26 | "-...-", //< ASCII: VT, Morse code: New paragraph. |
kabukistarship | 2:aa9a1377aa0d | 27 | ".-.-.", //< ASCII: FF, Morse code: New Page |
kabukistarship | 2:aa9a1377aa0d | 28 | 0, //< ASCII: CR |
kabukistarship | 2:aa9a1377aa0d | 29 | "-..---", //< ASCII: SO, Morse code: Change to Wabun Mores code. |
kabukistarship | 2:aa9a1377aa0d | 30 | ".--...", //< ASCII: SI, Morse code: Non-standard return to Western Mores code |
kabukistarship | 2:aa9a1377aa0d | 31 | 0, //< ASCII: DLE |
kabukistarship | 2:aa9a1377aa0d | 32 | 0, //< ASCII: DC1 |
kabukistarship | 2:aa9a1377aa0d | 33 | 0, //< ASCII: DC2 |
kabukistarship | 2:aa9a1377aa0d | 34 | 0, //< ASCII: DC3 |
kabukistarship | 2:aa9a1377aa0d | 35 | 0, //< ASCII: DC4 |
kabukistarship | 2:aa9a1377aa0d | 36 | 0, //< ASCII: NAK |
kabukistarship | 2:aa9a1377aa0d | 37 | ".-...", //< ASCII: SYN, Morse code: AS, Wait. |
kabukistarship | 2:aa9a1377aa0d | 38 | 0, //< ASCII: ETB |
kabukistarship | 2:aa9a1377aa0d | 39 | 0, //< ASCII: CAN |
kabukistarship | 2:aa9a1377aa0d | 40 | "-...-.-", //< ASCII: EM, Morse code: Break/BRB. |
kabukistarship | 2:aa9a1377aa0d | 41 | 0, //< ASCII: SUB |
kabukistarship | 2:aa9a1377aa0d | 42 | 0, //< ASCII: ESC |
kabukistarship | 2:aa9a1377aa0d | 43 | 0, //< ASCII: FS |
kabukistarship | 2:aa9a1377aa0d | 44 | 0, //< ASCII: GS |
kabukistarship | 2:aa9a1377aa0d | 45 | 0, //< ASCII: RS |
kabukistarship | 2:aa9a1377aa0d | 46 | 0, //< ASCII: US |
kabukistarship | 2:aa9a1377aa0d | 47 | Space, //< ASCII: ' ' |
kabukistarship | 2:aa9a1377aa0d | 48 | ".-..-.", //< ASCII: '!' |
kabukistarship | 2:aa9a1377aa0d | 49 | ".-..-.", //< ASCII: '\"' |
kabukistarship | 2:aa9a1377aa0d | 50 | 0, //< ASCII: '#' |
kabukistarship | 2:aa9a1377aa0d | 51 | "..._.-..", //< ASCII: '$' |
kabukistarship | 2:aa9a1377aa0d | 52 | "....._..", //< ASCII: '%' |
kabukistarship | 2:aa9a1377aa0d | 53 | "._...", //< ASCII: '&' |
kabukistarship | 2:aa9a1377aa0d | 54 | ".----.", //< ASCII: '\'' |
kabukistarship | 2:aa9a1377aa0d | 55 | "-.--.-", //< ASCII: '(' |
kabukistarship | 2:aa9a1377aa0d | 56 | ".-..-.", //< ASCII: ')', Nonstandard, inverse of '(' |
kabukistarship | 2:aa9a1377aa0d | 57 | 0, //< ASCII: '*' |
kabukistarship | 2:aa9a1377aa0d | 58 | 0, //< ASCII: '+' |
kabukistarship | 2:aa9a1377aa0d | 59 | "--..--", //< ASCII: ',' |
kabukistarship | 2:aa9a1377aa0d | 60 | "-....-", //< ASCII: '-' |
kabukistarship | 2:aa9a1377aa0d | 61 | ".-.-.-", //< ASCII: '.' |
kabukistarship | 2:aa9a1377aa0d | 62 | "-..-.", //< ASCII: '/' |
kabukistarship | 2:aa9a1377aa0d | 63 | "-----", //< ASCII: '0' |
kabukistarship | 2:aa9a1377aa0d | 64 | ".---", //< ASCII: '1' |
kabukistarship | 2:aa9a1377aa0d | 65 | "..---", //< ASCII: '2' |
kabukistarship | 2:aa9a1377aa0d | 66 | "...--", //< ASCII: '3' |
kabukistarship | 2:aa9a1377aa0d | 67 | "....-", //< ASCII: '4' |
kabukistarship | 2:aa9a1377aa0d | 68 | ".....", //< ASCII: '5' |
kabukistarship | 2:aa9a1377aa0d | 69 | "-...", //< ASCII: '6' |
kabukistarship | 2:aa9a1377aa0d | 70 | "--...", //< ASCII: '7' |
kabukistarship | 2:aa9a1377aa0d | 71 | "---..", //< ASCII: '8' |
kabukistarship | 2:aa9a1377aa0d | 72 | "----.", //< ASCII: '9' |
kabukistarship | 2:aa9a1377aa0d | 73 | "---...", //< ASCII: ':' |
kabukistarship | 2:aa9a1377aa0d | 74 | 0, //< ASCII: ',' |
kabukistarship | 2:aa9a1377aa0d | 75 | 0, //< ASCII: '<' |
kabukistarship | 2:aa9a1377aa0d | 76 | "-...-", //< ASCII: '=' |
kabukistarship | 2:aa9a1377aa0d | 77 | 0, //< ASCII: '>' |
kabukistarship | 2:aa9a1377aa0d | 78 | "..--..", //< ASCII: '?' |
kabukistarship | 2:aa9a1377aa0d | 79 | ".--.-.", //< ASCII: '@' |
kabukistarship | 2:aa9a1377aa0d | 80 | ".-", //< ASCII: 'A' |
kabukistarship | 2:aa9a1377aa0d | 81 | "-...", //< ASCII: 'B' |
kabukistarship | 2:aa9a1377aa0d | 82 | "-.-.", //< ASCII: 'C' |
kabukistarship | 2:aa9a1377aa0d | 83 | "-..", //< ASCII: 'D' |
kabukistarship | 2:aa9a1377aa0d | 84 | ".", //< ASCII: 'E' |
kabukistarship | 2:aa9a1377aa0d | 85 | "..-.", //< ASCII: 'F' |
kabukistarship | 2:aa9a1377aa0d | 86 | "--.", //< ASCII: 'G' |
kabukistarship | 2:aa9a1377aa0d | 87 | "....", //< ASCII: 'H' |
kabukistarship | 2:aa9a1377aa0d | 88 | "..", //< ASCII: 'I' |
kabukistarship | 2:aa9a1377aa0d | 89 | ".---", //< ASCII: 'J' |
kabukistarship | 2:aa9a1377aa0d | 90 | "-.-", //< ASCII: 'K' |
kabukistarship | 2:aa9a1377aa0d | 91 | ".-..", //< ASCII: 'L' |
kabukistarship | 2:aa9a1377aa0d | 92 | "--", //< ASCII: 'M' |
kabukistarship | 2:aa9a1377aa0d | 93 | "-.", //< ASCII: 'N' |
kabukistarship | 2:aa9a1377aa0d | 94 | "---", //< ASCII: 'O' |
kabukistarship | 2:aa9a1377aa0d | 95 | ".--.", //< ASCII: 'P' |
kabukistarship | 2:aa9a1377aa0d | 96 | "--.-", //< ASCII: 'Q' |
kabukistarship | 2:aa9a1377aa0d | 97 | ".-.", //< ASCII: 'R' |
kabukistarship | 2:aa9a1377aa0d | 98 | "...", //< ASCII: 'S' |
kabukistarship | 2:aa9a1377aa0d | 99 | "-", //< ASCII: 'T' |
kabukistarship | 2:aa9a1377aa0d | 100 | "..-", //< ASCII: 'U' |
kabukistarship | 2:aa9a1377aa0d | 101 | "...-", //< ASCII: 'V' |
kabukistarship | 2:aa9a1377aa0d | 102 | ".--", //< ASCII: 'W' |
kabukistarship | 2:aa9a1377aa0d | 103 | "-..-", //< ASCII: 'X' |
kabukistarship | 2:aa9a1377aa0d | 104 | "-.--", //< ASCII: 'Y' |
kabukistarship | 2:aa9a1377aa0d | 105 | "--.." //< ASCII: 'Z' |
kabukistarship | 2:aa9a1377aa0d | 106 | }; |
kabukistarship | 2:aa9a1377aa0d | 107 | |
kabukistarship | 2:aa9a1377aa0d | 108 | ///if (code < 0) return 0; //< Uncomment if your compiler uses signed char. |
kabukistarship | 2:aa9a1377aa0d | 109 | if (Code >= 'a' && Code <= 'z') Code -= 'a' - 'A'; //< Covert from lowercase to upper case if need be. |
kabukistarship | 2:aa9a1377aa0d | 110 | if (Code > 'Z') |
kabukistarship | 2:aa9a1377aa0d | 111 | { |
kabukistarship | 2:aa9a1377aa0d | 112 | switch (Code) |
kabukistarship | 2:aa9a1377aa0d | 113 | { |
kabukistarship | 2:aa9a1377aa0d | 114 | case -4: return ".-.-"; //< 132 |
kabukistarship | 2:aa9a1377aa0d | 115 | case -5: return ".--.-"; //< 133 |
kabukistarship | 2:aa9a1377aa0d | 116 | case -6: return ".--.-"; //< 134 |
kabukistarship | 2:aa9a1377aa0d | 117 | case -16: return "..-.."; //< 144 |
kabukistarship | 2:aa9a1377aa0d | 118 | case -37: return "--.--"; //< 165 |
kabukistarship | 2:aa9a1377aa0d | 119 | case -25: return "---."; //< 153 |
kabukistarship | 2:aa9a1377aa0d | 120 | case -26: return "..--"; //< 154 |
kabukistarship | 2:aa9a1377aa0d | 121 | default: return 0; |
kabukistarship | 2:aa9a1377aa0d | 122 | } |
kabukistarship | 2:aa9a1377aa0d | 123 | } |
kabukistarship | 2:aa9a1377aa0d | 124 | return Cypher[Code]; |
kabukistarship | 2:aa9a1377aa0d | 125 | } |
kabukistarship | 2:aa9a1377aa0d | 126 | |
kabukistarship | 2:aa9a1377aa0d | 127 | } //< namespace mbedbug |