Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3237 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Bom dia pessoal,

Usando Acbr for Lazarus e SwedaSTX a Data do Movimento retornada é a data do dia anterior. Quando mudo para "Sweda" a data fica correta. Teria como corrigir isto ou é algo que estou fazendo errado aqui ?

Obrigado,

Rossine.

  • Fundadores
Postado

provavelmente é algo na classe da SwedaSTX... será necessário debugar... tente achar nos fontes o comando enviado... e verifique se "bate" com o comando descrito no manual

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Olá, eu fiz um teste aqui parece estar ok.

Liguei o emulador e a data de movimento dele era 15/03 ( ultima vez que tinha utilizado ), o ecfteste retornou corretamente.

Tirei a leitura z e peguei a data de movimento novamente, ela retornou 11/04/2011, o que está correto.

Anexo print screen.

post-184-13548987374184.png

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Boa tarde pessoal,

Olha eu testei com o emulador e funcionou corretamente, mas usando impressora me retorna a data anterior mesmo.

Vou investigar mais sobre este problema e posto os resultados aqui.

Obrigado pela atenção,

Rossine.

  • Consultores
Postado

Será que não poderia ser uma diferença no firmware do ECF?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Obrigado pelo retorno rossine.

Para ajudar a detectar o problema:

No manual o comando enviado é o A2


A2

Redução Z

(84 bytes)

Data da última Redução Z

Horário da última Redução Z

Data do início do movimento

Horário do início do movimento

Data do último reinício de operação

Horário do último reinício de operação

Data do último documento emitido

Horário do último documento emitido

O que ele ta pegando nesse comando é a data da última redução Z.

Não sei se isso pode ser o problema. Não encontrei outro comando que pudesse retornar a data de movimento.

Precisa do manual da stx?

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Boa tarde Fernando,

Se puder enviar o manual para [email protected] lhe serei grato ;)

Obs1: No meu caso eu não consigo mexer nos fontes do acbr pois eu programo em harbour :)

Obs2: Eu optei em usar a sweda STX pois preciso do comando "DadosUltimaReducaoZ" e dos comandos para gaveta que não tem no acbr para a impressora "SWEDA" ou eu não estou sabendo usá-los aqui.

Obrigado pela ajuda de todos,

Rossine.

Postado

Olá, enviei o manual pra você.

Eu tenho um manual e compatibilidade de comandos ESC X STX e nele fala que o comando STX para data de movimento é o STX34|A2 que é exatamente o comando utilizado hoje.

Está na página 38 do arquivo PAF-ECF comandos_ESC_STX.

Está anexo os dois arquivos aqui para quem precisar.

Obs:Não consegui anexar o manual stx porque ele excede os 600kb permitidos.

Abraços.

PAF-ECF_comandos_ESC_STX.pdf

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Bom dia pessoal,

Obrigado pela riqueza de informações que vocês me passaram. ;)

Usando o acbr com o modelo "sweda" eu não consegui trabalhar com os comandos de gaveta e também não consegui retornar os dados da ultima redução. Me parece que dava uma mensagem falando que aqueles comandos não tinham sido feito ainda para a sweda, e como eu não programo em delphi, aí optei em testar o modelo "SWEDA STX". Só que nos retornos da STX eu observei também que são retornados uns caracteres estranhos (carinhas,#$¨%, etc...). Eu gostaria de saber dos colegas se é possível tratar estes caracteres "estranhos" na STX, ou seria possível implementar estes comandos de gaveta e redução Z na sweda normal.

Obrigado pela atenção,

Rossine.

  • Fundadores
Postado

O ideal é completarmos a classe SwedaSTX, que é bem mais rápida que a classe Sweda...

Não compreendi corretamente o problema... quais informações estão com valor incorreto ?

Seria possível enviar um LOG do ACBrMonitor ressaltando os problemas ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

ivan,

Você também não informou sua versão de ECF. Acho que é importante saber...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Eu não entendi o erro de caracteres estranhos...

Eu homologuei o PAF com usando essa classe.

Parece ser problema de charset entre o monitor e a classe.

:(

Se eu puder ajudar estou a disposição.Coloque os logs pra gente ver ( acbr e monitor)

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Olá pessoal,

Primeiramente obrigado pelo interesse de todos. Vou pegar em um cliente meu que está ocorrendo o problema com a data do movimento.

Em relação aos caracteres estranhos, eu os vejo no retorno do comando "ativar". O retorno deste comando está sendo:

OK: l34L0001C10002360c2l34+0000AC˜’€€L1~

E na tela do debug do acbr é retornado: (Observem que o mesmo comando "Ativar" tem retornos diferentes)

ECF.Ativar

OK: c34I0001SWEDA .IF ST200 +ECF-IF 011 01.00.01 EÞc34+0000AC˜’€€I1r

ECF.NumSerie

OK: 00000000000000000001

ECF.Aliquotas

OK: T01 T17,00|T02 T5,00|T03 T7,00|T04 T10,00|T05 T12,00|T06 T18,00|S01 S1,00|S02 S10,00|S03 S5,00|S04 S15,00|S05 S2,50

ECF.CarregaAliquotas

OK: T01 T17,00|T02 T5,00|T03 T7,00|T04 T10,00|T05 T12,00|T06 T18,00|S01 S1,00|S02 S10,00|S03 S5,00|S04 S15,00|S05 S2,50

ECF.DataHora

OK: 12/04/11 15:50:36

ECF.Desativar

OK:

ECF.Ativar

OK: l34L0001C10002360c2l34+0000AC˜’€€L1~

ECF.NumSerie

Em relação aos comandos de gaveta, usando a impressora sweda, o comando "AbreGaveta" eu consigo abrir a gaveta normalmente mas o comando de teste para ver o status da gaveta "GavetaAberta" sempre me retorna .T., mesmo com a gaveta fechada.

Eu prefiro usar a SwedaSTX pois realmente ela é mais rápida que a Sweda normal. De todos meus testes aqui estes foram os problemas que detectei com a STX:

1) Comando Ativar -> Caracteres estranhos

2) Comando GavetaAberta -> Sempre retorna TRUE

