This is a *VERY* Rough library for translating binary representations of grade 1 braille into ASCII strings.

Committer:
aganger3
Date:
Fri Oct 12 07:03:59 2012 +0000
Revision:
7:bd06bf7ddafb
Parent:
4:0ddc5208706e
Child:
8:4e65648a50cd
Cleverness removed from switch statement to make it easier to debug. Deadlines, deadlines!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aganger3 0:22ca5452cf10 1 #include "Braille_In.h"
aganger3 0:22ca5452cf10 2
aganger3 0:22ca5452cf10 3
aganger3 0:22ca5452cf10 4
aganger3 0:22ca5452cf10 5 char* BrailleInput::translateBraille(char* input, int numChars)
aganger3 0:22ca5452cf10 6 {
aganger3 4:0ddc5208706e 7
aganger3 0:22ca5452cf10 8 bool NextCaps=false;
aganger3 0:22ca5452cf10 9 for (int i=0;i<numChars;i++)
aganger3 0:22ca5452cf10 10 {
aganger3 0:22ca5452cf10 11 output[i]=translateBrailleChar(input[i],NextCaps);
aganger3 0:22ca5452cf10 12 }
aganger3 3:36f07cfb3fe1 13 output[numChars+1]='\0';
aganger3 3:36f07cfb3fe1 14 return output;
aganger3 0:22ca5452cf10 15 }
aganger3 0:22ca5452cf10 16
aganger3 0:22ca5452cf10 17
aganger3 3:36f07cfb3fe1 18 char* BrailleInput::translateBraille(const char* input, int numChars)
aganger3 3:36f07cfb3fe1 19 {
aganger3 4:0ddc5208706e 20
aganger3 3:36f07cfb3fe1 21 bool NextCaps=false;
aganger3 3:36f07cfb3fe1 22 for (int i=0;i<numChars;i++)
aganger3 3:36f07cfb3fe1 23 {
aganger3 3:36f07cfb3fe1 24 output[i]=translateBrailleChar(input[i],NextCaps);
aganger3 3:36f07cfb3fe1 25 }
aganger3 3:36f07cfb3fe1 26 output[numChars+1]='\0';
aganger3 3:36f07cfb3fe1 27 return output;
aganger3 3:36f07cfb3fe1 28
aganger3 3:36f07cfb3fe1 29 }
aganger3 3:36f07cfb3fe1 30
aganger3 0:22ca5452cf10 31 char BrailleInput::translateBrailleChar(char input, bool& NextCaps)
aganger3 0:22ca5452cf10 32 {
aganger3 0:22ca5452cf10 33 NextCaps=false;
aganger3 0:22ca5452cf10 34 char out;
aganger3 0:22ca5452cf10 35 bool undefined=false;
aganger3 0:22ca5452cf10 36
aganger3 0:22ca5452cf10 37
aganger3 7:bd06bf7ddafb 38 switch(input){
aganger3 7:bd06bf7ddafb 39 case 0x1:
aganger3 7:bd06bf7ddafb 40 out='a';
aganger3 7:bd06bf7ddafb 41 break;
aganger3 7:bd06bf7ddafb 42 case 0x3:
aganger3 7:bd06bf7ddafb 43 out='b';
aganger3 7:bd06bf7ddafb 44 break;
aganger3 7:bd06bf7ddafb 45 case 0x9:
aganger3 7:bd06bf7ddafb 46 out='c';
aganger3 7:bd06bf7ddafb 47 break;
aganger3 7:bd06bf7ddafb 48 case 0x25:
aganger3 7:bd06bf7ddafb 49 out='d';
aganger3 7:bd06bf7ddafb 50 break;
aganger3 7:bd06bf7ddafb 51 case 0x17:
aganger3 7:bd06bf7ddafb 52 out='e';
aganger3 7:bd06bf7ddafb 53 break;
aganger3 7:bd06bf7ddafb 54 case 0x11:
aganger3 7:bd06bf7ddafb 55 out='f';
aganger3 7:bd06bf7ddafb 56 break;
aganger3 7:bd06bf7ddafb 57 case 0x27:
aganger3 7:bd06bf7ddafb 58 out='g';
aganger3 7:bd06bf7ddafb 59 break;
aganger3 7:bd06bf7ddafb 60 case 0x19:
aganger3 7:bd06bf7ddafb 61 out='h';
aganger3 7:bd06bf7ddafb 62 break;
aganger3 7:bd06bf7ddafb 63 case 0x10:
aganger3 7:bd06bf7ddafb 64 out='i';
aganger3 7:bd06bf7ddafb 65 break;
aganger3 7:bd06bf7ddafb 66 case 0x26:
aganger3 7:bd06bf7ddafb 67 out='j';
aganger3 7:bd06bf7ddafb 68 break;
aganger3 7:bd06bf7ddafb 69 case 0x5:
aganger3 7:bd06bf7ddafb 70 out='k';
aganger3 7:bd06bf7ddafb 71 break;
aganger3 7:bd06bf7ddafb 72 case 0x7:
aganger3 7:bd06bf7ddafb 73 out='l';
aganger3 7:bd06bf7ddafb 74 break;
aganger3 7:bd06bf7ddafb 75 case 0x13:
aganger3 7:bd06bf7ddafb 76 out='m';
aganger3 7:bd06bf7ddafb 77 break;
aganger3 7:bd06bf7ddafb 78 case 0x29:
aganger3 7:bd06bf7ddafb 79 out='n';
aganger3 7:bd06bf7ddafb 80 break;
aganger3 7:bd06bf7ddafb 81 case 0x21:
aganger3 7:bd06bf7ddafb 82 out='o';
aganger3 7:bd06bf7ddafb 83 break;
aganger3 7:bd06bf7ddafb 84 case 0x15:
aganger3 7:bd06bf7ddafb 85 out='p';
aganger3 7:bd06bf7ddafb 86 break;
aganger3 7:bd06bf7ddafb 87 case 0x31:
aganger3 7:bd06bf7ddafb 88 out='q';
aganger3 7:bd06bf7ddafb 89 break;
aganger3 7:bd06bf7ddafb 90 case 0x23:
aganger3 7:bd06bf7ddafb 91 out='r';
aganger3 7:bd06bf7ddafb 92 break;
aganger3 7:bd06bf7ddafb 93 case 0x14:
aganger3 7:bd06bf7ddafb 94 out='s';
aganger3 7:bd06bf7ddafb 95 break;
aganger3 7:bd06bf7ddafb 96 case 0x30:
aganger3 7:bd06bf7ddafb 97 out='t';
aganger3 7:bd06bf7ddafb 98 break;
aganger3 7:bd06bf7ddafb 99 case 0x37:
aganger3 7:bd06bf7ddafb 100 out='u';
aganger3 7:bd06bf7ddafb 101 break;
aganger3 7:bd06bf7ddafb 102 case 0x39:
aganger3 7:bd06bf7ddafb 103 out='v';
aganger3 7:bd06bf7ddafb 104 break;
aganger3 7:bd06bf7ddafb 105 case 0x58:
aganger3 7:bd06bf7ddafb 106 out='w';
aganger3 7:bd06bf7ddafb 107 break;
aganger3 7:bd06bf7ddafb 108 case 0x45:
aganger3 7:bd06bf7ddafb 109 out='x';
aganger3 7:bd06bf7ddafb 110 break;
aganger3 7:bd06bf7ddafb 111 case 0x61:
aganger3 7:bd06bf7ddafb 112 out='y';
aganger3 7:bd06bf7ddafb 113 break;
aganger3 7:bd06bf7ddafb 114 case 0x53:
aganger3 7:bd06bf7ddafb 115 out='z';
aganger3 7:bd06bf7ddafb 116 break;
aganger3 7:bd06bf7ddafb 117 case 0x38:
aganger3 7:bd06bf7ddafb 118 out='?';
aganger3 7:bd06bf7ddafb 119 break;
aganger3 7:bd06bf7ddafb 120 case 0x50:
aganger3 7:bd06bf7ddafb 121 out='.';
aganger3 7:bd06bf7ddafb 122 break;
aganger3 7:bd06bf7ddafb 123 case 0x22:
aganger3 7:bd06bf7ddafb 124 out='!';
aganger3 7:bd06bf7ddafb 125 break;
aganger3 7:bd06bf7ddafb 126 case 0x18:
aganger3 7:bd06bf7ddafb 127 out=':';
aganger3 7:bd06bf7ddafb 128 break;
aganger3 7:bd06bf7ddafb 129 case 0x6:
aganger3 7:bd06bf7ddafb 130 out=';';
aganger3 7:bd06bf7ddafb 131 break;
aganger3 7:bd06bf7ddafb 132 case 0:
aganger3 7:bd06bf7ddafb 133 out=' ';
aganger3 7:bd06bf7ddafb 134 break;
aganger3 7:bd06bf7ddafb 135 case 0x32:
aganger3 7:bd06bf7ddafb 136 out=' ';
aganger3 7:bd06bf7ddafb 137 NextCaps=true;
aganger3 7:bd06bf7ddafb 138 break;
aganger3 1:d79dbb617533 139
aganger3 0:22ca5452cf10 140
aganger3 7:bd06bf7ddafb 141 default:
aganger3 7:bd06bf7ddafb 142 out=' ';
aganger3 7:bd06bf7ddafb 143 }
aganger3 7:bd06bf7ddafb 144
aganger3 7:bd06bf7ddafb 145
aganger3 7:bd06bf7ddafb 146
aganger3 7:bd06bf7ddafb 147
aganger3 7:bd06bf7ddafb 148
aganger3 1:d79dbb617533 149
aganger3 1:d79dbb617533 150 if (NextCaps)
aganger3 1:d79dbb617533 151 {
aganger3 7:bd06bf7ddafb 152 //out=out-0x20;
aganger3 1:d79dbb617533 153 NextCaps=false;
aganger3 1:d79dbb617533 154 }
aganger3 0:22ca5452cf10 155
aganger3 0:22ca5452cf10 156
aganger3 2:4cd96cdca95a 157 if (input== 0x0)
aganger3 2:4cd96cdca95a 158 {
aganger3 2:4cd96cdca95a 159 out=' ';
aganger3 2:4cd96cdca95a 160 }
aganger3 0:22ca5452cf10 161
aganger3 0:22ca5452cf10 162 return out;
aganger3 0:22ca5452cf10 163 }
aganger3 0:22ca5452cf10 164
aganger3 0:22ca5452cf10 165
aganger3 0:22ca5452cf10 166
aganger3 0:22ca5452cf10 167
aganger3 0:22ca5452cf10 168
aganger3 0:22ca5452cf10 169
aganger3 0:22ca5452cf10 170
aganger3 0:22ca5452cf10 171
aganger3 0:22ca5452cf10 172
aganger3 0:22ca5452cf10 173
aganger3 0:22ca5452cf10 174
aganger3 0:22ca5452cf10 175
aganger3 0:22ca5452cf10 176
aganger3 0:22ca5452cf10 177
aganger3 0:22ca5452cf10 178
aganger3 0:22ca5452cf10 179