Olá, bom dia pessoal.
Alguém sabe como Destravar essa infeliz dessa Catraca Henry
Estamos tentando em Delphi enviar o comando passado pelo "suporte" prá destravar ela, mas simplesmente não aciona. Essa maravilhosa catraca não tem um driver, nem uma DLL, tem q mandar comandos diretos na COM, uma graça.
Alguém tem alguma sugestão em HB prá comunicar diretamente na COM ? Quem sabe em HB vai...
Grato a todos.....
Nunca trabalhei com catracas, mas comunicação com portas COM sim, então, mesmo em Delphi, você precisa abrir e configurar a porta antes de enviar o comando, você está setando a configuração conforme o protocolo dela?
Você precisa setar: velocidade, paridade, comprimento de dados, bits de parada e comando.
Como é o protocolo da catraca?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Olá pessoal, bom dia.
Então, o suporte não sabe nada de programação, se faz de desentendido.
Apenas passa o comando que tem que enviar prá serial, mas não tem exemplos, driver, dll, nada.
Em Delphi, a sequencia é a seguinte:
------------------------------------------------
componente COMPORT
CODIGO NO ONACTIVE DO FORM
portacom:=´COM6´
ComPort1.Close;
ComPort1.Port:=trim(portacom);
ComPort1.BaudRate:=br115200;
ComPort1.StopBits:=sbOneStopBit;
ComPort1.DataBits:=dbEight;
ComPort1.Open;
if (ComPort1.Connected = false) // Verifica se a porta esta conectada
then begin
Application.Messagebox('Não Foi Possivel se Conectar a Porta! Verifique!','ATENÇÃO!',mb_OK+MB_ICONWARNING+MB_SYSTEMMODAL);
exit;
end;
if (ComPort1.Connected = True) // Verifica se a porta esta conectada
then begin
tempcatra:=5
vstr:='11+REON+00+1]'+'tempcatra'+'] L i b e r a d o]';
vstr:=vstr + #13#10;
ComPort1.WriteStr(vstr); // Enviando dados pela Serial
end;
--------------------------------------------------------------------------
Como seria em HB ? Já ví que seria usando COM_OPEN, COM_INIT, etc, mas não sei como fazer. No cliente é COM6, e aqui nos testes é COM2. A velocidade é 115200.
Tem como vc me ajudar amigo ?
Mas funciona somente para o xharbour? Pq tô usando o HB32 que o Toledo me ensinou.
Alguém teria algum comentário sobre a rotina do Delphi postada tb? Isso tb ajudaria. Toda ajuda é bem vinda...
procedure TForm1.Button1Click(Sender: TObject);
var count2 : integer;
begin
sleep(500);
if Comport1.Connected then begin
comport1.Close;
end;
ComPort1.Port := 'COM1';
Comport1.Connected := true;
Comport1.Open;
if Comport1.Connected then begin
timer1.enabled := true;
end;
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var count2 : integer;
begin
count2 := 1024;
ComPort1.ReadStr(Str,count2);
memo1.lines.add (Str);
end;
Também não sei qual é Lib do Harbour compatível com xHarbour. Não uso Harbour.
Me parece que na função em Delphi que você postou acima, está faltando informar a Paridade. Não sei se o Delphi assume o padrão. Outra coisa, é que não conheço Delphi, mas a variável tempcatraca é numérica, e você está somando com string. Porém, teoricamente em Harbour + HBCT.LIB, seria algo assim:
/*
Compilar usando: HBMK2 Nome_Exemplo -lhbct
*/
Function Main()
Local nComPorta := 1 // numero da porta COM sem o "COM", é numerico
Local nBaudRate := 115200
Local cParity := "N" // (E)ven, (O)dd, (M)ark, (S)pace, (N)one // verifique a paridade correta
Local nDataLength := 8 // 7 ou 8 // verifique também...
Local nStopBits := 2 // 1 ou 2 // verifique também...
Local tempcatra := "5"
Local cString := "'11+REON+00+1]'+'tempcatra'+'] L i b e r a d o]'" + Chr(13)+Chr(10)
// ou apenas:
// Local cString := "'11+REON+00+1]'+'tempcatra'+'] L i b e r a d o]'"
Clear Screen
If !Com_Open( nComPorta, 1024, 1024)
Alert( "Erro na abertura da Porta!" )
Return Nil
EndIf
Com_Init( nComPorta, nBaudRate, cParity, nDataLength, nStopBits )
Com_Send( nComPorta, cString )
Com_Close( nComPorta )
Return Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Grande Jairo, bom dia.
Muito obrigado por adaptar meus dados na sua rotina. Já implementei de imediato.
Mas tb não funcionou. Apenas um aplicativo da net chamado IONINJA funciona nela.
Outros aplicativos quaisquer tb não acionam.
O Suporte não entende nada de software e a ajuda é pouca. Trouxemos a catraca aq rsrs (absurdo) e esgotamos nossas possibilidades. Vamos ver se o fabricante consegue resolver remotamente. Se der certo, vou postar a solução aq prá ninguém passar o que nós estamos passando com essa catrada HENRY.