COGES ECS PROGRAMMER

 

En esta entrada analizaremos este dispositivo, que comprendiendo su funcionamiento pude desarrollar software para windows y android. Ello me ayudó  a configurar mis máquinas sin tener que hacer un desembolso grande y con una mayor comodidad, sobre todo el desarrollado para Android y conectándolo por Bluetooth.

Este programador es un Instrumento utilizado para la programación de los dispositivos Coges, desde los sistemas de pago cashless a los periféricos para el reconocimiento de monedas y billetes.
E.C.S. Programmer es un práctico programador en un formato de bolsillo, diseñado para realizar las funciones de programación de forma rápida y para ser conectado directamente a los dispositivos Coges.
El programador está constituido por un teclado numérico de 16 teclas que permite la introducción de los datos de programación, y por un práctico display de LCD que permite la visualización de los parámetros del dispositivo conectado.
Para acceder a la programación de un dispositivo es suficiente realizar la conexión a través de un cableado específico y apretar una tecla cualquiera en el teclado del programador.
El programador E.C.S. Programmer se alimenta a través de la conexión al sistema cashless o al periférico y, por lo tanto, no necesita baterías.
En esta entrada, aprenderemos a interpretar las señales que envía y recibe para poder construirnos nuestro propio programador. 
Empezaremos identificando las teclas del programador:



  1. (ENT) Tecla de acceso a la opción del menú correspondiente o confirmación.
  1. (>> ) Tecla de desplazamiento hacia adelante entre las opciones del  menú y submenús.
  1. (DEL) Tecla de cancelación datos introducidos.
  1. (<< ) Tecla de desplazamiento hacia atrás entre las opciones del  menú y submenús.
  1. (ESC) Tecla para regresar al nivel anterior del menú o para salir de la opción menú sin guardar los cambios.

Cada vez que pulsamos una tecla, el programador manda una secuencia hacia el dispositivo a programar, este la interpreta y devuelve otra secuencia de respuesta que se visualiza en el display del programador. Ahí es donde con nuestro versátil cable RS232-TTL escuchamos la conversación que mantienen ambos dispositivos:

En esta tabla podemos observar la secuencia que envía el programador hacia el dispositivo programable. En este momento ya estamos en disposición de enviar pulsaciones y ser capaces de movernos por los diferentes menús. Es el momento de conectar nuestro cable RS232 a un sistema de pago.




Nos remitimos a la entrada de CABLE USB / RS232 TTL donde debemos tener en cuenta que para que se establezca la comunicación debemos de cruzar los cables: conectar TX de conector con el Cable RX y el RX del conector con el TX de nuestro cable, GND es común y... MUY IMPORTANTE NO CONECTAR EL CABLE ROJO de nuestro cable, ya que podríamos dañar irreversiblemente nuestro ordenador.

Probaremos ahora con un terminal serie, en nuestro caso usaremos PuTTY para windows, donde configuramos el puerto de nuestro cable a 9600 bps, probamos a enviar secuencias anteriormente descritas y podremos observar como recibimos respuestas en nuestro terminal. Con las teclas de movimiento Left/Right, con Enter y con Escape tendremos bastante para navegar por los menús y modificar los parámetros básicos. Para cambiar precios y códigos de gestor con el teclado numérico nos faltaría calcular el Checksum, que indicamos como se calcula.

Anteriormente mostramos una tabla con las secuencias que se envían al dispositivo de pago y donde sacamos una muestra:

Si pulsamos ENTER se envía <00002N>40, si pulsamos 2 se envía   <000022>24 y si pulsamos 9 se envía <000029>2B

Cadena: 00002N   CHK: 40
Cadena: 
000022    CHK; 24
Cadena: 
000029    CHK; 2B

Si descomponemos la cadenas y sumamos sus códigos Ascci obtendremos:

        0 --- 48         0 --- 48         0 --- 48
        0 --- 48         0 --- 48         0 --- 48
        0 --- 48         0 --- 48         0 --- 48
        0 --- 48         0 --- 48         0 --- 48
        2 --- 50         2 --- 50         2 --- 50
        N --- 78         2 --- 50         9 --- 57

suma:          320              292              299
HEX:      140              124              12B

Para calcular el checksum entonces, nos vale con descomponer sus caracteres en el equivalente ascci, sumarlos, pasar ese número a hexadecimal y coger el byte de menos peso (LSB)

Una vez hemos visto como se calcula el checsum de las cadenas nos queda por aclarar que para modificar precios y resto de cadenas numéricas se deben generar de la siguiente forma

000032    PRECIO                HEXADECIMAL
000034    GESTOR 4 DÍGITOS      DECIMAL
000034    PREDIFINIDO         DECIMAL
000038    GESTOR 8 DÍGITOS      DECIMAL

Dicho esto, nos vamos directamente a algunos ejemplos con los precios:

PRECIO 1€ (100 CENTIMOS)
La cantidad debe introducirse en Hexadecimal 100 Dec = 0064 Hex
Si descomponemos 0000320064 Obtendremos una suma de 495=1EF
 donde la secuencia a enviar nos quedaría:
<0000320064>EF

PRECIO 0.50€ (50 CENTIMOS)
50Dec = 0032 Hex
Si descomponemos 0000320032 Obtendremos una suma de 490=1EA donde la secuencia a enviar nos quedaría:
<0000320032>EA

Ahora unos ejempos con los códigos de gestor y resto de números:

CÓDIGO GESTOR DE 4 DÍGITOS 
Para un código de gestor 9999 si descoponemos 
0000349999 Obtendremos una suma de 523=20B donde la secuencia a enviar nos quedaría:
<0000349999>0B

CÓDIGO GESTOR DE 8 DÍGITOS
Para un código de gestor 11112222 si descomponemos 00003811112222 Obtendremos una suma de 695=2B7 donde la secuencia a enviar nos quedaría:
<00003811112222>B7

Aunque con los sitemas modernos de pagos movil por internet estos sistemas estén obsoletos, aún quedamos algunos que en algún momento necesitemos de esta herramienta de programación. Como digo, esto me ha funcionado y me sigue funcionando para configurar mis dispositivos aunque sea de una manera un poco básica y rudimentaria.

En otro momento continuaremos la entrada, donde mostraremos como desarrollar una pequeña aplicación para windows y Android que nos permitirará configurar nuestros dispositivos.




 

 

 

 
 

 




Comentarios

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *