Sie sind auf Seite 1von 17

Librería de Enlace Dinámico Rev 1.

6
“TFHKAIF.DLL” 23/12/08

INDICE

1.- Declaración de la DLL 3

2.- Funciones de la DLL 4


2.1- BOOL OpenFpctrl (LPCSTR lpPortName) 4
2.2- BOOL CloseFpctrl ( ) 4
2.3- BOOL CheckFprinter ( ) 5
2.4- BOOL ReadFpStatus (LPINT status, LPINT error) 5
2.5- BOOL SendCmd (LPINT status, LPINT error, LPCSTR cmd) 6
2.6- INT SendNCmd (LPINT status, LPINT error, LPCSTR cmd) 6
2.7- INT SendFileCmd (LPINT status, LPINT error, LPCSTR file) 7
2.8- BOOL UploadReportCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file) 7
2.9- BOOL UploadStatusCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file) 8
Lectura del Estado 1 (S1) 9
Lectura del Estado 2 (S2) 10
Lectura del Estado 3 (S3) 10
Lectura del Estado 4 (S4) 11
Lectura del Estado 5 (S5) 12
Lectura del Reporte X 13
Lectura del Reporte Z 14

3.- Anexos 15
Anexo 1 15
Anexo 2 16
Anexo 3 17
Anexo 4 19

Nota 1: Instale el archivo DLL en el “System32” ó en la carpeta donde se ejecutara el Software.

Nota 2: La Impresora ya viene predeterminada inicialmente en Modo Entrenamiento

Nota 3: Para Ejemplificar el uso de la DLL se emplea el programa “The Factory HKA. Demo Informativo”

1
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Figura 1. “The Factory HKA. Demo Informativo”

Selección de Puertos: Seleccione el puerto de comunicación con el cual va trabajar.


Envío de Comandos por Archivo: Estructura creada para la búsqueda y selección de archivos
(*.dat) y ejecución de los comandos internos en los mismos.
Datos: Generación de eventos en el visor, relacionadas a la lectura de la impresora.
Reportes: Diseño de reportes X y Z.
Aplicación: Diseño de aplicaciones de modo ejemplo para la realización en modo prueba de una
factura y de la lectura de la memoria Fiscal.
Ventana de Eventos: Visor de la ejecución de comandos y datos.
Lectura de Memoria Fiscal y Memoria de Auditoria: Imprime y Carga a la Ventana de Eventos,
los reportes Z realizados tanto por Fecha como por Numero de Z y los datos almacenados en la
memoria de auditoria (aplica solo para la SRP-350).

2
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

1.- DECLARACIÓN DE LA DLL (TFHKAIF.DLL)

Para: y


BOOL _stdcall OpenFpctrl(LPCSTR lpPortName);


BOOL _stdcall CloseFpctrl();
BOOL _stdcall CheckFprinter();
BOOL _stdcall ReadFpStatus(LPINT status, LPINT error);
BOOL _stdcall SendCmd(LPINT status, LPINT error , LPCSTR cmd );
int _stdcall SendNCmd(LPINT status, LPINT error , LPCSTR buffer );
int _stdcall SendFileCmd(LPINT status, LPINT error, LPCSTR file );
BOOL _stdcall UploadReportCmd(LPINT status, LPINT error, LPCSTR cmd, LPCSTR file );

Para: Visual Basic

Declare Function OpenFpctrl Lib “TFHKAIF.DLL” (ByVal lpPortName As String) As Long


Declare Function CloseFpctrl Lib “ TFHKAIF.DLL” () As Long
Declare Function CheckFprinter Lib “ TFHKAIF.DLL” () As Long
Declare Function ReadFpStatus Lib “ TFHKAIF.DLL” (status As Long, error As Long) As Long
Declare Function SendCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal cmd As String) As Long
Declare Function SendNCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal buffer As String) As Long
Declare Function SendFileCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal file As String) As Long
Declare Function UploadReportCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal cmd As String,
ByVal file As String) As Long

3
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

2. – FUNCIONES DE LA DLL

2.1.- BOOL OpenFpctrl (LPCSTR lpPortName)

Nombre Puerto COM (Ej. “COM1” o “COM2”)


Función Apertura del Puerto Serial “COM”

Retorno Puerto Abierto = True


Falla de Apertura = False
Esta función debe ser llamada antes que otras funciones

Figura 2. Extracto de Código para el funcionamiento de la función “OpenFpctrl (LPCSTR lpPortName)”

2.2.- BOOL CloseFpctrl()

Nombre Puerto COM (Ej. “COM1” o “COM2”)


Función Cierre del Puerto Serial “COM”

Figura 3. Extracto de Código para el funcionamiento de la función “CloseFpctrl ()”

4
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

2.3.- BOOL CheckFprinter ()

Función Verifica si la Impresora esta Conectada

Retorno Si esta Conectada = True


Si no esta Conectada = False

Figura 4. Extracto de Código para el funcionamiento de la función “CheckFprinter ()”

2.4.- BOOL ReadFpStatus (LPINT status, LPINT error)

Función Lectura Referente a la Información del Status & Error de la Impresora Fiscal

Retorno Stand-by = True


Error = False
Status: Pointer de Status (Ver Anexo 1)
Error: Pointer de Error (Ver Anexo 2)

Figura 5. Extracto de Código para el funcionamiento de la función “ReadFpStatus (LPINT status, LPINT error)”

5
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

2.5.- BOOL SendCmd (LPINT status, LPINT error, LPCSTR cmd)

Función Envía una Línea de Comando a la Impresora Fiscal

Retorno Stand-by = True


Error = False
Ejemplo de uso: (Indicador #1 comando) “500001”+{LF} LF=0Ah
Ver Anexo 3

Figura 6. Extracto de Código para el funcionamiento de la función


“SendCmd (LPINT status, LPINT error, LPCSTR cmd)”

2.6.- Int SendNCmd (LPINT status, LPINT error, LPCSTR cmd)

Función Envía n Líneas de Comandos a la Impresora Fiscal


Retorno Numero de Comando Valido
Ejemplo de n comandos al buffer
-CMD#- -Comentario-
1: “T1”+{LF} (Inicio en Modo Entrenamiento)
2: “500001”+{LF} ( Indicador #1)
3: “O”+{LF}+{NULL or EOF} (Drawer Open)
Cuando Recibe Error desde la Impresora Fiscal, envía un comando para detener el proceso. En este
caso esta función retorna un numero de comandos e información referente al status.

6
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

2.7.- Int SendFileCmd (LPINT status, LPINT error, LPCSTR file)

Función Envía una serie de comandos en cadena contenidos en un archivo a la impresora fiscal
Retorno Numero de Comando Valido en Stand by
File = Nombre o ruta donde se ubica el archivo a enviar

Figura 8. Extracto de Código para el funcionamiento de la función


“SendFileCmd (LPINT status, LPINT error, LPCSTR file)”

2.8.- BOOL UploadReportCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file)

Función Carga un reporte de datos y a los almacena en una archivo (ASCII)


Retorno Numero de Comando Valido en Stand by
In caso de existir algún archivo de dato, previo al archivo de dato generado este será actualizado

Figura 9. Extracto de Código para el funcionamiento de la función “UploadReportCmd (LPINT status, LPINT
error, LPCSTR cmd, LPCSTR file)”

7
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

2.9.- BOOL UploadStatusCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file)
Función Carga los Status de la impresora (S1, S2, S3)
Retorno Numero de Comando Valido en Stand by

Figura 9. Extracto de Código para el funcionamiento de la función “UploadStatusCmd (LPINT status, LPINT
error, LPCSTR cmd, LPCSTR file)”

8
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Comando Para Leer el Estado de la Impresora

Nota 1: El separador (0Ah) aplica cuando se realiza el manejo de este comando a través del protocolo
directo, sin embargo para el separador (0Ah) no aparece cuando se emplea la de forma directa la (dll).

Nota 2: A pesar de que las tramas de respuestas de los comandos de estado contienen STX, ETX y LRC,
al utilizarse la dll son eliminadas y sólo se entrega a la aplicación lo que es denominado como Data.

Lectura del Estado 1 (S1)

Este comando permite leer desde el host (PC) el estado de la impresora fiscal, referente a parámetros de la
impresora como serial, RIF y datos de factura. Es posible ejecutar este comando en cualquier condición.

Posicionamiento del Carácter(es) en la


1 2 3 4 5
línea de Comando
Estructura del Comando STX ‘S’ ‘1’ ETX LRC

Respuesta desde la impresora fiscal

Posicionamiento del Carácter(es) en la


línea de Comando
1 2  89 90 91
Estructura del Comando STX Data ETX LRC

Detalle de Data de los 88 bytes de Respuesta de la impresora:

Desde Hasta Long Clase ITEM


1 2 2 ASCII Comando S1
3 4 2 ASCII Numero de cajero asignado
5 21 17 ASCII Total de ventas diarias(14 bytes)
22 29 8 ASCII Número última factura
30 34 5 ASCII Cantidad de facturas en el día
35 42 8 ASCII Número del documento no fiscal
43 47 5 ASCII Cantidad de documentos no fiscales
48 51 4 ASCII Contador de cierres diarios
52 55 4 ASCII Contador de reportes de auditoria
56 66 11 ASCII RIF
67 76 10 ASCII Número de registro del equipo
77 82 6 ASCII Hora actual en la impresora
83 88 6 ASCII Fecha actual en la impresora

9
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Lectura del Estado 2 (S2)

Este comando permite leer desde el host (PC) el estado de la factura en curso en transacción. Si es ejecutado
este comando sin una factura en curso, los valores obtenidos serán cero.

Posicionamiento del Carácter(es) en la


1 2 3 4 5
línea de Comando
Estructura del Comando STX ‘S’ ‘2’ ETX LRC

Respuesta desde la impresora fiscal

Posicionamiento del Carácter(es) en la


línea de Comando
1 2  70 71 72
Estructura del Comando STX Data ETX LRC

Detalle de Data de los 69 bytes de Respuesta de la impresora:

Desde Hasta Long Clase ITEM


1 2 2 ASCII Comando S2
3 3 1 20h (carácter blanco)
4 16 13 ASCII Subtotal de Bases Imponibles (13 bytes)
17 17 1 20h (carácter espacio)
18 30 13 ASCII Subtotal de IVA
31 31 1 20h (carácter espacio)
32 50 19 ASCII Data Dummy
51 51 1 20h (carácter espacio)
52 64 13 ASCII Monto por Pagar
65 68 4 ASCII Número de Pagos Realizados
69 69 1 ASCII Condición

Lectura del Estado 3 (S3)

Este comando permite leer desde el host (PC) el estado de la impresora fiscal, referentes a las tasas de
impuesto y flag de estado. Es posible ejecutar este comando en cualquier condición.

Posicionamiento del Carácter(es) en la


1 2 3 4 5
línea de Comando
Estructura del Comando STX ‘S’ ‘3’ ETX LRC
Respuesta desde la impresora fiscal

10
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Posicionamiento del Carácter(es) en la


línea de Comando
1 2  58 59 60
Estructura del Comando STX Data ETX LRC

Detalle de Data de los 57 bytes de Respuesta de la impresora:

Desde Hasta SIZE Clase ITEM


1 2 2 ASCII Comando
3 3 1 ASCII Tipo de tasa 1
4 7 4 ASCII Valor Tasa 1
8 8 1 ASCII Tipo de tasa 2
9 12 4 ASCII Valor Tasa 2
13 13 1 ASCII Tipo de tasa 3
14 17 4 ASCII Valor Tasa 3
18 57 40 ASCII System Flags 1-20 (Cada Flag tiene 2 caracteres)

Lectura del Estado 4 (S4)

Este comando permite leer desde el host (PC) el estado de la impresora fiscal, referentes a los Medios de Pago.
Es posible ejecutar este comando en cualquier condición.

Posicionamiento del Carácter(es) en la


1 2 3 4 5
línea de Comando
Estructura del Comando STX ‘S’ ‘4’ ETX LRC

Respuesta desde la impresora fiscal

Posicionamiento del Carácter(es) en la


línea de Comando
1 2  163 164 165
Estructura del Comando STX Data ETX LRC

Detalle de Data de los 162 bytes de Respuesta de la impresora:

