Ir para conteúdo
  • Cadastre-se

ACBrAbecsPinPad no Linux


Ver Solução Respondido por eliandro.may,
  • Este tópico foi criado há 148 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde.

Estou tentando testar o ACBrAbecsPinPad no Linux, mas, sempre que tento abrir a porta serial, retorna o erro "Communication error 9990: Unknown Error (9990)"

Alguém já usou este componente no Linux?

  • Moderadores
Postado

se eu não me engano, no linux tem que usar as portas "tty"

usando virtual box com centos 9 eu ativei com a porta "/dev/ttyACM0" mas isso foi no meu caso,

provavelmente vc vai precisar de permissão para acessar essa porta

  • Curtir 2
Postado

Obrigado pela resposta.

Você conseguiu utilizar o ACBrAbecsPinPad no Linux então?

Eu tenho ele conectado, ele cria o device "/dev/ttyACM0", inclusive alterei as regras do Linux para criar o device com permissão 666.

Em outras aplicações consigo comunicar certinho com o Pinpad. Só no meu teste com o ACBrAbecsPinPad que não vai.

Testei com a aplicação de exemplo que vem junto com o ACBR, e também deu este erro.

O único detalhe é que estou usando o Lazarus com compilador cross para gerar os binários no Windows e rodar no linux, todo o restante está funcionando, somente o ACBrAbecsPinPad  que me retorna este erro.

Lazarus_PinPad.png

  • Moderadores
Postado (editado)

acabei de testar com linux mint 21.3 e virtual box.

usando lazarus no windows com cross compile para linux

aqui funcionou. "no meu pc funciona. kkkkkkk"(desculpa a piadinha de programador)

pinpadOK.thumb.png.396a6555bc3d06d455c7dd83ea573ae2.png

 

Editado por datilas
Postado

Opa, maravilha, pelo menos eu sei que funciona.

Estava seguindo os fontes aqui, e ele acaba indo chamar as funções de serial na synaser.pas, e nela ele tenta  se referenciar ao device /dev/ttyS + o número da porta.

Como meus fontes estão atualizados, deve ser algum DEFINA que eu tenho errado.

Vou olhar mais. 

 

Postado
15 horas atrás, datilas disse:

acabei de testar com linux mint 21.3 e virtual box.

usando lazarus no windows com cross compile para linux

aqui funcionou. "no meu pc funciona. kkkkkkk"(desculpa a piadinha de programador)

pinpadOK.thumb.png.396a6555bc3d06d455c7dd83ea573ae2.png

 

Bom dia.

Obrigado @datilas, tentei bastante coisas aqui, e ainda nada.

Você compilou para x86_64?

Passou alguma definição em "Custom Options"?

  • Moderadores
Postado
10 minutos atrás, eliandro.may disse:

Bom dia.

Obrigado @datilas, tentei bastante coisas aqui, e ainda nada.

Você compilou para x86_64?

Passou alguma definição em "Custom Options"?

aa.thumb.png.3a79cb49ce5fdded8b9cc59e8cf2de54.png

nada em custom options

  • 2 meses depois ...
  • Solution
Postado

Solução.

Verifiquei aqui que o problema ocorria no lock feito no Linux no componente de terceiro chamado synser.pas.

Para corrigir o erro, mudei a linha 825 FLinuxLock := False; para FLinuxLock := True; do constructor TBlockSerial.Create;

Ficando assim

constructor TBlockSerial.Create;
begin
  inherited create;
  FRaiseExcept := false;
  FHandle := INVALID_HANDLE_VALUE;
  FDevice := '';
  FComNr:= PortIsClosed;               {HGJ}
  FInstanceActive:= false;             {HGJ}
  Fbuffer := '';
  FRTSToggle := False;
  FMaxLineLength := 0;
  FTestDSR := False;
  FTestCTS := False;
  FDeadlockTimeout := 30000;
  FLinuxLock := True;
  FMaxSendBandwidth := 0;
  FNextSend := 0;
  FMaxRecvBandwidth := 0;
  FNextRecv := 0;
  FConvertLineEnd := False;
  SetSynaError(sOK);
  FRecvBuffer := 4096;
  FLastCR := False;
  FLastLF := False;
  FAtTimeout := 1000;
  FInterPacketTimeout := True;
end;

 

  • Consultores
Postado
Em 09/12/2025 at 11:45, eliandro.may disse:

Solução.

Verifiquei aqui que o problema ocorria no lock feito no Linux no componente de terceiro chamado synser.pas.

Para corrigir o erro, mudei a linha 825 FLinuxLock := False; para FLinuxLock := True; do constructor TBlockSerial.Create;

Ficando assim

constructor TBlockSerial.Create;
begin
  inherited create;
  FRaiseExcept := false;
  FHandle := INVALID_HANDLE_VALUE;
  FDevice := '';
  FComNr:= PortIsClosed;               {HGJ}
  FInstanceActive:= false;             {HGJ}
  Fbuffer := '';
  FRTSToggle := False;
  FMaxLineLength := 0;
  FTestDSR := False;
  FTestCTS := False;
  FDeadlockTimeout := 30000;
  FLinuxLock := True;
  FMaxSendBandwidth := 0;
  FNextSend := 0;
  FMaxRecvBandwidth := 0;
  FNextRecv := 0;
  FConvertLineEnd := False;
  SetSynaError(sOK);
  FRecvBuffer := 4096;
  FLastCR := False;
  FLastLF := False;
  FAtTimeout := 1000;
  FInterPacketTimeout := True;
end;

 

é a biblioteca synapse feita em freepascal. entra no projeto lá deles e sugere a correção

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 4 semanas depois ...
  • Este tópico foi criado há 148 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.