The example program for mbed pin-compatible platforms
Fork of mbed_blinky by
MorseCharacter.cpp@14:4a4ee2766632, 2014-08-24 (annotated)
- Committer:
- vartan
- Date:
- Sun Aug 24 18:28:32 2014 +0000
- Revision:
- 14:4a4ee2766632
- Parent:
- 13:6704d585922d
- Child:
- 17:3dbf734d2731
Better documentation, hopefully
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vartan | 7:b1e0b6f381ba | 1 | #include "MorseCharacter.h" |
vartan | 10:be10c21d2681 | 2 | |
vartan | 8:ec3e22e9100e | 3 | MorseCharacter::MorseCharacter(char character) { |
vartan | 8:ec3e22e9100e | 4 | if(character >= '0' && character <= '9') |
vartan | 11:87bc5f44dcfa | 5 | mSequence = numbers[character - '0']; |
vartan | 9:9088b8a51286 | 6 | else if(character >= 'a' && character <= 'z') |
vartan | 11:87bc5f44dcfa | 7 | mSequence = letters[character - 'a']; |
vartan | 9:9088b8a51286 | 8 | else if(character >= 'A' && character <= 'Z') |
vartan | 11:87bc5f44dcfa | 9 | mSequence = letters[character - 'A']; |
vartan | 8:ec3e22e9100e | 10 | else |
vartan | 8:ec3e22e9100e | 11 | mSequence = 0x00; |
vartan | 8:ec3e22e9100e | 12 | } |
vartan | 12:be51d2738b93 | 13 | |
vartan | 10:be10c21d2681 | 14 | /** |
vartan | 10:be10c21d2681 | 15 | * Get Morse Part |
vartan | 14:4a4ee2766632 | 16 | * |
vartan | 10:be10c21d2681 | 17 | * Returns the nth dit/dah in the morse sequence. |
vartan | 10:be10c21d2681 | 18 | */ |
vartan | 12:be51d2738b93 | 19 | char MorseCharacter::getPart(int partNumber) const { |
vartan | 8:ec3e22e9100e | 20 | char length = this->getNumberOfParts(); |
vartan | 8:ec3e22e9100e | 21 | if(partNumber >= length) { |
vartan | 8:ec3e22e9100e | 22 | return 0x00; // error or space |
vartan | 8:ec3e22e9100e | 23 | } else { |
vartan | 11:87bc5f44dcfa | 24 | return (this->mSequence >> (length - partNumber)) & 0x01; // 1:dash, 0:dit |
vartan | 8:ec3e22e9100e | 25 | } |
vartan | 8:ec3e22e9100e | 26 | } |
vartan | 7:b1e0b6f381ba | 27 | |
vartan | 7:b1e0b6f381ba | 28 | const char MorseCharacter::numbers[] = { |
vartan | 13:6704d585922d | 29 | 0xBF, // 0 |
vartan | 13:6704d585922d | 30 | 0xAF, // 1 |
vartan | 13:6704d585922d | 31 | 0xA7, // 2 |
vartan | 13:6704d585922d | 32 | 0xA3, // 3 |
vartan | 13:6704d585922d | 33 | 0xA1, // 4 |
vartan | 13:6704d585922d | 34 | 0xA0, // 5 |
vartan | 13:6704d585922d | 35 | 0xB0, // 6 |
vartan | 13:6704d585922d | 36 | 0xB8, // 7 |
vartan | 13:6704d585922d | 37 | 0xBC, // 8 |
vartan | 13:6704d585922d | 38 | 0xBE // 9 |
vartan | 13:6704d585922d | 39 | }; |
vartan | 7:b1e0b6f381ba | 40 | const char MorseCharacter::letters[] = { |
vartan | 13:6704d585922d | 41 | 0x48, // A |
vartan | 13:6704d585922d | 42 | 0x90, // B |
vartan | 13:6704d585922d | 43 | 0x94, // C |
vartan | 13:6704d585922d | 44 | 0x70, // D |
vartan | 13:6704d585922d | 45 | 0x20, // E |
vartan | 13:6704d585922d | 46 | 0x84, // F |
vartan | 13:6704d585922d | 47 | 0x78, // G |
vartan | 13:6704d585922d | 48 | 0x80, // H |
vartan | 13:6704d585922d | 49 | 0x40, // I |
vartan | 13:6704d585922d | 50 | 0x8E, // J |
vartan | 13:6704d585922d | 51 | 0x74, // K |
vartan | 13:6704d585922d | 52 | 0x88, // L |
vartan | 13:6704d585922d | 53 | 0x58, // M |
vartan | 13:6704d585922d | 54 | 0x50, // N |
vartan | 13:6704d585922d | 55 | 0x7C, // O |
vartan | 13:6704d585922d | 56 | 0x8C, // P |
vartan | 13:6704d585922d | 57 | 0x9A, // Q |
vartan | 13:6704d585922d | 58 | 0x68, // R |
vartan | 13:6704d585922d | 59 | 0x60, // S |
vartan | 13:6704d585922d | 60 | 0x30, // T |
vartan | 13:6704d585922d | 61 | 0x64, // U |
vartan | 13:6704d585922d | 62 | 0x82, // V |
vartan | 13:6704d585922d | 63 | 0x6C, // W |
vartan | 13:6704d585922d | 64 | 0x92, // X |
vartan | 13:6704d585922d | 65 | 0x96, // Y |
vartan | 13:6704d585922d | 66 | 0x98 // Z |
vartan | 13:6704d585922d | 67 | }; |