Conceptos de la Arq y Desarrollo de FIscalberry - paxapos/fiscalberry GitHub Wiki

Estructura del proyecto

Carpetas, archivos y el significado de su contenido

Comandos: En esta carpeta se encuentran definidos todos los comandos disponibles para las marcas de las impresoras compatibles. En estos archivos se habla el idioma de la impresora. En este archivo es necesario indicar que traductor utilizará (ya veremos mas adelante los traductores)

por ejemplo para un comando Hasar o Epson hay que indicar que utilice el traductor "TraductorFiscal"

traductorModule="Traductores.TraductorFiscal"

Drivers: Aqui están los conectores al hardware. Entonces aca dependerá de la marca de la impresora, el tipo de conector (serial, ethernet) y el output del comando. O sea, una vez generado el comando, ¿a donde hay que mandarlo?, y ¿que respuesta debo esperar? bueno, para ello están los drivers.

Traductores: En esta carpeta esta la logica para convertir un JSON a un Comando especifico. Se encargan de darle "formato" y armar el JSON para ir conviertiendo a lenguaje maquina mediante el Comando. Actualmente hay 2 tipos de traductores: para las impresoras fiscales, y otro para impresoras de Comandas. El traductor tiene una relación directa con el formato o diseño de como saldrán las impresiones. En el caso de una impresora fiscal, no hay mucho diseño que se pueda retocar, dado que la fiscal no lo permite. Pero en el caso de las impresoras de comandas, probablemente sea necesario retocar este archivo o generar nuevos Traductores que permitan a usted modificar el diseño de la impresión.

server.py: este archivo es el encargado de instanciar un servidor de websockets (usa tornado), se conecta con las impresoras configuradas en el archivo config.ini y procesa cada JSON que llega mediante el archivo TraductoresHandler.py para utilizar el archivo Traductor correcto.

en el archivo config.ini se puede modificar el puerto de escucha del servidor que, por defecto, usa el puerto 12000

fiscalberry-server-rc: Este hace que el server.py se convierta en un servicio de linux para ejecutar en background. Antes de instalarlo es necesario modificarle la linea donde se especifica el path en donde esta instalado el proyecto: DIR=/insertPATHHERE deberá ingresar el path correcto ( en el ultimo "/") EJ: DIR=/home/USER/fiscalberry

Ejemplo de instalación como servicio en Ubuntu:

sudo cp fiscalberry-server-rc  /etc/init.d/  
update-rc.d fiscalberry-server-rc defaults

listo, ya lo podemos detener o inistar usando

sudo service fiscalberry-server-rc stop
sudo service fiscalberry-server-rc start
sudo service fiscalberry-server-rc restart