Você está na página 1de 8

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


Objetivo

1 8

O objetivo deste documento apresentar a dll QZECF32. Esta dll atende a impressora fiscal modelo QZ1000.
Caractersticas

A dll QZECF32 foi gerada para atender plataformas que suportam funes 32 bits. O ambiente utilizado na gerao desta dll foi o Visual Studio(Visual C/C++ - v6.0) Compilao:SINGLE THREAD.
Funes

As funes da dll so as seguintes: A. Verso da DLL void QZ1000_VersaoDLL(char *pbuffer); B. Retorno do comando int QZ1000_LeRetorno(void) C. L buffer de retorno de dados (ASCII) int QZ1000_LeBufferRetorno(char *pbuffer) D. Envia um comando. int QZ1000_EnviaComando(const char *str); E. Inicializa porta serial int QZ1000_InicializaPortaSerial(int porta); F. Encerra o uso da porta serial int QZ1000_FechaPortaSerial(void); G. Configura os valores de timeout de transmisso, recepo e execuo dessas operaes int QZ1000_ConfiguraValorDeTimeout(int rxTimeout ,int txTimeout ,int operTimeout); H. Ativa sistema de depuracao ( LOG ) void QZ1000_AtivaLOG( void ); I. Ativa sistema de depuracao ( LOG ) hexadecimal. void QZ1000_AtivaLOGHEX( void ); J. Desativa sistema de depuracao ( LOG ) void QZ1000_DesativaLOG( void ); Estas funes realizam a comunicao com a impressora fiscal(ECF) diretamente, ou seja, dispensando o uso de qualquer device driver. Para utiliz-las lembre-se dos seguintes aspectos: - A DLL deve estar presente, preferencialmente, no diretrio Windows \SYSTEM. - Para usurios da linguagem C - Utilize o arquivo QZECF32.H e QZECF32.LIB na compilao de seu aplicativo. Caso esteja utilizando a biblioteca QZCOM32.LIB, NO utilize os arquivos mencionados acima. - Observe as convenes e definies abaixo: VOID - Esta declarao indica que a funo no recebe parmetros e no

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


fornece valores de retorno. CHAR <varivel>

2 8

- Esta declarao indica que a <varivel> do tipo caractere, ou seja, esta <varivel> receber um caractere("A","1","*" e etc ); no caso de retorno de uma funo, a mesma retornar um caractere.

CHAR *<varivel> INT <varivel>

- Esta declarao indica que a <varivel> um ponteiro para caracteres, ou uma string de caracteres. - Esta declarao indica que a <varivel ou funo> do tipo inteiro, ou seja, esta <varivel> receber valores numricos; no caso de retorno de uma funo, a mesma retornar valores numricos.

Os exemplos aqui descritos foram escritos em linguagem "C", mas existem exemplos, disponveis em nosso site, nas seguintes linguagens: - Visual Basic; e - Delphi. Abaixo se encontra o descritivo de cada funo.

A. Verso da DLL
Declarao: Funo: Retorno: void QZ1000_VersaoDLL(char *pbuffer) Atravs do buffer( pbuffer ) fornece a verso da DLL que est em uso. Nenhum.

Exemplo: char buffer[50]; (void)QZ1000_VersoDLL( buffer ); printf( "DLL: %s\n" ,buffer ); Resultado do exemplo: Mensagem exibida: "DLL: QZECF32.DLL v1.0"

B. Retorno do comando.
Declarao: Funo: int QZ1000_LeRetorno(void) Realiza a leitura do retorno referente ao ltimo comando enviado para impressora. Esta funo utilizada, normalmente, aps o uso das funes: QZ1000_EnviaComando Esta funo, atualmente, por ser dispensada; a mesma est presente apenas para manter compatibilidade com os aplicativos desenvolvidos com base na primeira verso da DLL. A funo QZ1000_EnviaComando, assumiu,tambm, a funo desempenhada por esta funo. 0 1 2 3 4 - Sucesso - Impressora desligada. - No consegue monitorar os sinais seriais. - Timeout de recepo. - Fim do tempo maximo para recepo da string.

Retorno:

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


5 6

3 8

- Tamanho da resposta excede o tamanho do buffer de recepo. - Erro na leitura do byte.

Exemplo: if( QZ1000_LeRetorno() != 0 ) { /* Falha ao ler retorno do comando */ printf( "Falha ao ler retorno do comando" ); } Resultado do exemplo: Em caso de sucesso a leitura do retorno ser feita; para ter acesso ao retorno o programador dever utilizar a funo QZ1000_LeBufferRetorno. Em caso de erro a seguinte mensagem ser exibida: "Falha ao ler retorno do comando"

C. L buffer de retorno de dados (ASCII).


Declarao: Funo: int QZ1000_LeBufferRetorno( char *pbuffer ) Copia o retorno, obtido pela funo QZ1000_LeRetorno, para um buffer apontado por pbuffer; os valores apresentados em ASCII. Esta funo utilizada, normalmente, aps o uso das funes: QZ1000_LeRetorno 0 - Erro na copia da resposta; no conseguiu copiar a resposta para o buffer. N - Onde N corresponde ao nmero de caracteres copiados.

Retorno:

Exemplo: Vamos supor que o numero de um ECF seja 0001. char buffer[500]; if( QZ1000_LeBufferASCII( buffer ) == 0 ) { /* Falha ao ler resposta do comando */ printf( "Falha ao ler resposta do comando" ); } Resultado do exemplo: Em caso de sucesso a varivel buffer possuir o retorno do comando. Em caso de erro a seguinte mensagem ser exibida: "Falha ao ler resposta do comando"

D. Envia um comando.
Declarao: Funo: int QZ1000_EnviaComando( const char *str ) Envia um comando ( char *str ) para impressora, o comando se encontram em um buffer apontado pelo ponteiro char. NO h necessidade de inserir o caractere ESC na formatao da string de comando a ser enviado para impressora. 0 1 2 3 4 5 6 - Sucesso - Impressora desligada. - No consegue monitorar sinais seriais. - Timeout de envio. - Fim do tempo maximo para envio da string. - Erro ao transmitir o byte - Erro ao inicializar a porta serial com valor default. - Comando inexistente, ou fora do formato: ESC.<comando/argumento>} - Timeout de recepo. - Fim do tempo mximo para recepo da string. - Tamanho da resposta excede o tamanho do buffer de recepo.

Retorno:

7
8 9 10

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


11 12 - Erro na leitura do byte. - Impressora NO QZ1000.

4 8

Exemplo: Comando ESC.13 - Leitura X if( QZ1000_EnviaComando( ".13}" ) != 0 ) {/* Nao conseguiu enviar o comando */ printf( "Falha ao enviar um comando para o ECF\n" ); } Resultado do exemplo: Em caso de sucesso a impressora imprimir a leitura X. Em caso de erro a seguinte mensagem ser exibida: "Falha ao enviar um comando para o ECF"

E. Inicializa porta serial.


Declarao: Funo: int QZ1000_InicializaPortaSerial( int porta ) Incializa e configura a porta serial definida atravs do argumento porta. Recomendamos, fortemente, o uso desta funo antes do envio de qualquer comando para impressora. Recomendamos, ainda, como regra geral, que se utilize s portas seriais COM1 e COM2 na conexo de impressoras fiscais, estas funcionam por interrupo. As portas COM3 e COM4 operam por polling, o que pode ocasionar a perda de caracteres durante a troca de dados. Caso esta funo no seja utilizada e seja feito um envio de um comando para impressora a DLL assumir a COM1 como default e inicializar a mesma. O argumento porta poder assumir os seguintes valores: porta serial COM1 COM2 COM3 COM4 Retorno: 0 1 2 3 4 5 6 7 - Sucesso. - Porta serial invalida. - Handle de manipulao da porta invalido. - Falha ao ler configurao da porta serial. - Falha ao configurar a porta serial. - Falha ao fechar porta configurada anteriormente - Falha ao ler configurao do valores de timeout. - Falha ao configurar valores de timeout Valor( int porta ) 1 2 3 4

Exemplo: if( QZ1000_InicializaPortaSerial( 1 ) != 0 ) { /* Nao conseguiu inicializar a porta COM1 */ printf( "Falha ao incializar a porta serial !!\n" ); } Resultado do exemplo: Em caso de sucesso a porta ser inicializada e configurada. Em caso de erro a seguinte mensagem ser exibida: "Falha ao inicializar a porta serial !!"

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL

5 8

F. Encerra o uso da porta serial.


Declarao: Funo: int QZ1000_FechaPortaSerial( void ) Encerra o uso da porta serial inicializada atravs da funo QZ1000_InicializaPortaSerial. Recomendamos, fortemente, o uso desta funo ao trmino da execuo do aplicativo que faz uso desta DLL; o objetivo liberar o uso desta porta para os demais aplicativos. Caso a biblioteca QZCOM32.LIB esteja sendo utilizada no h necessidade de se utilizar esta funo; ao trmino do uso desta biblioteca a mesma se encarrega de encerrar o uso da porta serial. 0 1 - Sucesso - Falha na operao.

Retorno:

Exemplo: if( QZ1000_FechaPortaSerial() != 0 ) { /* Nao conseguiu encerrar o uso da porta configurada */ printf( "Falha ao fechar porta serial !!\n" ); } Resultado do exemplo: Em caso de sucesso a porta ser fechada. Em caso de erro a seguinte mensagem ser exibida: "Falha ao fechar a porta serial !!"

G. Configura os valores de timeout de transmisso, recepo e execuo dessas operaes.


Declarao: Funo: int QZ1000_ConfiguraValorDeTimeout( int rxTimeout ,int txTimeout , int operTimeout ) Configura os valores de timeout para transmisso( int txTimeout ) e recepo( int rxTimeout ) de dados; configura, tambm, o valor mximo desses timeouts( int operTimeout ). Recomendamos o uso desta funo SOMENTE em casos extremamente necessrios. Valores default( em segundos ): Trasmisso Recepo 5 10 Valor mximo( operTimeout ) 30

Valores mximos para configurao( em segundos ): Transmisso Recepo Valor mximo( operTimeout ) 60 60 120 Retorno: 0 1 2 3 - Sucesso - Valor para timeout de recepo invlido. - Valor para timeout de transmisso invlido. - Valor para timeout de execuo de uma operao invlida.

Exemplo: if( QZ1000_ConfiguraValorDeTimeout( 10 ,10 ,60 ) != 0 ) { /* Erro ao configurar valores de timeout */ printf( "Erro ao configurar valores de timeout!!\n" ); } Resultado do exemplo: Em caso de sucesso os novos valores passam a ser adotados instantaneamente.

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


Em caso de erro a seguinte mensagem ser exibida: "Erro ao configurar valores de timeout!!"

6 8

H. Ativa sistema de depuracao ( LOG ).


Declarao: Funo: void QZ1000_AtivaLOG( void ); Ativa o sistema de depuracao de uso da DLL. A dll criar um arquivo com o seguinte nome: AAAAMMDD.ZLG Onde: AAAA MM DD - Representa o ano corrente. ex.: 2000. - Representa o ms. ex.: 01. - Representa o dia. ex.: 21.

Exemplo de nome: 20000121.ZLG Este arquivo possuir o seguinte aspecto: [HH:MI:SE]: Comando: XXXXX [HH:MI:SE]: Retorno: YYYYY Onde: HH:MI:SE XXXXX YYYYY - Representam hora, minutos e segundos respectivamente do envio do comando. - Representa o comando enviado. ex.: .23}. - Representa o retorno do comando. ex.: .+P550.+0004}.

Exemplo do contedo do arquivo: [19:38:07]: Comando: .23} [19:38:07]: Retorno: .+P550.+0004} Retorno: Nenhum.

Exemplo: (void)QZ1000_AtivaLOG();

I. Ativa sistema de depuracao ( LOG ) hexadecimal.


Declarao: Funo: void QZ1000_AtivaLOGHEX( void ); Ativa o sistema de depuracao hexadecimal de uso da DLL. A dll criar um arquivo com o seguinte nome: AAAAMMDD.ZLG Onde: AAAA MM DD - Representa o ano corrente. ex.: 2000. - Representa o ms. ex.: 01. - Representa o dia. ex.: 21.

Exemplo de nome: 20000121.ZLG Este arquivo possuir o seguinte aspecto: [HH:MI:SE]: Comando: XXXXX [HH:MI:SE]: Dados( Hexadecimal ): HH HH HH HH HH [HH:MI:SE] Retorno: YYYYY HH HH HH HH HH

XXXXX YYYYY

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL


Onde: HH:MI:SE XXXXX YYYYY HH

7 8

- Representam hora, minutos e segundos respectivamente do envio do comando. - Representa o comando enviado. ex.: .23}. - Representa o retorno do comando. ex.: .+P550.+0004}. - Representa os bytes hexadecimais. ex.: 1B.

Exemplo do contedo do arquivo: [19:38:07]: Comando: .23} [19:38:07]: Dados( Hexadecimal ): 1B 2E 32 33 7D [19:38:07]: Retorno: .+P550.+0004} [19:38:07]: Dados( Hexadecimal ): 2E 2B 50 35 35 30 2E 2B 30 30 30 34 7D Retorno: Nenhum.

.23} .+P550.+0004}

Exemplo: (void)QZ1000_AtivaLOGHEX();

J. Desativa sistema de depuracao ( LOG ).


Declarao: Funo: Retorno: void QZ1000_DesativaLOG( void ); Desativa o sistema de depurao de uso da DLL, inclusive o modo hexadecimal ( se o mesmo estiver ativo ). Nenhum.

Exemplo: (void)QZ1000_DesativaLOG();
Observaes

A depurao (gerao do arquivo de LOG) de uso dessa dll poder ser feita de duas formas: Uso das funes: QZ1000_AtivaLOG QZ1000_AtivaLOGHEX QZ1000_DesativaLOG Criao dos arquivos: DEPURA.TXT DEPURA.HEX

A forma de uso das funes est descrita acima; caso o usurio no pretenda fazer uso dessas funes, o mesmo poder ativar o sistema de depurao da seguinte forma: Crie, no diretrio da aplicao, um dos arquivos mencionados acima; este arquivo no precisa possuir contedo. O arquivo DEPURA.TXT solicitar, a dll, a criao de um arquivo de LOG simples, os comandos, e os cdigos de retorno, so exibidos conforme o envio e recepo atravs impressora fiscal. ATENO!. O protocolo trabalha com caracteres, muitas vezes, no estampveis, e sendo assim, arquivo de LOG pode apresentar sinais como , e outros. O arquivo DEPURA.HEX solicitar, a dll, a criao de um arquivo de LOG hexadecimal, ou seja, alm da depurao normal (DEPURA.TXT os sinais no estampveis possuem seu valor hexadecimal apresentado. Por exemplo: -> 01h. O arquivo de depurao ser gerado enquanto um dos arquivos existir. As funes, da dll, mencionadas acima podem trabalhar em conjunto com os arquivos sem nenhum problema. A composio do nome do arquivo de LOG mencionada no descritivo das funes QZ1000_AtivaLOG e QZ1000_AtivaLOGHEX.

ZANTHUS Indstria e Comrcio de Equipamentos Eletrnicos Ltda.

QZECF32.DLL Reviso 1.4

Manual de utilizao da DLL

8 8

Todas as caractersticas e especificaes tcnicas das funes presentes na DLL, bem como as informaes deste documento esto sujeitas a alterao a critrio exclusivo da empresa ZANTHUS sem aviso prvio. Recomendamos aos usurios de nossos produtos, que faam visitas peridicas ao nosso site www.zanthus.com.br .
Histrico da DLL Verso Data 1.0 28/07/1999 1.1 09/09/1999 1.2 08/12/1999 Observaes Primeira verso Correo do valor de timeout para resposta dos comandos "ESC.13","ESC.14","ESC.15" e "ESC.16". Verificao do modelo da impressora; se no for QZ1000 a DLL no funciona.

1.3 1.4 1.5 1.51 1.52

27/01/2000 10/03/2000 07/07/2000 18/07/2000 10/08/2000

Correo do valor de timeout para resposta dos comandos. Correo do "bug" palavra "TOTAL" - ( ESC. 07/08/12/38/39 ). Aumento da capacidade para atender porta serial alm da COM4. Implementao de sistema de depurao - LOG e LOG Hexadecimal. Melhorias em funes internas da DLL. Correes de Timeout Alterao no timeout de recepo da Leitura X sem abertura de caixa(55) Alterao no timeout de recepo da Leitura X (.13) e Reduo Z

Em caso de dvidas entre em contato com a ZANTHUS atravs de e-mail: suportezan@zanthus.com.br. - Linguagem que est sendo utilizada no desenvolvimento do aplicativo. - Verso da DLL.

Você também pode gostar