GARANTIR DESCONTO

Fórum Como se limpa o buffer da serial (Com1, com2, com3....) ? #310370

23/01/2006

0

Bom dia a todos. Tenho a seguinte função de leitura da serial:

variáveis públicas:
hComm: THandle;
bRead: array[0..255] of byte;
RetLeitor: LongBool;

Function TFprincipal.ReadComm : String;
var
BytesLidos: DWord;
i: Integer;
ReadStr: String;
begin
RetLeitor := ReadFile(hComm, bRead[0], 255, BytesLidos, nil);
if ord(RetLeitor) = -1 then
exit;
ReadStr := ´´;
If BytesLidos > 0 Then
For I := 0 To BytesLidos - 1 do
ReadStr := ReadStr + chr(bRead[i])
Else
FlushComm;
Result := ReadStr;
End;

Estou utilizando esta função para ler códigos q venham de um leitor serial a cada segundo. Para ler, funciona beleza. O problema é q se eu passar o código mais de uma vez ele acumula a leitura. Por exemplo:
se eu passar o produto 1 várias vezes fica assim: 001001001; e na verdade é para ser apenas 001.
Já tentei utilizar a função [b:ab217c879e]CancelIO(hcomm)[/b:ab217c879e], mas não funcionou.

Alguém conhece alguma função para limpar o buffer da serial?

Grato pela atenção.[b:ab217c879e][/b:ab217c879e][b:ab217c879e][/b:ab217c879e]


Turbo Drive

Turbo Drive

Responder

Posts

23/01/2006

Aroldo Zanela

Colega,

Na verdade nem li o seu código, pois minha proposta é indicar a utilização do Async32. Tenho total satisfação com estes componentes, pois alem de encapsular toda a complexidade é totalmente free: http://www.tmssoftware.com/ta32.htm


Responder

Gostei + 0

23/01/2006

Aroldo Zanela

Colega,

Oops!, foi mal, não é mais free. Acabei de entrar no site para ver as atualizações.


Responder

Gostei + 0

23/01/2006

Turbo Drive

Caro Aroldo, eu tenho este componente, o lance é q eu quero deixar minha aplicação o mais livre possível de componentes externos, sem mencionar q aprenderei um pouco mais sobre outras formas de comunicação.
Mesmo assim muito obrigado pela dica.


Responder

Gostei + 0

23/01/2006

Massuda

O jeito tradicional de limpar buffer de comunicação serial é ler até não encontrar mais caracteres recebidos.


Responder

Gostei + 0

23/01/2006

Turbo Drive

O grande problema é justamente por eles ainda existirem.
:( :cry: :oops:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar