Skip to content

Galindo-lab/braille-cells-c

Repository files navigation

braille-cells-c

Sistema De Lectoescritura Braille

Para escribir en braille se utilizan seis puntos para representar los símbolos del alfabeto, los números y caracteres de control.

Cada carácter esta compuesto de seis puntos, para poder especificar los relieves del carácter usualmente se utiliza siguiente nomenclatura:

1 4
2 5
3 6

Representar Los Caracteres

Además de la forma con relieves o visual podemos representar los caracteres mediante los números de sus relieves, ejemplo:

Carácter J:

. o     
o o --> 245
. .

Carácter R:

o .     
o o --> 1235
o .

Sistema De Braillecells

Podemos representar los relieves del carácter mediante el sistema binario, de manera que el bit menos significativo represente el relieve con la posición mas baja:

  • el relieve 1 es el bit 0
  • el relieve 2 es el bit 1
  • el relieve 3 es el bit 2
  • etc…
1 4       0 3
2 5  -->  1 4
3 6       2 5

Entonces en memoria los caracteres se verían representados de la siguiente manera:

CarácterBrailleBrailleCell
a1000001
b12000011
j245011010
r1235010111

Extraer Los Relieves Del Carácter

Para conocer el estado de cada relieve solo basta con crear una mascara con la posición del relieve que nos interesa conocer, cabe recordar que los relieves empiezan desde la posición cero:

char get_dot(BrailleCell character, char dot_pos) {
  return (character.dots & 1 << dot_pos);
}

Funciones

  • BrailleCell get_braille_char(int pos) Retorna el caracter correspondiente a la posicion en el charset.
  • char get_dot(BrailleCell character, char dot_pos) Retorna el estado del punto en cada posición.
  • char dots(BrailleCell character) Retorna el valor numerico de los relieves.
  • char is_numeric(unsigned int ch) Verifica que el carácter representa un numero.
  • is_alphabetic Valida si el carácter es alguna de las letras del alfabeto (ascii).
  • char is_capital(unsigned int chr) Validar si un carácter es mayúscula (ascii).
  • BrailleCell char_to_braille(unsigned int chr) Convierte un carácter ascii en su equivalente en BrailleCell.

Charset

IDBrailleCellCharacter
00b000001a - 1
10b000011b - 2
20b001001c - 3
30b011001d - 4
40b010001e - 5
50b001011f - 6
60b011011g - 7
70b010011h - 8
80b001010i - 9
90b011010j - 0
100b000101k
110b000111l
120b001101m
130b011101n
140b010101o
150b001111p
160b011111q
170b010111r
180b001110s
190b011110t
200b100101u
210b100111v
220b111010w
230b101101x
240b111101y
250b110101z
260b111100prefijo numerico
270b101000mayusculas
280b010000interruptor de numero
290b111111espacio
300b010110!
310b100110
320b111100#
330b110010$
340b111000%
350b111111&
360b100110
370b100011(
380b011100)
390b010100*
400b010110+
410b000010,
420b100100- (menos)
430b000100. (punto)
440b001100/
450b010010
460b000110;
470b101010<
480b110110=
490b010101>
500b100010¿?
510b010000@
520b111011ñ
530b110111á
540b101110é
550b001100í
560b101100ó
570b111110ú
580b110011ü