número de parámetros de CMD inválido ???
Enviado: 18 Fev 2009 20:49
Pessoal, por favor se alguem puder me ajudar
Tem uma empresa que presto serviço esporádico, hj me chamaram afim de ver um problema na emissao do cupom fiscal, qdo abre o mesmo da a mensagem "número de parámetros de CMD inválido"
podem verificar o codigo abaixo que extrai do programa e dar uma ideia do que seja o problema
qq coisa estou no msn marcelocordeiro1974@msn.com
posso conversar por msn ou por telefone
agradeço desde ja qq ajuda
abracao pessoal
---
Nota da Moderação (Maligno):
A presente mensagem foi editada com a única finalidade de inserir as tags que permitem uma melhor exposição do código acima.
Tem uma empresa que presto serviço esporádico, hj me chamaram afim de ver um problema na emissao do cupom fiscal, qdo abre o mesmo da a mensagem "número de parámetros de CMD inválido"
podem verificar o codigo abaixo que extrai do programa e dar uma ideia do que seja o problema
qq coisa estou no msn marcelocordeiro1974@msn.com
posso conversar por msn ou por telefone
agradeço desde ja qq ajuda
abracao pessoal
#INCLUDE "Fileio.ch"
#define ST1_BIT_0 "número de parámetros de CMD inválido"
#define ST1_BIT_1 "cupom aberto"
#define ST1_BIT_2 "comando inexistente"
#define ST1_BIT_3 "primeiro dado de CMD nÆo foi ESC (1Bh)"
#define ST1_BIT_4 "impressora em erro"
#define ST1_BIT_5 "erro no rel¢gio"
#define ST1_BIT_6 "pouco papel"
#define ST1_BIT_7 "fim de papel"
#define ST2_BIT_0 "comando nÆo executado"
#define ST2_BIT_1 "CGC/IE do propriet rio nÆo programados"
#define ST2_BIT_2 "cancelamento nÆo permitido"
#define ST2_BIT_3 "capacidade de al¡quotas program veis lotada"
#define ST2_BIT_4 "al¡quota nÆo programada"
#define ST2_BIT_5 "erro na Mem¢ria RAM CMOS nÆo vol til"
#define ST2_BIT_6 "Mem¢ria fiscal lotada"
#define ST2_BIT_7 "tipo de parƒmetro de CMD inv lido"
****************************************
FUNCTION COMUNICA(FBUFFER,tam_a_ser_ret)
****************************************
/* evia sequencia de bytes para impressora */
fwrite(PORTA, @FBUFFER, len(FBUFFER))
/* pega o retorno da impressora NAK/ACK ST1 ST2 */
GRAVALOG( SUBS(FBUFFER+SPACE(603),3,600))
retorno_impressora := ack := nak := st1 := st2 := space(1)
FTEMPO = LEN(FBUFFER) / 100
INKEY(FTEMPO)
for contador1 := 1 to 3
fread(PORTA,@retorno_impressora,1)
do case
case contador1 = 1
do case
case asc(retorno_impressora) = 21 /* retorno em caracter 21d=15h=NAK */
MENFIS("Atencao... a impressora retornou 21d=15h=NAK")
case asc(retorno_impressora) = 06
ack := transform(asc(retorno_impressora),"99")
otherwise
MENFIS("Atencao... provavelmente o driver nao foi carregado !")
fclose(PORTA)
SET COLOR TO
CLEAR
quit
endcase
case contador1 = 2
st1 := transform(asc(retorno_impressora),"999")
case contador1 = 3
[b] st2 := transform(asc(retorno_impressora),"999")[/b]
endcase
next contador1
/* pega sequencia de retorno caso necess rio */
sequencia_retorno := ""
for contador2 := 1 to tam_a_ser_ret
fread(PORTA, @retorno_impressora, 1)
sequencia_retorno += retorno_impressora
next contador2
*-----------------------DECODIFICA
DECODIFICA(ack,st1,st2)
return sequencia_retorno /* executou_sn */
/////////////////////////////////////////////
/////////////////////////////////////////////////
static function DECODIFICA(ACK,ST1,ST2)
Bit_st1:=Bit_st2:=Bit_ack:=0
Bit_ack=Val(ACK)
Bit_st1=Val(ST1)
Bit_st2=Val(ST2)
//Tratamento do Ack ou NAk
if Bit_ack # 6
MENFIS("Problemas ao Enviar o Comando a Impressora Devolveu 21")
end if
//Aqui ‚ Feito o Tratamento do St1 subtraindo o Byte anterior pelo Seguinte
if Bit_st1 >= 128;MENFIS(ST1_BIT_7) ;Bit_st1=Bit_st1-128 ;end if
if Bit_st1 >= 64 ;MENFIS(ST1_BIT_6) ;Bit_st1=Bit_st1-64 ;end if
if Bit_st1 >= 32 ;MENFIS(ST1_BIT_5) ;Bit_st1=Bit_st1-32 ;end if
if Bit_st1 >= 16 ;MENFIS(ST1_BIT_4) ;Bit_st1=Bit_st1-16 ;end if
if Bit_st1 >= 8 ;MENFIS(ST1_BIT_3) ;Bit_st1=Bit_st1-8 ;end if
if Bit_st1 >= 4 ;MENFIS(ST1_BIT_2) ;Bit_st1=Bit_st1-4 ;end if
if Bit_st1 >= 2 ;MENFIS(ST1_BIT_1) ;Bit_st1=Bit_st1-2 ;end if
if Bit_st1 >= 1 ;MENFIS(ST1_BIT_0) ;end if
//Aqui ‚ Feito o Tratamento do St2 subtraindo o Byte anterior pelo Seguinte
if Bit_st2 >= 128;MENFIS(ST2_BIT_7) ;Bit_st2=Bit_st2-128 ;end if
if Bit_st2 >= 64 ;MENFIS(ST2_BIT_6) ;Bit_st2=Bit_st2-64 ;end if
if Bit_st2 >= 32 ;MENFIS(ST2_BIT_5) ;Bit_st2=Bit_st2-32 ;end if
if Bit_st2 >= 16 ;MENFIS(ST2_BIT_4) ;Bit_st2=Bit_st2-16 ;end if
if Bit_st2 >= 8 ;MENFIS(ST2_BIT_3) ;Bit_st2=Bit_st2-8 ;end if
if Bit_st2 >= 4 ;MENFIS(ST2_BIT_2) ;Bit_st2=Bit_st2-4 ;end if
if Bit_st2 >= 2 ;MENFIS(ST2_BIT_1) ;Bit_st2=Bit_st2-2 ;end if
if Bit_st2 >= 1 ;MENFIS(ST1_BIT_0) ;end if
return NIL
---
Nota da Moderação (Maligno):
A presente mensagem foi editada com a única finalidade de inserir as tags que permitem uma melhor exposição do código acima.