Enviando e Recebendo dados ECF Daruma
Enviado: 30 Jul 2012 20:26
Olá pessoal, estou tendo problemas com o tempo de latência do observer da daruma, fica travando ao criar o daruma.ret conforme abaixo:
fica travando no laço "Espera que o Arquivo de Resposta Seja Criado", se almentar o tempo de latência no observer, o sistema fica lento, alguém tem uma idéia de como posso melhorar esse código, pra acabar com essa pendenga de latência?
desde já obg.
Código: Selecionar todos
***********************************
*RETORNO IMPRESSORA FISCAL DARUMA
***********************************
*static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)
function COMUNICA_COM_ECF(VAR_COMANDO_ECF)
Delete File("C:\DARUMA.CMD")
Delete File("C:\STATUS.TXT")
Delete File("C:\RETORNO.TXT")
Delete File("C:\DARUMA.RET")
/*Escreve comandos no Arquivo*/
H_Handle := fcreate("C:\DARUMA.CMD" )
FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
FClose( H_Handle )
TFIM := seconds() + 600
VAR_ESPERA:=1
[color=#FF0000]/*Espera que o Arquivo de Resposta Seja Criado*/
do while VAR_ESPERA > 0
if File("C:\DARUMA.RET")
VAR_ESPERA :=0
else
IF (seconds() > TFIM)
TONE(600,3)
JANELA(10,12,14,48)
@11,14 SAY "Observer nÆo carregou, Clique em:"
@12,14 SAY "Iniciar/Programas/Inicializar"
@13,14 SAY "e clique em Atalho para Observer2"
@15,15 SAY "Pressione Qualquer Tecla..."
INKEY(0)
CLOS ALL
QUIT
ENDIF
loop
end if
enddo
[/color]
RET_TAM:=0
/*Espera o Arquivo ter um conteudo*/
do While RET_TAM = 0
H_Handle := Fopen("C:\DARUMA.RET")
RET_TAM = FSeek( H_Handle, 0, FS_END )
Fclose(H_Handle)
enddo
H_Handle:= Fopen("C:\DARUMA.RET")
POS_RET = 0
VAR_RET_CMD=" "
VAR_AUX =" "
if RET_TAM > 0
for POS_RET = 1 to RET_TAM - 1
fread( H_Handle, @VAR_AUX, 1)
if VAR_AUX <> chr(13)
VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
end if
next
endif
fclose(H_Handle)
******************************************************
VAR_BUFFER_RETORNO:=VAR_RET_CMD
return NIL
*///Fim da Função que envia os dados para o ECF///
desde já obg.