Mais tempo Lendo Porta Serial

Delphi

06/03/2006

Bom dia Galera, Utilizando o Componente ComPort eu envio uma informação para a porta mais quando o hardware envia um resposta utiliznado a função:
ComPorta.ReadStr(Resposta, count);
ele as veses não consegue pegar todo o contedudo da variavel de responsta ex: se o equipamento me responde ´2A2B2C2D´ na maioria das veses ele so pegar a ´2A2B2C´ OU ´C2D´ como fasso para ele ficar mais tempo lendo a porta exemple quando excrever para a porta ele ler por 3 segundos a porta. como se fosse um timeOuts na porta.


Marcal

Marcal

Curtidas 0

Respostas

Marcal

Marcal

06/03/2006

Galera e bem simples acho q e so um alinha ou ajuste no componente que não estou achando. um TimeOuts de leitura na porta quero q ele fique 3 segundo lendo a porta


GOSTEI 0
Kitsystem

Kitsystem

06/03/2006

Vc tera que criar uma varivel Global e apenas zerar a mesma qdo todo o conteudo chegar

Var sStr: String;


Evento
sStr:= sStr +ComPorta.ReadStr(Resposta, count);


ai vc monta um protocolo que sabe qdo a string global esta completa e a utiliza e depois já zera ela para a proximo leitura


GOSTEI 0
Marcal

Marcal

06/03/2006

Certo Vinicios mais e impossivel eu criar um protocolo para checar se a variavel esta completa pq eu posso receber n valores pela porta.

Eu fiz um jeito deu certo mais trava o sistema por alguns segundos o q não pode acontecer quando envio writeln() para a porta eu criei um For
conta de 1 a 70000 ai quando termina ele receber as informações correta pela porta. Só q desse jeito não pode ser feito.


GOSTEI 0
POSTAR