Mais tempo Lendo Porta Serial
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.
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
Curtidas 0
Respostas
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
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
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
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.
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