Você está na página 1de 15

SWECF.

DLL
SERSWEDA.DLL
Guia de Programao
Release - RFD

Agosto 2007

SWEDA INFORMTICA
ECF
-----------------------------------------------------------------------------------------------------------

1.

INTRODUO ............................................................................................................. 4

2.

SWECF.DLL.................................................................................................................. 5

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

ABRIR PORTA ........................................................................................................... 5


FECHAR A PORTA.................................................................................................... 6
ENVIO DE COMANDOS ........................................................................................... 7
RECEBER DADOS DO ECF ..................................................................................... 7
OBTER A VERSO DA DLL .................................................................................... 8
ALTERAR TIME-OUT .............................................................................................. 8
HABILITAR TESTE DE CTS.................................................................................... 9
RECURSOS ADICIONAIS PARA IMPRESSORAS COM MFD ........................ 10
CONFIGURAO PARA OS ESTADOS QUE NO REQUEREM RFD.......... 10

3.

SERSWEDA.DLL ....................................................................................................... 11

3.1 ABRIR PORTA ......................................................................................................... 11


3.2 ENVIO DE COMANDO ........................................................................................... 11
3.3 FECHAR PORTA ..................................................................................................... 12
4.

RFD - REGISTRO DE FITA DETALHE................................................................. 13

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO
2/15

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

SWECF.DLL

SERSWEDA.DLL

Descrio

3.0.0.3

3.0.0.3

3.0.0.4

3.0.0.3

3.0.0.5

3.0.0.3

Verso Inicial
Correo dos campos 10,11 e 12 do Registro do tipo E00
para tipo numrico
Interface verifica se existe arquivo C:\SWEDA\sweda.ini,
se existir no gera o arquivo RFD.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------1. INTRODUO
Neste documento esto descritas as funcionalidades das bibliotecas
SWECF.DLL e SERSWEDA.DLL. Estas bibliotecas estabelecem a comunicao
entre o software aplicativo de Automao Comercial com os Emissores de Cupom
Fiscal SWEDA com ou sem Memria de Fita-Detalhe (MFD) tendo funcionalidades
iguais.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

2. SWECF.DLL
Os usurios da SWECF.DLL no precisam incluir a SERSWEDA.DLL para
o correto funcionamento. Os arquivos que devem ser instalados na pasta da
aplicao comercial so: SWECF.DLL e RSA.BIN.
A conexo, atravs da porta serial (RS232) deve ser feita, usando os
comandos no protocolo ESC PONTO. Dependendo da funo, esto previstos
quatro tipos de dados que podem ser informados:
Void

no h retorno de valor da funo

Int

Inteiro de 32 bits com sinal

Unsigned int

Inteiro de 32 bits sem sinal

BYTE *

Referncia a uma rea alocada pelo compilador ou


adquirida
do
sistema
operacional.
Muitos
compiladores exigem o preenchimento da rea para
que ela se torne vlida.

O formato de chamada da funo deve ser do tipo __stdcall, o mesmo


usado para chamar as funes WIN32 API. Letras minsculas e maisculas so
consideradas diferentes.
Funo

Ordinal

Descrio

ECFOpen

Abre a porta serial.

ECFClose

Fecha a porta serial.

ECFWrite

Envia comando.

ECFRead

Busca o registro recebido.

SistemaGetVersion

Busca a verso

SetTimeoutRead

Altera tempo em segundos

SetTesteCTS

Habilita ou desabilita teste de CTS

2.1 ABRIR PORTA


Chamar a funo ECFOpen ( ) para efetuar a abertura da porta.

unsigned int ECFOpen

( unsigned int
unsigned int
unsigned int

Porta,
Time-out,
Log,

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------unsigned int
Mostra
)
Informar o nmero da porta.
1
= COM1
2
= COM2
3
= COM3, at Com8

Porta

Time-out

Expressa em segundos o tempo de espera do sinal


CTS e do DSR referente ao comando enviado. Deve
ser maior que UM e no exceder UM minuto.

Habilita ou desabilita a gerao do arquivo tipo LOG


