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

Committer:
aganger3
Date:
Fri Oct 12 07:22:30 2012 +0000
Revision:
9:cc189ce99a98
Parent:
8:4e65648a50cd
Changed space mapping from 0 to 127 since 0 is a string terminator. D'oh!

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 8:4e65648a50cd 39 case 1:
aganger3 7:bd06bf7ddafb 40 out='a';
aganger3 7:bd06bf7ddafb 41 break;
aganger3 8:4e65648a50cd 42 case 3:
aganger3 7:bd06bf7ddafb 43 out='b';
aganger3 7:bd06bf7ddafb 44 break;
aganger3 8:4e65648a50cd 45 case 9:
aganger3 7:bd06bf7ddafb 46 out='c';
aganger3 7:bd06bf7ddafb 47 break;
aganger3 8:4e65648a50cd 48 case 25:
aganger3 7:bd06bf7ddafb 49 out='d';
aganger3 7:bd06bf7ddafb 50 break;
aganger3 8:4e65648a50cd 51 case 17:
aganger3 7:bd06bf7ddafb 52 out='e';
aganger3 7:bd06bf7ddafb 53 break;
aganger3 8:4e65648a50cd 54 case 11:
aganger3 7:bd06bf7ddafb 55 out='f';
aganger3 7:bd06bf7ddafb 56 break;
aganger3 8:4e65648a50cd 57 case 27:
aganger3 7:bd06bf7ddafb 58 out='g';
aganger3 7:bd06bf7ddafb 59 break;
aganger3 8:4e65648a50cd 60 case 19:
aganger3 7:bd06bf7ddafb 61 out='h';
aganger3 7:bd06bf7ddafb 62 break;
aganger3 8:4e65648a50cd 63 case 10:
aganger3 7:bd06bf7ddafb 64 out='i';
aganger3 7:bd06bf7ddafb 65 break;
aganger3 8:4e65648a50cd 66 case 26:
aganger3 7:bd06bf7ddafb 67 out='j';
aganger3 7:bd06bf7ddafb 68 break;
aganger3 8:4e65648a50cd 69 case 5:
aganger3 7:bd06bf7ddafb 70 out='k';
aganger3 7:bd06bf7ddafb 71 break;
aganger3 8:4e65648a50cd 72 case 7:
aganger3 7:bd06bf7ddafb 73 out='l';
aganger3 7:bd06bf7ddafb 74 break;
aganger3 8:4e65648a50cd 75 case 13:
aganger3 7:bd06bf7ddafb 76 out='m';
aganger3 7:bd06bf7ddafb 77 break;
aganger3 8:4e65648a50cd 78 case 29:
aganger3 7:bd06bf7ddafb 79 out='n';
aganger3 7:bd06bf7ddafb 80 break;
aganger3 8:4e65648a50cd 81 case 21:
aganger3 7:bd06bf7ddafb 82 out='o';
aganger3 7:bd06bf7ddafb 83 break;
aganger3 8:4e65648a50cd 84 case 15:
aganger3 7:bd06bf7ddafb 85 out='p';
aganger3 7:bd06bf7ddafb 86 break;
aganger3 8:4e65648a50cd 87 case 31:
aganger3 7:bd06bf7ddafb 88 out='q';
aganger3 7:bd06bf7ddafb 89 break;
aganger3 8:4e65648a50cd 90 case 23:
aganger3 7:bd06bf7ddafb 91 out='r';
aganger3 7:bd06bf7ddafb 92 break;
aganger3 8:4e65648a50cd 93 case 14:
aganger3 7:bd06bf7ddafb 94 out='s';
aganger3 7:bd06bf7ddafb 95 break;
aganger3 8:4e65648a50cd 96 case 30:
aganger3 7:bd06bf7ddafb 97 out='t';
aganger3 7:bd06bf7ddafb 98 break;
aganger3 8:4e65648a50cd 99 case 37:
aganger3 7:bd06bf7ddafb 100 out='u';
aganger3 7:bd06bf7ddafb 101 break;
aganger3 8:4e65648a50cd 102 case 39:
aganger3 7:bd06bf7ddafb 103 out='v';
aganger3 7:bd06bf7ddafb 104 break;
aganger3 8:4e65648a50cd 105 case 58:
aganger3 7:bd06bf7ddafb 106 out='w';
aganger3 7:bd06bf7ddafb 107 break;
aganger3 8:4e65648a50cd 108 case 45:
aganger3 7:bd06bf7ddafb 109 out='x';
aganger3 7:bd06bf7ddafb 110 break;
aganger3 8:4e65648a50cd 111 case 61:
aganger3 7:bd06bf7ddafb 112 out='y';
aganger3 7:bd06bf7ddafb 113 break;
aganger3 8:4e65648a50cd 114 case 53:
aganger3 7:bd06bf7ddafb 115 out='z';
aganger3 7:bd06bf7ddafb 116 break;
aganger3 8:4e65648a50cd 117 case 38:
aganger3 7:bd06bf7ddafb 118 out='?';
aganger3 7:bd06bf7ddafb 119 break;
aganger3 8:4e65648a50cd 120 case 50:
aganger3 7:bd06bf7ddafb 121 out='.';
aganger3 7:bd06bf7ddafb 122 break;
aganger3 8:4e65648a50cd 123 case 22:
aganger3 7:bd06bf7ddafb 124 out='!';
aganger3 7:bd06bf7ddafb 125 break;
aganger3 8:4e65648a50cd 126 case 18:
aganger3 7:bd06bf7ddafb 127 out=':';
aganger3 7:bd06bf7ddafb 128 break;
aganger3 8:4e65648a50cd 129 case 6:
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 8:4e65648a50cd 135 case 32:
aganger3 7:bd06bf7ddafb 136 out=' ';
aganger3 7:bd06bf7ddafb 137 NextCaps=true;
aganger3 7:bd06bf7ddafb 138 break;
aganger3 9:cc189ce99a98 139 case 127:
aganger3 9:cc189ce99a98 140 out=' ';
aganger3 9:cc189ce99a98 141 break;
aganger3 0:22ca5452cf10 142
aganger3 7:bd06bf7ddafb 143 default:
aganger3 7:bd06bf7ddafb 144 out=' ';
aganger3 7:bd06bf7ddafb 145 }
aganger3 7:bd06bf7ddafb 146
aganger3 7:bd06bf7ddafb 147
aganger3 7:bd06bf7ddafb 148
aganger3 7:bd06bf7ddafb 149
aganger3 7:bd06bf7ddafb 150
aganger3 1:d79dbb617533 151
aganger3 1:d79dbb617533 152 if (NextCaps)
aganger3 1:d79dbb617533 153 {
aganger3 8:4e65648a50cd 154
aganger3 7:bd06bf7ddafb 155 //out=out-0x20;
aganger3 1:d79dbb617533 156 NextCaps=false;
aganger3 1:d79dbb617533 157 }
aganger3 0:22ca5452cf10 158
aganger3 0:22ca5452cf10 159
aganger3 2:4cd96cdca95a 160 if (input== 0x0)
aganger3 2:4cd96cdca95a 161 {
aganger3 2:4cd96cdca95a 162 out=' ';
aganger3 2:4cd96cdca95a 163 }
aganger3 0:22ca5452cf10 164
aganger3 0:22ca5452cf10 165 return out;
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
aganger3 0:22ca5452cf10 180
aganger3 0:22ca5452cf10 181
aganger3 0:22ca5452cf10 182