Escolar Documentos
Profissional Documentos
Cultura Documentos
2013
Tabla de contenido
Captulo 1. Introduccin ...................................................................................................................... 4
Captulo 2. Definiciones ...................................................................................................................... 5
2.1.
2.2.
Funciones ............................................................................................................................ 5
2.3.
2.4.
2.5.
3.5.
Captulo 1. Introduccin
Este documento tiene como finalidad describir las funciones encapsuladas en la librera o
DLL de interfaz para la comunicacin con el controlador fiscal VMAX. La librera implementa la
capa de bajo nivel que consiste en el manejo del puerto serial y del protocolo de comunicacin del
controlador fiscal. Esta implementacin consiste en una serie de funciones con parmetros de
entrada y salida bajo un esquema de procesamiento multi-hilos.
De esta manera se garantiza rapidez y facilidad en la integracin con las aplicaciones de
punto de venta. La librera requiere de un sistema operativo Windows de 32 bits.
Captulo 2. Definiciones
2.1.Tipos de datos
Los tipos de datos utilizados en la librera son los siguientes:
Tipo de dato
BYTE
WORD
DWORD
Longitud
8 bits sin signo
16 bits sin signo
32 bits sin signo
Declaracin en C/C++
typedef unsigned char BYTE;
// 8-bit unsigned
// 32-bit unsigned
2.2.Funciones
Las funciones de la librera estn definidas de alguna de las siguientes maneras:
extern "C" DWORD WINAPI FAR PASCAL NombreFuncion( Parmetros )
extern "C" void WINAPI FAR PASCAL NombreFuncion( Parmetros )
2.3.Cdigos de respuesta
A continuacin se describen los cdigos de respuesta que retornan las funciones,
agrupados por tipo de funcin.
Retorno
Valor (HEX)
SUCCESS
0 (0x0000)
Descripcin
Operacin efectuada exitosamente.
1 (0x0001)
2 (0x0002)
3 (0x0003)
INVALID_COM
4 (0x0004)
INVALID_BAUD_RATE
5 (0x0005)
Envo de datos.
TIMEOUT_ERROR
SEND_ERROR
PRINTER_OFF_OR_DISCONNECTED
6 (0x0006)
7 (0x0007)
Time-out de comunicacin.
Error en envo de datos.
8 (0x0008)
9 (0x0009)
10 (0x000A)
ANSWER_INVALID
ANSWER_FIELD_INEXISTENT
FIELD_INVALID_TYPE
11 (0x000B)
12 (0x000C)
13 (0x000D)
14 (0x000E)
Error interno
INTERNAL_ERROR
1 (0x0001)
Formato binario
2 (0x0002)
Formato ASCII
4 (0x0004)
5 (0x0005)
6 (0x0006)
7 (0x0007)
8 (0x0008)
TYPE_INT
9 (0x0009)
TYPE_ULONG
10 (0x000A)
TYPE_LONG
11 (0x000B)
TYPE_STRING
12 (0x000C)
Valor (HEX)
Descripcin
1 (0x0001)
2 (0x0002)
3 (0x0003)
Descripcin
OpenSerialPort
CloseSerialPort
SendSerialMessage
ResendSerialMessage
3.1.1. OpenSerialPort
Efecta la apertura del puerto serial, iniciando de este modo la comunicacin entre el
PC y el controlador fiscal. Una llamada realizada con xito a esta funcin es obligatoria
para el correcto funcionamiento de la librera.
[Prototipo]
DWORD OpenSerialPort(WORD wCommNumber, DWORD dwBaudRate)
[Parmetros de Entrada]
wCommNumber
dwBaudRate
[Parmetros de Salida]
Ninguno
[Retorno]
SUCCESS
PORT_ALREADY_OPEN
PORT_IN_USE
INVALID_COM
INVALID_BAUD_RATE
INTERNAL_ERROR
3.1.2. CloseSerialPort
Efecta el cierre del puerto serial, cerrando de este modo la comunicacin entre el PC
y el controlador fiscal.
[Prototipo]
DWORD CloseSerialPort( void )
[Parmetros de Entrada]
Ninguno
[Parmetros de Salida]
Ninguno
[Retorno]
SUCCESS
PORT_NOT_OPEN
3.1.3. SendSerialMessage
INTERNAL_ERROR
PORT_NOT_OPEN
3.1.4. ResendSerialMessage
INTERNAL_ERROR
PORT_NOT_OPEN
Descripcin
AddMessageField
AddMessageFieldEx
PurgeMessage
3.2.1. AddMessageField
dwFieldLength
[Parmetros de Salida]
Ninguno
[Retorno]
SUCCESS
BUFFER_OVERFLOW
INVALID_PARAM
3.2.2. AddMessageFieldEx
[Parmetros de Entrada]
szField
dwLength
dwType
bSeparator
[Parmetros de Salida]
Ninguno
[Retorno]
SUCCESS
BUFFER_OVERFLOW
INVALID_PARAM
FIELD_INVALID
FIELD_INVALID_TYPE
3.2.3. PurgeMessage
Borra todos los datos del buffer de salida para que un nuevo mensaje sea
agregado al mismo.
[Prototipo]
void PurgeMessage( void )
[Parmetros de Entrada]
Ninguno
[Parmetros de Salida]
Ninguno
[Retorno]
Ninguno
Descripcin
GetMessageField
GetMessageFieldEx
GetFieldCounter
3.3.1. GetMessageField
Captura un campo especfico del buffer de respuesta del controlador fiscal. Todos
los datos retornados por esta funcin estn en formato binario.
[Prototipo]
DWORD GetMessageField ( BYTE * szField, DWORD * dwFieldLength, DWORD dwAnswerField )
[Parmetros de Entrada]
dwAnswerField
[Parmetros de Salida]
szField
dwFieldLength
[Retorno]
SUCCESS
ASWR_INVALID
ASWR_FIELD_INEXISTENT
FIELD_INVALID_TYPE
INVALID_PARAM
INTERNAL_ERROR
3.3.2. GetMessageFieldEx
[Parmetros de Entrada]
dwField
dwType
[Parmetros de Salida]
vField
dwLength
[Retorno]
SUCCESS
ASWR_INVALID
ASWR_FIELD_INEXISTENT
FIELD_INVALID_TYPE
INVALID_PARAM
INTERNAL_ERROR
3.3.3. GetFieldCounter
Esta funcin retorna un nmero total de campos recibidos del controlador fiscal.
[Prototipo]
DWORD GetFieldCounter( void )
[Parmetros de Entrada]
Ninguno
[Parmetros de Salida]
Ninguno
[Retorno]
Nmero de campos en el buffer de entrada.
3.4.Estado de la comunicacin
Utilizadas para capturar el status actual de la comunicacin al igual que para
conocer el ltimo error ocurrido. No se debe enviar o recibir datos antes de efectuar
una llamada a estas funciones para verificar. Las funciones son:
Funcin
Descripcin
GetCommunicationState
GetLastCommError
3.4.1. GetCommunicationState
IDLE
BUSY
3.4.2. GetLastCommError
TIMEOUT_ERROR
Time-out de comunicacin.
SEND_ERROR
PRINTER_OFF_OR_DISCONNECTED
3.5.Informacin de la librera
Utilizadas para obtener informacin de la librera. Las funciones son:
Funcin
Descripcin
GetApiVersion
GetSentFrame
GetReceivedFrame
3.5.1. GetApiVersion
3.5.2. GetSentFrame
szSentBuffer
dwBufferLength
[Retorno]
SUCCESS
INTERNAL_ERROR
3.5.3. GetReceivedFrame
dwBufferLength
[Retorno]
SUCCESS
INTERNAL_ERROR