no diretrio C:\TEMP
0 = O arquivo no gerado.
1 = Semanal.
> 1 = Define o tamanho limite do arquivo em Kbytes.
Exemplo: valor dois = 2 Kb.
Atingindo o limite, o arquivo apagado.

Habilita a exibio de uma caixa de dilogo quando


ocorrer erro como, por exemplo, falta de CTS / DSR.
TRUE = mostrar.
FALSE = no mostrar mensagem de erro.

Log

Mostra

Retorno da Funo:
Retorno

Inteiro sem sinal 32 bits:


FALSE (ZERO)
=
TRUE
=

OK
ERRO

A velocidade ser automaticamente apurada aps a abertura da


porta. Aps a porta aberta com sucesso, a aplicao poder enviar e
receber comandos indefinidamente.
assumido como padro o teste do sinal DSR. O sinal CTS indicaria
que o cabo est presente enquanto o DSR se a impressora est ligada. O
teste do sinal CTS pode ser habilitado, usando a funo SetTesteCTS ( ) .
O tamanho do buffer serial para as impressoras com MFD de 1024
bytes e para as impressoras sem MFD varia de 3 a at 128 bytes.
2.2 FECHAR A PORTA

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------Usado antes de encerrar a aplicao e serve para liberar recursos alocados do


sistema.

void ECFClose ( )

2.3 ENVIO DE COMANDOS


Chamar a funo ECFWrite ( ) para enviar qualquer comando.
unsigned int ECFWrite

Comando

( BYTE *

Comando )

Informar o comando a ser enviado para a


impressora.
Deve ser iniciado com os caracteres ESC (hexa
0x1b ou decimal 27) e o ponto e deve ser finalizado
com o caractere } (hexa 0x7d ou decimal 125),
conforme descrito no Manual de Programao da
impressora.
O contedo da resposta ser capturado usando a
funo ECFRead ( ).
Este comando ficar travado at receber a resposta
ou sair por TIME-OUT.

Retorno da Funo:

Retorno

Inteiro sem sinal 32 bits:


FALSE (ZERO)=OK
(comando enviado e resposta recebida)
TRUE
=
ERRO na execuo da funo
ECFWrite

2.4 RECEBER DADOS DO ECF


Chamar a funo ECFRead ( ) para obter o registro recebido da
impressora.
unsigned int ECFRead ( BYTE * Status, unsigned int
extenso )
-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

rea que receber a resposta da impressora.

Status

Alocar 132 bytes. Algumas linguagens exigem a


iniciao da rea pelo aplicativo (preenchendo de
espaos ou qualquer outro caractere) para que o
espao seja efetivamente alocado.
As seguintes seqncias so geradas pela DLL
(sem aspas):
.-P002} = comando no enviado (sem sinal).
.-P006} = no veio resposta.
Extenso fsica da rea Status. Deve ser maior que

Extenso

132. Usado apenas para indicar que o campo Status


tem 132 bytes.

Retorno da Funo:
Retorno

Inteiro sem sinal 32 bits:


FALSE (ZERO)=OK (contedo no campo Status)
TRUE
=
ERRO

2.5 OBTER A VERSO DA DLL


Chamar a funo SistemaGetVersion( ) para obter a verso da DLL.
void SistemaGetVersion

( BYTE * STRING )

Alocar uma rea de 64 bytes.

String

Obtm no formato texto com finalizador zero que


identifica a verso da DLL.
O contedo ser: SWECF 3, 0, 0, 5

2.6 ALTERAR TIME-OUT


Chamar a funo SetTimeoutRead ( ).
-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------Unsigned int SetTimeoutRead

Segundos

( unsigned int

Segundos )

Nmero de segundos de espera.

Retorno da Funo:
Retorno

Inteiro sem sinal 32 bits:


FALSE (ZERO) = tempo aceito
TRUE
=
Zero ou excede 1 minuto.

2.7 HABILITAR TESTE DE CTS


Chamar a funo SetSinalCTS ( ).
void SetSinalCTS
CTS

