Upload
clrduno
View
3.362
Download
15
Embed Size (px)
Citation preview
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
1
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”
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
2
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).
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
3
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
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
4
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 ()”
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
5
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)”
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
6
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.
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
7
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)”
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
8
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)”
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
9
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.
Respuesta desde la impresora fiscal
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
Posicionamiento del Carácter(es) en la línea de Comando
1 2 3 4 5
Estructura del Comando STX ‘S’ ‘1’ ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 � 89 90 91
Estructura del Comando STX Data ETX LRC
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
10
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.
Respuesta desde la impresora fiscal
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.
Respuesta desde la impresora fiscal
Posicionamiento del Carácter(es) en la línea de Comando
1 2 3 4 5
Estructura del Comando STX ‘S’ ‘2’ ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 � 70 71 72
Estructura del Comando STX Data ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 3 4 5
Estructura del Comando STX ‘S’ ‘3’ ETX LRC
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
11
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.
Respuesta desde la impresora fiscal
Detalle de Data de los 162 bytes de Respuesta de la impresora:
Posicionamiento del Carácter(es) en la línea de Comando
1 2 � 58 59 60
Estructura del Comando STX Data ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 3 4 5
Estructura del Comando STX ‘S’ ‘4’ ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 � 163 164 165
Estructura del Comando STX Data ETX LRC
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
12
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.
Respuesta desde la impresora fiscal
Detalle de Data de los 41 bytes de Respuesta de la impresora:
Posicionamiento del Carácter(es) en la línea de Comando
1 2 3 4 5
Estructura del Comando STX ‘S’ ‘5’ ETX LRC
Posicionamiento del Carácter(es) en la línea de Comando
1 2 � 42 43 44
Estructura del Comando STX Data ETX LRC
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
13
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
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
14
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
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
15
3.- ANEXOS
Anexo 1
“Información del Status de la Impresora Fiscal”
STATUS
Retorno
(Hex)
Retorno
(Decimal) Comentario
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
8 8 En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
Documentos Fiscales
9 9 En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
Documentos No Fiscales
0A 10 En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Espera
0B 11 En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
Documentos Fiscales
0C 12 En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
Documentos No Fiscales
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
16
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
Librería de Enlace Dinámico “TFHKAIF.DLL”
Rev 1.6 23/12/08
17
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.