Protocolo de Comunicación

POS - Caja

Cuando veas cosas como texto entre símbolos < > nos estamos refiriendo a caracteres ASCII que no son imprimibles o visible como texto, y cuando veas cosas con la forma 0x00 nos referimos a la representación hexadecimal de los caracteres ASCII.

La comunicación se realiza a través de un puerto serial RS232, a velocidades que van entre los 1200bps hasta 115200bps 8N1, es decir, 8 bits de datos, ningún bit de paridad y 1 bit de parada.

Todos los comandos que se envían al POS deben cumplir con el flujo antes mencionado.

Todos los mensajes intercambiados entre la caja y el POS Integrado cumplen con el formato: <STX>DATOS<ETX>LRC

Ejemplo de cálculo LRC

Dado el siguiente comando: <STX>0200|123|<ETX>

Que en notación hexadecimal sería: 0x02 0x30 0x32 0x30 0x30 0x7C 0x31 0x32 0x33 0x7C 0x03

Para calcular el LRC debemos omitir el inicio de texto o 0x02.

La operación entonces sería:

(((((((((0x30 XOR 0x32) XOR 0x30) XOR 0x30) XOR 0x7C) XOR 0x31) XOR 0x32) XOR 0x33) XOR 0x7C) XOR 0x03)

El resultado entonces sería 0x31 en hexadecimal o 1 en ASCII, por lo tanto, el mensaje completo para enviar al POS Integrado es:

<STX>: 0x02

DATOS: 0x30 0x32 0x30 0x30 0x7C 0x31 0x32 0x33 0x7C

<ETX>: 0x03

LRC: 0x31