( unsigned int
=

FALSE (zero)
TRUE

CTS )
-

desabilita o teste de CTS.


habilita o teste de CTS.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------2.8 RECURSOS ADICIONAIS PARA IMPRESSORAS COM MFD


A. Unidade de Medida diferente em cada Item vendido
O aplicativo poder informar a unidade de medida na segunda e terceira
posio da descrio do produto. Basta informar o caractere ? na primeira
posio da descrio quando o preo unitrio tiver 2 casas decimais ou o
caractere $, quando o preo unitrio tiver 3 casas decimais.
Exemplo:
.17}
.0178910226380040001000000000065000000000065?cxD.Liq.Limpol500
T01}
.0178910226380040000001000600065000000000065?ltD.Liq.Limpol500
T05}
.0178910221012560001000000000135000000000135$kgDesinf.Kalip750
T02}
.0178961055000941001000000000159000000000159?LTAg.Sanit.Cand2L
T03}
.0178930006321580001000000000678000000000678?cxPizza Sadia 460
T01}

B. Texto no fiscal com extenso superior a 40 caracteres


Sero aceitos textos no comando ESC.08 com comprimento de at 1024
bytes.

2.9 CONFIGURAO PARA OS ESTADOS QUE NO REQUEREM RFD


A SWECF.DLL permite aos usurios de estados que no necessitam gerar
o arquivo RFD desabilitem essa funo. Para desabilitar a gerao da RFD
basta criar o arquivo de configurao sweda.ini e coloc-lo dentro da
pasta C:\SWEDA.
Obs.: Feito esse procedimento, a dll no executar mais os controles necessrios para a RFD.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

10

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------3. SERSWEDA.DLL
Buscando otimizar os recursos de gerao dos arquivos digitais do Registro
de Fita-Detalhe (RFD) a SERSWEDA.DLL utiliza internamente as chamadas da
SWECF.DLL. Ento para seu correto funcionamento as duas DLLs devem ser
instaladas juntas. Os arquivos que devem ser instalados na pasta da aplicao
comercial so: SERSWEDA.DLL, SWECF.DLL e RSA.BIN
3.1 ABRIR PORTA
Chamar a funo AbrePorta ( ) para efetuar a abertura da porta.
Function AbrePorta(Numero,Timeout:Integer):Boolean

Numero

Time-out

Informar o nmero da porta.


1
= COM1
2
= COM2
3
= COM3, at Com8
Expressa em segundos o tempo de espera do
comando enviado. Deve ser maior que UM e no
exceder UM minuto.

Retorno da Funo:
Retorno

Boolean
TRUE =OK, Porta Aberta
False =
ERRO

3.2 ENVIO DE COMANDO


Chamar a funo EnviaComando ( ) para efetuar o envio do comando
impressora fiscal e recepo da resposta.

type
ECFSWEDA=String[132];
Function EnviaComando(Texto:PChar):ECFSweda;

Texto

Informar o comando a ser enviado para a


impressora.
Deve ser iniciado com os caracteres ESC (hexa
0x1b ou decimal 27) e o ponto, e deve ser finalizado
com o caractere } (hexa 0x7d ou decimal 125),
conforme descrito no Manual de Programao da
impressora.
Este comando ficar travado at receber a resposta
ou sair por TIME-OUT

Retorno da Funo:
-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

11

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

Retorno

String no tamanho de 132 bytes.


O contedo da resposta do comando enviado.

3.3 FECHAR PORTA


Usado antes de encerrar a aplicao e serve para liberar recursos alocados do
sistema.
Chamar a funo FecharPorta ( ) para efetuar fechamento da porta.

Function FechaPorta(Numero:Integer):Boolean;

Numero

Informar o nmero da porta.


1
= COM1
2
= COM2
3
= COM3, at Com8

Retorno da Funo:
Retorno

Boolean
TRUE =
False =

OK
ERRO

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

12

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

4. RFD - Registro de Fita Detalhe