3) DataMovimento -> Pegando data anterior (Vou pegar o log em meu cliente)

Estou usando:

- Acbrmonitor for lazarus, que compilo aqui

- Versão: ACBr Monitor Ver.0.9.1a - ACbr: 0.9.0a

- Esquema de troca de arquivos:

Monitorando Comandos TXT em: C:\ACBrMonitor\ENT.TXT

Respostas gravadas em: C:\ACBrMonitor\SAI.TXT

Log de comandos será gravado em: C:\ACBrMonitor\LOG.TXT

Obrigado,

Rossine.

  • Fundadores
Postado

Isso é normal... lembre-se que nem todos os métodos precisam ter um retorno significativo... (valor após o OK:)

o ACBrMonitor irá retornar exatamente o que foi lido do ECF, para o caso de você fazer a sua própria interpretação do protocolo do ECF...

Exemplo, no método "ECF.Ativar", tudo o que importa é reconhecer se os 3 primeiros caracteres do retorno são "OK:"

Já no método "ECF.NumSerie" o retorno é significativo, então a resposta já vem interpretada pelo ACBrMonitor

OK: 00000000000000000001

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

OK Daniel, entendi. Irei tratar aqui se na string retornada no comando "Ativar", contém as palavras "OK" ou "ERRO".

Obrigado pelo retorno,

Rossine.

Postado

sobre a gaveta:

O 3º bit do 5º byte do comando 34 tem vai ser 0 para fechada e 1 para aberta.

O TestBit testa o "n" bit do byte e retorna true para 1(ligado) e false para 0(desligado).

O comando parece estar correto, só não tenho certeza se no testbit tem que ser passado no segundo parametro o valor 2 ou 3.

Eu sei que é o terceiro bit, a contagem começa do zero, então parece estar correto.


function TACBrECFSwedaSTX.GetGavetaAberta: Boolean;

Var RetCmd : AnsiString ;

begin

  Result := False ;

  RetCmd := EnviaComando( '34' ) ;

  Sinalizadores := copy(RetCmd,12,5) ;

  if (copy(RetCmd,3,2) <> '34') or (Length(RetCmd) < 18) then

     Result := TestBit( Ord(RetCmd[12]), 2 ) ;

end;

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Bom dia Fernando,

Veja os retornos nos comandos de abrir a gaveta e do status dela.

Na tela do debug do ACBR me aparece assim:

ecf.abregaveta

OK: 911+0000AA??

ecf.gavetaaberta

OK: False

...e no LOG.TXT aparece assim:

ecf.abregaveta

OK: 911+0000AA‡€‚€€–

ecf.gavetaaberta

OK: False

Já no ECFTESTE.exe me aparece assim:

Ativar

[sTX]/56+0000AA[135][128][130][128][128][ETX][149]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]134+0000AA[135][128][130][128][128][ETX][147]

- + - + - + - + - + - + - + - + - + - + - + -

AbreGaveta

