Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algor IDModelos
Algor IDModelos
NO
Corregir por
Software
StatusRequest
SI
// Posibles
SI
// problemas
// de hardware
¿ Error ¿ port o baudios
comunicaciones ? incorrectos ?
NO
¿ Impresora Fiscal NO
Inicializada ?
[ Caso: Modo Entrenamiento ]
SI
GetInitData
¿ Comando
Inválido ?
SI
[ 950 / 614 ]
Grupo HASAR
-- Impresoras Fiscales HASAR -- 2
Cía. HASAR saic
NO
FeedJournal
¿ Comando [ 614 ]
Inválido
NO ?
[ 950 ]
GetPrinterVersion
SI
Grupo HASAR
-- Impresoras Fiscales HASAR -- 3
Cía. HASAR saic
SetCustomerData
( Monotributista )
SI
¿ Comando Inválido ? [ 950 / 614 / 262 ]
NO
NO
¿ Comando Inválido ? [ 950 ]
[ 951 / 615 ]
SI
[ 614 / 262 ]
WriteDisplay
WriteDisplay
¿ Comando Inválido ?
NO SI
¿ Comando Inválido ?
[ 615 ] [ 951 ]
SI NO
Grupo HASAR
-- Impresoras Fiscales HASAR -- 4
Cía. HASAR saic
[ 262 ] [ 614 ]
Este algoritmo tiene sentido en aplicaciones que deban soportar más de un modelo de impre-
sora fiscal, y el esqueleto puede ser simplificado según la cantidad de modelos a soportar, y
es casi seguro que deberá robustecerse ya que se asumen condiciones ideales siempre ( por
ejemplo, que nunca se pierden las comunicaciones, que en las respuestas a los comandos se reportan solamen-
te los errores que en el algoritmo se atrapan, etc., etc. ).
Por otro lado, este algoritmo tampoco contempla el uso de driver o librería alguna, ni supone
la implementación directa del protocolo fiscal por parte del programador. Por ello no se inclu-
ye el tratamiento de errores que provengan de los elementos mencionados.
El algoritmo es libre de todo contexto en lo que a lenguaje de programación y plataforma a uti
lizar se refiere, y se ha tratado de exponerlo de la forma más clara y sencilla posible para que
sea comprendido. A partir de su entendimiento, puede ser codificado en cualquier lenguaje pa
ra aplicaciones que corran sobre DOS, Windows, Unix y Linux.
Para quienes trabajen en otras plataformas y no puedan utilizar los drivers o librerías provis-
tos por Cía. HASAR saic, siempre existe la posibilidad de desarrollar su propio driver, imple-
mentando el protocolo fiscal ( hay un manual a disposición del programador para tales casos ), pudiendo
luego implementar este algoritmo sin inconvenientes en su aplicación.
Para quienes desarrollan sus aplicaciones en lenguajes visuales y recurren al uso del compo-
nente OCX, deberán consultar los manuales para ver que métodos del objeto generan los co-
mandos que en este algoritmo se mencionan y que eventos atrapar para controlar los errores
de interés para la comprensión de este algoritmo.
Grupo HASAR
-- Impresoras Fiscales HASAR -- 5
Cía. HASAR saic
Cuando se menciona que los comandos no se han elegido arbritariamente, no sólo se hace re
ferencia al hecho de que algunos comandos aceptados por determinados modelos no lo son
por otros, sino que además se ha tenido en cuenta que los comandos a utilizar no provoquen
impresión alguna ( la implementación de este algoritmo podría ser parte del arranque de la aplicación – por e
jemplo, para verificar si la impresora fiscal inicializada no ha sido cambiada, etc., etc. -- ) para evitar el gasto
innecesario de insumos para el usuario; y que además no afecten los acumulados de una im-
presora fiscal que podría estar inicializada.
Notar que a excepción del pedido de status, para el resto de los comandos involucrados en el
algoritmo no se chequea el estado de las comunicaciones, aunque la aplicación si debería e-
fectuar dicho control por cada comando ( aquí no se hace para facilitar la comprensión del tema que nos
ocupa ).
Notar también que no se atrapan, ni se tratan, otros posibles errores que pudieran reportarse
en los status de cada respuesta a un comando enviado, simplemente para facilitar la compren
sión de este algoritmo. Sin embargo, la aplicación no puede desentenderse de manejar cual-
quier posible error que pudiera reportarse en la respuesta a un comando enviado.
Grupo HASAR
-- Impresoras Fiscales HASAR -- 6
Cía. HASAR saic
Si la impresora fiscal se encuentra inicializada se siguen los pasos que faltan en la FIG. 1.
Si la impresora fiscal se encuentra en modo entrenamiento se siguen los pasos indicados en
la FIG.2.
Tener presente que de fábrica, todas las impresoras fiscales salen configuradas a una veloci-
dad de 9600 baudios.
Tambien recordar que a no todos los modelos de impresoras fiscales se les puede configurar
la velocidad del puerto serie. Consultar el manual de comandos de cada modelo al respecto.
Si el puerto utilizado y los baudios seteados son los correctos, entonces puede suceder que:
- Los drivers en uso ( si así fuese ) están mal cargados, o configurados de manera incorrecta.
- El problema sea de hardware, ya sea en la PC, el cable utilizado o en la propia impresora fis
cal.
Determinado ya que la impresora fiscal se encuentra inicializada ( recordar que estamos en el caso
de la FIG. 1 ) se siguen los pasos que faltan para poder identificar el modelo conectado al puer-
to serie de la PC.
Para ello se recurre al uso del comando que nos permite obtener los datos que se grabaron
en la memoria fiscal cuando la impresora fiscal fue inicializada ( GetInitData ).
El cuarto campo de la respuesta a este comando contiene el número de registro con que se i-
nicializó la impresora fiscal. El número de registro está compuesto por 3 letras y 7 números.
Las 3 letras de comienzo del número de registro permiten individualizar el modelo de impreso
ra fiscal, según la Tabla 1:
En el caso de la FIG. 1 vimos que con un pedido de status ( StatusRequest ) se puede determi-
nar que la impresora fiscal se encuentra en modo entrenamiento.
El substring que reemplaza a los puntos suspensivos en el string anterior, permite identificar a
la impresora fiscal, y solo puede ser alguno de los siguientes:
Para deterrminar cual es el modelo de impresora fiscal, dentro del último conjunto de posibili-
dades, se recurre al comando SetCustomerData ( setear datos de cliente ), pero con una
particu- laridad: Monotributo como responsabilidad frente a IVA del Cliente.
Si SetCustomerData es rechazado por “Comando Inválido” la impresora fiscal puede ser al-
guna de la siguientes, y debido a que ninguna de ellas emite facturas o tickets-factura:
Grupo HASAR
-- Impresoras Fiscales HASAR -- 8
Cía. HASAR saic
P-951F o P-615F
Hasta aquí nos quedan dos conjuntos sobre los cuales trabajar, para determinar cual puede
ser el modelo de impresora fiscal -- en modo entrenamiento -- que se encuentra conectada a la
PC.
Siguiendo con el primer conjunto, luego de identificados los candidatos posibles se envía a la
impresora fiscal el comando FeedJournal ( avance de papel diario ) que solo es aceptado por la
impresora fiscal P-950F.
Si FeedJournal es rechazado por “Comando Inválido” entonces se trata de una PT-262F o
de la P-614F.
Para distinguir una de otra se recurre al envío del comando WriteDisplay ( escribir en display de
cliente -- torreta opcional solo disponible en los modelo P-614F y P-615F-- ).
Si WriteDisplay es rechazado por “Comando Inválido” se trata del modelo PT-262F. Caso
contrario se trata de la P-614F.
No se requiere tener instalado el display de cliente en la P-614F para hacer uso del comando
WriteDisplay. En su ausencia, la impresora fiscal acepta el comando si el dispositivo forma
parte de los opcionales del equipo.
Al emplear el comando WriteDisplay asegurarse que todos los datos indicados en él son cor-
rectos, para no falsear los resultados del testeo.
Siguiendo ahora con el segundo conjunto, luego de identificados los candidatos posibles se
envía a la impresora fiscal el comando WriteDisplay ( escribir en display de cliente ) que solo es a
ceptado por la impresora fiscal P-950F.
Si WriteDisplay es rechazado por “Comando Inválido” se trata del modelo P-951F. Caso
contrario se trata de la P-615F.
Grupo HASAR