como obter retorno da sweda st 200 ?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

como obter retorno da sweda st 200 ?

Mensagem por andrelucass »

Ola a todos

Estou com uma impressora fiscal sweda st 200, gostaria de saber se alguem tem o tratamento do retorno dos comandos enviados, exemplo

1 - obter o número do cupom fiscal
2 - verificar a necessidade de efetuar a redução Z, quando o usuário esquecer

entre outras.

Atenciosamente

André Lucas Souza
LUCASTEK Sistemas
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: como obter retorno da sweda st 200 ?

Mensagem por sygecom »

Olá André,
Eu não uso ECF mas vejo muito o pessoal falando que se comunica usando a hbcomm. De uma procurada aqui pelo Forum e veja se acha algo a respeito, e não deixe de ver tmb. com o fabricante do mesmo se já não tem algum solução como uma DLL ou algo assim.
Tem tmb. um projeto de codigo aberto que se comunica com varias impressoras fiscais, que talvez lhe ajude, o link do projeto esta abaixo:
http://sourceforge.net/project/showfile ... _id=182935
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: como obter retorno da sweda st 200 ?

Mensagem por alaminojunior »

Se vc fizer uso da DLL da Sweda, da linha Connect, é deste modo:
Primeiro tem que declarar a DLL

Código: Selecionar todos

h1:= LoadLibrary("ConvEcf.dll")
depois para obter o número de cupom....

Código: Selecionar todos

local cupo:= space(6)
if trim(cdtef000->ecf) == "Sweda"
   dllcall(h1,32,"ECF_NumeroCupom",cupo)
endif   
return cupo

Baixe a DLL da linha Connect-C para as ECF´s Térmicas da Sweda, que vem junto um manual com todas as funções.

Estou trabalhando em xHarbour, com as DLL´s das ECF´s Sweda, Daruma e Bematech. E fica um avião !!!
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: como obter retorno da sweda st 200 ?

Mensagem por clebervn »

poste o q vc utiliza, se dll ou comunicação direta ???
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

Re: como obter retorno da sweda st 200 ?

Mensagem por andrelucass »

Eu utilizo comunicação direta
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: como obter retorno da sweda st 200 ?

Mensagem por clebervn »

cOldCommand := cCommand

IF LEFT(cCommand,1) == "."
cSring2Send := CHR(K_ESC) + cCommand + "}"
ELSE
cSring2Send := SWD_PreparaCmd( cCommand )
ENDIF

nHandle := INIT_PORT(h_ecf_port,9600,8,0,1,256)

IF nHandle > 0

OUTCHR(nHandle,cSring2Send,Len(cSring2Send))

SWD_Wait(cCommand) -> tempo espera retorno, pode por 0.8 q dá

IF ISWORKING(nHandle)

nByteX := INBUFSIZE(nHandle)

IF nByteX > 0
cResposta := SPACE(nByteX)
INCHR(nHandle,nByteX,@cResposta)
cResposta := ALLTRIM(cResposta)
ENDIF

ENDIF

ELSE

WinErr( { "N„o foi poss¡vel comunica‡„o",;
"" ,;
"com a porta serial ("+h_ecf_port+")." },;
{ "Enter" } ,;
{ "Estatus da Impressora ECF" } )
ENDIF

UNINT_PORT(nHandle)
.....
FUNCTION SWD_PreparaCmd( cCommand )
LOCAL i
LOCAL STX := CHR(02)
LOCAL CMD
LOCAL SEQ := CHR(42)
LOCAL ETX := CHR(03)
LOCAL CKS

LOCAL iSoma := ASC( STX ) + ASC( ETX ) + ASC( SEQ )

FOR i := 1 TO LEN( cCommand )
iSoma += ASC( SUBSTR( cCommand, i, 1 ) )
NEXT

CMD := cCommand
CKS := CHR( INT( iSoma%256 ) )

RETURN( STX + SEQ + CMD + ETX + CKS )
Responder