Página 1 de 1

apanhando da serial

Enviado: 09 Jul 2010 12:40
por Grace
Estou perdida... nao estou entendo se o meu problema esta no compilador ou se é algum detalhe que nao estou enxergando... ou...

O que eu tenho aqui para fazer os testes

um pc com windows xt e o seguinte:

um executavel chamado diagtoledo que mostra que a balanca e a comunicacao esta funcionando

quando seto com1, 4800, 8, n, 1 ele fica pegando o peso direto - le milhares de vezes enquanto o programa roda
se passo para com1, 4800, 7, n, 1 ele pega o peso bonitinho uma vez só.

bom, agora o que estou fazendo

- usando clipper 5.2e, ct.lib (do catools 52) que baixei do site buzinello por aqui

fiz o seguinte (perceba as apelacoes dos prints e wait) - me basei num fonte que baixei daqui tb

Ah - tb tentei compilar com a ctp.lib mas apareceme uma mensagem de erro apos linkeditar - _D16ProtectedPtr - e nao funciona...Entao desisti e voltei ao ct.lib

Código: Selecionar todos

*p1.prg
texto="oi"
peso=500
*
peso=chamabal() 
? 
? "------------"
?  texto
?  peso 
return
Function CHAMABAL 
 texto="passei aqui"
 COM_CLOSE(1) 
 COM_OPEN(1, 1, 1) 
 COM_INIT(1, 4800, "N", 8, 1) 
 COM_HARD(.F.) 
 W_PESO:="" 
 W_LETRA:="" 
 wvez=1
 DO WHILE .t.  &&wvez<= 5000
    IF COM_COUNT(1) > 0 
       W_LETRA := COM_READ(1, 1) 
       IF !W_LETRA$"0123456789" 
          W_PESO := "" 
       ELSE 
          W_PESO = W_PESO+W_LETRA 
       ENDIF 
    ENDIF 
    
   wvez++
   ? "letra ", W_letra
   ? "w_peso", w_peso
   ? "com_count", com_count(1)
   WAIT
    IF LEN(ALLTRIM(W_PESO)) = 5 
*       EXIT 
    ENDIF 
 ENDDO 
 
 W_PESO = ALLTRIM(W_PESO) 
 COM_CLOSE(1) 
 Return(VAL(W_PESO)) 



Tem alguma ideia do que eu possa fazer?

Re: apanhando da serial

Enviado: 09 Jul 2010 17:16
por rochinha
Amiguinha,

Pelo que pude perceber, ser código sofreu muitas modificações e voce não esta temporizando as respostas afim de pegar um conteudo plausivel.

viewtopic.php?f=1&t=8487&p=47551&hilit=com+open

Neste tópico encontramos uma leitura de balança usando as mesmas funções, mas com temporização das ações e critica do conteudo retornado.

Talvez voce não esteja dando o tempo necessário para que a porta retorne o conteudo e voce consiga pegar algum resultado.

Se for o caso use a IOLIB( http://www.vagucs.com.br/dwclipper/iolib.zip ) apesar de relatar casos de sucesso e critica em relação a CT.

Neste post voce encontra outra contribuição que usa a CT.

Leitura de equipamentos requer abertura, leitura, critica da leitura, tratamento e fechameto.

A velocidade de leitura de sua função pode fazer com que o conteudo venha pulado ou seja, se voce estiver lendo a sequencia 123456789 e sua rotina for mais rapida que o recebimento voce obterá algo como 13589, portanto controle o tempo de leitura e intercale entre elas.

Re: apanhando da serial

Enviado: 09 Jul 2010 17:24
por Toledo
Oi Grace, dê uma olhada no tópico abaixo:

https://pctoledo.org/forum/viewto ... p=189#p189

A lib IOLIB segue em anexo.