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