[sTX]311+0000AA[135][128][130][128][128][ETX][144]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]534+0000AA[131][128][130][128][128][ETX][147]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]734+0000AA[135][128][130][128][128][ETX][153]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]934+0000AA[135][128][130][128][128][ETX][155]

- + - + - + - + - + - + - + - + - + - + - + -

AbreGaveta

[sTX];11+0000AA[135][128][130][128][128][ETX][152]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]=34+0000AA[131][128][130][128][128][ETX][155]

- + - + - + - + - + - + - + - + - + - + - + -

Gaveta Aberta: NAO

[sTX]?34+0000AA[131][128][130][128][128][ETX][157]

- + - + - + - + - + - + - + - + - + - + - + -

Obrigado pela atenção,

Rossine.

  • Membros Pro
Postado

Olá Fernando,

Eu enviei para a impressora o comando "11" e o Acbr abriu a gaveta. Enviei assim:

ECF.EnviaComando(11)

OK: P11+0000AA??

Eu testei enviando o comando 34 e os retornos parecem ser sempre iguais: Veja que sempre retorna: "34+0000AA??"

Testes com a gaveta fechada:

ECF.EnviaComando(34)

OK: W34+0000AA??

ECF.EnviaComando(34)

OK: X34+0000AA??

ECF.EnviaComando(34)

OK: Y34+0000AA??

ECF.EnviaComando(34)

OK: Z34+0000AA??

ECF.EnviaComando(34)

OK: [34+0000AA??

Testes com a gaveta aberta:

ECF.EnviaComando(34)

OK: d34+0000AA???

ECF.EnviaComando(34)

OK: e34+0000AA???

ECF.EnviaComando(34)

OK: f34+0000AA???

ECF.EnviaComando(34)

OK: g34+0000AA???

ECF.EnviaComando(34)

OK: h34+0000AA???

Testes com a gaveta fechada:

ECF.EnviaComando(34)

OK: i34+0000AA???

ECF.EnviaComando(34)

OK: j34+0000AA???

ECF.EnviaComando(34)

OK: k34+0000AA???

ECF.EnviaComando(34)

OK: l34+0000AA???

Talvez usando o "ECF.EnviaComando" eu consiga pegar este retorno, mas qual seria o código do comando para pegar o retorno da gaveta ? Onde vejo uma tabela com os códigos destes comandos ?

Obrigado,

Rossine.

Postado

De uma olhada na página 10 do manual

Edit: Cara, o retorno com a gaveta aberta ou fechada está sendo o mesmo... Estranho.

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Membros Pro
Postado

Boa tarde Fernando,

Eu testei aqui usando o acesso direto a convecf.dll com o comando ECF_VerificaEstadoGaveta( @cRet ) para ver se era algum problema na impressora ou gaveta, mas o retorno é feito corretamente, ou seja, 0 ou 1.

Sigo investigando, obrigado,

Rossine.

  • Membros Pro
Postado

Boa tarde Daniel,

Eu testei com o ecfteste.exe e agora está retornando corretamente o status da gaveta :D O problema é que quando eu clico em "salvar" no acbrmonitor ele abandona a execução e não retorna para aquela tela que tem o botão minimizar e com isto não consigo enviar nenhum comando mais. Eu testei criando o arquivo c:\acbrmonitor\ENT.TXT e não retorna o SAI.TXT. Caso com você não esteja ocorrendo isto, poderia me fornecer o seu acbrmonitor.exe e ecfteste.exe por favor ?

Obrigado pela solução,

Rossine.

  • Membros Pro
Postado

Boa Noite Daniel,

Agora ficou beleza o status da gaveta :D

Sobre a data do movimento, ainda está retornando a data errada. Hoje aqui está aparecendo 08/04/11 sendo que a data da impressora é 13/04/11. Veja o LOG:

ECF.NumECF

OK: 001

ECF.DataHora

OK: 13/04/11 20:08:50

ECF.ModeloStr

OK: SwedaSTX

ECF.DataMovimento

OK: 08/04/11

ECF.Porta

OK: COM1

ECF.NumCupom

OK: 004702

ECF.Estado

OK: estLivre

ECF.Ativo

OK: True

Está ocorrendo um erro aleatório aqui também quando vou ativar o acbr

ERRO: Erro retornado pela Impressora: SwedaSTX

Erro (0193) Falha de comunicação na transmissão das informações

Será que isto pode estar relacionado ao timeout que setei aqui ?

Obrigado pela nova versão do acbrmonitor,

Rossine.

  • Este tópico foi criado há 3237 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.