11
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Desde Hasta Long Clase ITEM


1 2 2 ASCII Comando S4
3 12 10 ASCII Medio de Pago 1
13 22 10 ASCII Medio de Pago 2
23 32 10 ASCII Medio de Pago 3
33 42 10 ASCII Medio de Pago 4
43 52 10 ASCII Medio de Pago 5
53 62 10 ASCII Medio de Pago 6
63 72 10 ASCII Medio de Pago 7
73 82 10 ASCII Medio de Pago 8
83 92 10 ASCII Medio de Pago 9
93 102 10 ASCII Medio de Pago 10
103 112 10 ASCII Medio de Pago 11
113 122 10 ASCII Medio de Pago 12
123 132 10 ASCII Medio de Pago 13
133 142 10 ASCII Medio de Pago 14
143 152 10 ASCII Medio de Pago 15
153 162 10 ASCII Medio de Pago 16

Lectura del Estado 5 (S5)

Nota: Comando exclusivo para la impresora Samsung Bixolon Modelo SRP-350

Este comando permite leer desde el host (PC) el estado de la impresora fiscal, referentes al estado de la
memoria de Auditoria. Es posible ejecutar este comando en cualquier condición.

Posicionamiento del Carácter(es) en la


1 2 3 4 5
línea de Comando
Estructura del Comando STX ‘S’ ‘5’ ETX LRC

Respuesta desde la impresora fiscal

Posicionamiento del Carácter(es) en la


línea de Comando
1 2  42 43 44
Estructura del Comando STX Data ETX LRC
Detalle de Data de los 41 bytes de Respuesta de la impresora:

12
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Desde Hasta SIZE Clase ITEM


1 2 2 ASCII "S5"
3 13 11 ASCII RIF
14 23 10 ASCII Serial
24 27 4 ASCII # de la memoria de auditoria
28 31 4 ASCII capacidad de la memoria en MB
32 35 4 ASCII espacio libre de la memoria en MB
36 41 6 ASCII numero de documentos registrados

Lectura del Reporte X

Este comando (X) permite leer desde el host (PC) el estado de la impresora fiscal, referente al reporte X. Es
posible ejecutar este comando en cualquier condición. Este comando debe estar acompañado de otros
elementos como modo y tipo para poder ser enviados a la impresora, esto es descrito en el Manual de
Protocolo y Comandos en la sección de Reportes de Cierre.

Respuesta desde la impresora fiscal

Desde Hasta Long Clase ITEM


1 4 4 ASCII Numero del Ultimo Reporte X
5 10 6 ASCII Fecha de Reporte X
11 18 8 ASCII Numero de la Ultima Factura
19 24 6 ASCII Fecha de la Ultima Factura
25 28 4 ASCII Hora de la Ultima Factura
29 38 10 ASCII Ventas Exento
39 48 10 ASCII Ventas Tasa General (Tasa 1)
49 58 10 ASCII Impuesto Tasa General (Tasa 1)
59 68 10 ASCII Ventas Tasa Reducida (Tasa 2)
69 78 10 ASCII Impuesto Tasa Reducida (Tasa 2)
79 88 10 ASCII Ventas Tasa Adicional (Tasa 3)
89 98 10 ASCII Impuesto Tasa Adicional (Tasa 3)
99 108 10 ASCII Devoluciones Exento
109 118 10 ASCII Devolución Tasa General
119 128 10 ASCII Devolución Impuesto Tasa General
129 138 10 ASCII Devolución Tasa Reducida
139 148 10 ASCII Devolución Impuesto Tasa Reducida
149 158 10 ASCII Devolución Tasa Adicional
159 168 10 ASCII Devolución Impuesto Tasa Adicional
169 176 8 ASCII Numero de ultima Nota de Crédito

13
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Lectura del Reporte Z

Este comando (Z) permite leer desde el host (PC) el estado de la impresora fiscal, referente al reporte Z. Es
posible ejecutar este comando en cualquier condición. Este comando debe estar acompañado de otros
elementos como modo y tipo para poder ser enviados a la impresora, esto es descrito en el Manual de
Protocolo y Comandos en la sección de Reportes de Cierre

Respuesta desde la impresora fiscal

Desde Hasta Long Clase ITEM


1 4 4 ASCII Numero del Ultimo Reporte Z
5 10 6 ASCII Fecha de Reporte Z
11 18 8 ASCII Numero de la Ultima Factura
19 24 6 ASCII Fecha de la Ultima Factura
25 28 4 ASCII Hora de la Ultima Factura
29 38 10 ASCII Ventas Exento
39 48 10 ASCII Ventas Tasa General (Tasa 1)
49 58 10 ASCII Impuesto Tasa General (Tasa 1)
59 68 10 ASCII Ventas Tasa Reducida (Tasa 2)
69 78 10 ASCII Impuesto Tasa Reducida (Tasa 2)
79 88 10 ASCII Ventas Tasa Adicional (Tasa 3)
89 98 10 ASCII Impuesto Tasa Adicional (Tasa 3)
99 108 10 ASCII Devoluciones Exento
109 118 10 ASCII Devolución Tasa General
119 128 10 ASCII Devolución Impuesto Tasa General
129 138 10 ASCII Devolución Tasa Reducida
139 148 10 ASCII Devolución Impuesto Tasa Reducida
149 158 10 ASCII Devolución Tasa Adicional
159 168 10 ASCII Devolución Impuesto Tasa Adicional
169 176 8 ASCII Numero de ultima Nota de Crédito

14
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

3.- ANEXOS

Anexo 1

“Información del Status de la Impresora Fiscal”

STATUS
Retorno Retorno
Comentario
(Hex) (Decimal)
0 0 Status Desconocido
1 1 En Modo Prueba y en Espera
2 2 En Modo Prueba y Emisión de Documentos Fiscales
3 3 En Modo Prueba y Emisión de Documentos No Fiscales
4 4 En Modo Fiscal y en Espera
5 5 En Modo Fiscal y Emisión de Documentos Fiscales
6 6 En Modo Fiscal y Emisión de Documentos No Fiscales
7 7 En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Espera
En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
8 8
Documentos Fiscales
En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
9 9
Documentos No Fiscales
0A 10 En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Espera
En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
0B 11
Documentos Fiscales
En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
0C 12
Documentos No Fiscales

15
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Anexo 2

“Información del Error de la Impresora Fiscal”

Error
Retorno (Hex) Retorno (Decimal) Comentarios Valido / Invalido
00 0 No hay Error VALIDO
01 1 Fin en la Entrega de papel VALIDO
02 2 Error de índole Mecánico en la entrega de Papel VALIDO
03 3 Fin en la Entrega de papel y Error Mecánico VALIDO
50 80 Comando Invalido / Valor Invalido INVALIDO
54 84 Tasa Invalida INVALIDO
58 88 No hay Asignadas Directivas INVALIDO
5C 92 Comando Invalido INVALIDO
60 96 Error Fiscal INVALIDO
64 100 Error de la Memoria Fiscal INVALIDO
6C 108 Memoria Fiscal llena INVALIDO
70 112 Buffer Completo INVALIDO
80 128 Error en la Comunicación INVALIDO
89 137 No Hay Respuesta INVALIDO
90 144 Error LRC INVALIDO
91 145 Error Interno API INVALIDO
99 153 Error en la Apertura del Archivo INVALIDO

16
Librería de Enlace Dinámico Rev 1.6
“TFHKAIF.DLL” 23/12/08

Anexo 3

“Historial de Revisiones”

Revisión A (15 de septiembre de 2008) sobre la versión 1.3

• En Lectura de Estado S2, corrección del contenido de la tabla de Data.

• En Comando Para Leer Estado de la Impresora, fue añadida Nota 2.

Revisión B (8 de octubre de 2008) sobre la versión 1.4

• En Lectura de Reporte X, modificación en la descripción.

• En Lectura de Reporte Z, modificación en la descripción.

Revisión C (23 de diciembre de 2008) sobre la versión 1.5

• En Anexo 2, modificación en la descripción de error de Buffer Completo.

• En Anexo 3 (Guía de Referencia de Comandos), fue eliminada completamente del documento.

17

Das könnte Ihnen auch gefallen