API - Rutinas Disponibles

En este capítulo, le presentaremos las funciones disponibles na CliSiTef. Con este fin, se adoptarán las siguientes convenciones:

  • Campo vacío/no suministrado: En la versión binaria, contiene solo el delimitador (cero binario). En la versión ASCII, si es un campo fijo, contiene espacios. Si es un campo variable, contiene solo los delimitadores de comienzo y final de campo;

  • Tamaño del campo: En un campo de tamaño fijo, cuando se proporciona este valor, especifica el tamaño mínimo que el TPV debe reservar para reci bir la respuesta de SiTef;

  • Tipo de parámetro: Se describirá de acuerdo con el flujo de información (entrada o salida) y cómo es pasado (por valor o por referencia).

Cada rutina descrita en este capítulo generalmente tiene dos versiones/interfaces:

Interfaz estándar: Tradicional, permite parámetros con datos binarios.

Interfaz ASCII: Para la interfaz con lenguajes de programación, cuyos parámetros solo funcionan en ASCII. (Esta forma de uso no aparecerá en este documento)

Interfaz estándar#

Esta interfaz requiere que el lenguaje de programación debe ser capaz de manejar campos binarios. Las aplicaciones escritas en lenguajes de programación como C/C ++, Pascal, Java, dotNET y otras , pueden usar esta interfaz. En el caso de tickets, el delimitador que especifica el final de una línea es el carácter 0x0a (\n en el lenguaje C).

Todas las rutinas que TPV llama deben ser del tipo stdcall. Es decir, los parámetros son empujados en la pila de derecha a izquierda y la rutina que es llamada se encarga de limpiar la pila. La convención de parámetros es la siguiente:

Tabla 1: Tipos y convenciones de parámetros#

TipoDescripción
char *Buffer en texto ASCII terminado con un cero binario
short int (short), unsigned short int (ushort)Variables que toman 2 bytes de memoria con y sin signo, respectivamente
long,

unsigned long (ulong)

Variables que toman 4 bytes de memoria con y sin signo, respectivamente
voidEspecifica ausencia de parámetros o ausencia de un retorno
Puntero

(ejemplo: short int * ou long *)

Especifica que una variable se pasa por referencia, es decir, CliSiTef utilizará un área de memoria del TPV para trabajar y puede devolver un resultado en esta área