Estas bibliotecas atendem s Portarias CAT-52 de 6 de junho de 2007 e
CAT 60 de 28 de junho de 2007, que disciplina a gerao e armazenamento do
movimento registrado na impressora fiscal sem MFD em arquivo digital.
Gerar diariamente, o arquivo digital no formato estabelecido no ANEXO I
das Portarias.
A captura do contedo da memria de trabalho da impressora poder ser
total ou parcial e depender do comando a ser executado ou do estado da
biblioteca, gerando um arquivo de log.
Ser feita a carga total nas seguintes situaes:
1. Antes de enviar um comando aps a carga da DLL ou aps a reabertura
da porta, por isso, haver demora na execuo do primeiro comando.
2. Aps a emisso da REDUO Z.
3. Se foi detectada a troca da impressora fiscal.
4. Aps o envio de comandos de programao para a impressora.
5. Alterao na data de movimento da impressora.
6. Se houve erro de comunicao.
A carga parcial ser seletiva e depender do comando executado, para no
afetar a velocidade de processamento.
O arquivo de log ser gravado no formato binrio
C:\SWEDA\RFD. O nome do arquivo obedecer ao formato:
RFD-dd-mmmmmmm-20aa

na

pasta

onde d indica dia, m o nome do ms e a o ano


Exemplo: RFD-16-Julho-2007.bin.
Para gerao do registro tipo E00, na primeira execuo a DLL exibir uma
caixa de dilogo para que sejam preenchidos os campos que sero salvos no
arquivo C:\SWEDA\RFD\E00.BIN.
Posteriormente, caso seja necessrio alterar algum dado, efetuar os
seguintes procedimentos:
1. Fechar o aplicativo.
2. Alterar o nome do arquivo para EXX.BIN.
3. Chamar o aplicativo.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

13

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

-----------------------------------------------------------------------------------------------------------

A caixa abaixo tambm poder ser mostrada se houver divergncia no


nmero de fabricao da impressora conectada. Aps a atualizao dos dados, a
caixa no ser mais mostrada.

Apesar da carga extra de comunicao que haver, a busca da maioria dos


registros de status ser mais rpida porque ser retornado o contedo existente
na memria da biblioteca.
A gerao do arquivo final ser realizada durante a emisso da REDUO
Z, desde que a impressora fiscal no retorne erro na execuo do comando.
Na emisso da REDUO Z verificar tambm se existem arquivos de
movimento sem o correspondente arquivo digital, ento a biblioteca gerar os
arquivos faltantes, referentes aos ltimos 30 dias.
O arquivo digital a ser enviado ao fisco ser gravado na pasta
C:\SWEDA\RFD\S E F A Z - ArqDigital = [CD] & [Transmitir].
O formato do arquivo ser SWm12345.DMA onde m o modelo, conforme
tabela abaixo, 12345 o nmero de fabricao da impressora, D o dia (0 a 9 e
letras A a Z, sendo que a letra corresponde ao dia 10), M o ms e A
o ano.
-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

14

SWEDA INFORMTICA

RFD Registro de Fita-Detalhe

----------------------------------------------------------------------------------------------------------Modelo
IF S-7000III
IF S-7000I
IF S-7000IE
IF S-7000II
IF S-9000I
IF S-9000IE
IF S-9000II
IF S-9000IIE
IF S-9000IIIE

Cdigo
1
2
3
4
5
6
7
8
9

A funo MD5 aplicada e o arquivo assinado digitalmente, usando o


algoritmo RSA de chave pblica de 1024 bits.
A biblioteca exibir a seguinte caixa de dilogo se houver divergncia entre
a data do computador e a data da impressora.

Nota Importante:
Esta biblioteca gera os arquivos digitais, conforme o ANEXO I da Portaria CAT,
para todos os modelos das linhas S7000 e S9000 nas verses 1.0 ou superior.
Para gerao do arquivo digital para as impressoras fiscais com MFD, em
conformidade ao ATO COTEPE No. 17/04, utilizar o programa SWMFD.EXE.

-------------------------------------------------------------------------------------------------------MANUAL DE PROGRAMAO

15