Ir para conteúdo
  • Cadastre-se

dev botao

Data e Hora SB em branco


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

Recommended Posts

  • Consultores

Não está usando o emulador?

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você está falando de Epson ou Bematech ??

A classe do ACBr, o protocolo e Sw.Básico do ECFs é completamente diferente... O que funciona para um pode não ser o mesmo para o outro...

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.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Flavio,

O que o Daniel quis dizer é que não adianta testar uma funcionalidade do ACBrECF de uma impressora em outra.

Teste o uso desse ECF específico que está dando problema com a dll.

Se não funcionar nem com a DLL da Bematech, o problema deve ser no ECF.

Mas se funcionar, anexe aqui o log do ACBrECF como o Régys pediu.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • 8 meses depois ...

  Olá para todos,

  Aqui na empresa em que trabalho adquirimos recentemente uma impressora Epson TM-T81 FBIII  e o problema da hora do software basico ficar zerado eu consegui resolver copiando a mesma codificação da impressora bematech,

 abaixo segue o codigo para que seja feito a modificação no repositório, no meu teste funcionou perfeitamente.

function TACBrECFEpson.GetDataHoraSB: TDateTime;
{Var
  DtStr, HrStr : AnsiString ; }
Var Linha, LinhaVer, DtHrStr : AnsiString ;
    Linhas : TStringList;
    I, CRZ :Integer;
    AchouBlocoSB : Boolean ;
begin
 { EpsonComando.Comando := '0402' ;
  EnviaComando ;

  DtStr := EpsonResposta.Params[8] ;
  HrStr := '000000' ;
  { Atualmente não tem informações de como pegar a hora por comando direto,
    tem que utilizar a mesma forma que a Bemateh realizar a partir da LMF.
    A ser implementado.... }

  {Result := EncodeDateTime( StrToInt(copy(DtStr, 5,4)),   // Ano
                            StrToInt(copy(DtStr, 3,2)),   // Mes
                            StrToInt(copy(DtStr, 1,2)),   // Dia
                            StrToInt(copy(HrStr, 1,2)),   // Hora
                            StrToInt(copy(HrStr, 3,2)),   // Min
                            StrToInt(copy(HrStr, 5,2)),   // Seg
                            0 ); }
  Result := 0.0;

  // verificar se a redução Z está pendente e não fazer se estiver
  // porque acontecerá erro, conforme consulta ao atendimento da bematech
  if Estado in [estLivre] then
  begin
    Linhas := TStringList.Create;

    try
      CRZ := StrToIntDef(NumCRZ, 1) ;
      LeituraMemoriaFiscalSerial(CRZ, CRZ, Linhas);

      I := 0 ;
      AchouBlocoSB := False;
      while (not AchouBlocoSB) and (I < Linhas.Count) do
      begin
         Linha := Linhas[I] ;
         AchouBlocoSB := (pos('SOFTWARE B', Linha ) > 0) ;
         Inc( I ) ;
      end ;

      Linha    := '';
      LinhaVer := '';
      while AchouBlocoSB and (I < Linhas.Count) and (Linha = LinhaVer) do
      begin
         Linha := Trim(Linhas[I]) ;
         if (Linha <> '') then
         begin
            if ( StrIsNumber( copy(Linha,1,2) ) and ( copy(Linha,3,1) = '.' ) and
                 StrIsNumber( copy(Linha,4,2) ) and ( copy(Linha,6,1) = '.' ) and
                 StrIsNumber( copy(Linha,7,2) ) ) then
               LinhaVer := Linha;
         end ;

         Inc( I ) ;
      end ;

      if LinhaVer <> '' then
      begin
        // 01.00.01                    25/06/2009 21:07:40
        I := pos('/', LinhaVer ) ;
        DtHrStr := copy(LinhaVer, I-2, 10 ) ;
        I := pos(':', LinhaVer ) ;
        DtHrStr := DtHrStr + ' ' + copy(LinhaVer, I-2, 8 ) ;

        Result := StringToDateTime( DtHrStr, 'dd/mm/yyyy hh:nn:ss' ) ;
      end;
    finally
      Linhas.Free ;
    end ;
  end;
end;
Editado por Anizair Lopes
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Notei que essa rotina já existia em outras 2 classes... portanto fiz um Refactoring

 

-- ACBrECF -- [*] Refactoring em GetDataHoraSB, efetando os modelos: ecfBematech, ecfFiscNET,
    ecfEpson. Usando uma única rotina para captura da Data e Hora do Sw.Básico
    através da Captura de informações da Leitura da Memoria Fiscal.   (por: DSA)

 

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.

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • Fundadores
-- Ativando a porta: COM7
-- 10:52:00:203 DataHoraSB
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   10:52:00:335 RX <- ACK = 6 Falha: 0
   10:52:00:435 RX <- $[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM7
-- Ativando a porta: COM7

não há nenhum travamento no Log... e o comando de DataHoraSB obteve resposta..

 

 

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.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3044 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.

The popup will be closed in 10 segundos...