Página 1 de 1
Comunicação Serial
Enviado: 23 Fev 2012 12:59
por supgaroto
Preciso fazer comunicação do meu programa com um aparelho Identificador de chamadas. Já fiz muitos testes usando os comandos CATOOLs mas não consegui nada. Tenho um manual com os protocolos de comunicação. O aparelho é IDC PC1000. Ele comunica usando porta serial. Estou disponibilizando o manual.
Comunicação Serial
Enviado: 24 Fev 2012 22:58
por rochinha
Amiguinho,
Se voce der uma pesquisada aqui no forum por bina+vagucs irá encontrar algo a respeito inclusive com informações sobre um resistor que vc terá de acoplar para que o sinal tenha mais efeito.
Comunicação Serial
Enviado: 24 Fev 2012 23:29
por supgaroto
Não estou querendo fazer isso ligando direto no moldem. Estou usando um aparelho chamando IDC PC1000 ele recebe o sinal da linha telefonica e transfere para o pc via serial ou usb. No meu caso estou preciso com mais urgencia Serial.
Comunicação Serial
Enviado: 25 Fev 2012 01:28
por rochinha
Amiguinho,
Encontre os tópicos com a mesma chave que passei, lá voce encontra também informações sobre a IOLib.
Para Clipper é uma das mais simples de implementar.
Comunicação Serial
Enviado: 26 Fev 2012 16:14
por supgaroto
Não consegui achar nada que possa me ajudar!!
Estou usando essa função que é a mesma que uso para receber informações da balança:
Me ajudem a encontrar onde esta o erro! Pq se é só ler a porta serial, essa função deveria funcionar ou estou enganado o identificador de chamada necessita de algum comando pra enviar a informação pra porta serial?
Código: Selecionar todos
conta=0
cappeso=.f.
xPeso := ""
do while .t.
com_close(1)
com_open(1, 1024, 1024)
com_init(1, 4800, "N", 8, 1)
com_hard(.f.)
millisec(500)
cinput := com_read(1)
if empty(cinput)
inkey(.1)
conta++
else
if substr(cinput,1,1)=chr(2)
xpeso:=substr(cinput,2,20)
cappeso=.t.
exit
endif
inkey(.1)
conta++
endif
? xPeso
enddo
com_close(1)
if cappeso=.t.
Alert("NÆo deu certo")
else
alert("ok "+XPeso)
endif
return(.t.)
Comunicação Serial
Enviado: 26 Fev 2012 18:25
por rochinha
Amiguinho,
Se este código funciona com a balança não mexa.
Mas voce deve procurar não funções desta biblioteca de funções de comunicação outras funções de configurações como as pedidas no manual.
O manual diz:
Como o antigo, só usa TX e RX, mas para que o cabo funcione é necessário, que se deixe o DTR ativado e o RTS desativado.
A comunicação é feita em 4800,n,8,1.
Para iniciar qualquer comunicação, o PC deve 'enviar' um BREAK...
Voce vai precisar setar DTR e RTS além de seguir a risca os comandos de ativação.
A
IOLib possui estes comandos, veja no
manual.
Faça uma busca no forum por
IOLib garanto que irá encontrar mais dicas.
Comunicação Serial
Enviado: 27 Fev 2012 08:54
por supgaroto
Uff!!
Valeu Rochinha!
Ajudou muito consegui resolver o problema!
Comunicação Serial
Enviado: 26 Mar 2012 11:23
por roberson
Ola estou com mesmo problema.
tenho uma balança da Toledo portanto não teria como postar esse codigo corrigido para que eu tenha uma base no que você fez?
grato.
Comunicação Serial
Enviado: 27 Mar 2012 01:55
por Clipper
Prezado Colega
Uso balanças Toledo Modelo Prix III em meu sistema, veja abaixo um exemplo que funciona perfeitamente :
Código: Selecionar todos
*-------------------*
FUNCTION CHAMABAL()
*-------------------*
COM_CLOSE(1)
COM_OPEN(1, 1024, 1024)
COM_INIT(1, 9600, "N", 8, 1)
COM_HARD(.F.)
CONTA=0
CAPPESO=.F.
PESO=0
DO WHILE CONTA<50
COM_SEND(1,CHR(5))
INKEY(.1)
CINPUT:=COM_READ(1)
IF EMPTY(CINPUT)
INKEY(.1)
CONTA++
ELSE
IF SUBSTR(CINPUT,1,1)=CHR(2)
PESO=VAL(SUBSTR(CINPUT,2,6))
CAPPESO=.T.
EXIT
ENDIF
INKEY(.1)
CONTA++
ENDIF
ENDDO
COM_CLOSE(1)
KILO=SUBSTR(STR(PESO,5),1,2)
GRAMAS=SUBSTR(STR(PESO,5),3,3)
PESOC=KILO+"."+GRAMAS
PESO=VAL(PESOC)
IF PESO<0.100 .AND. PESO>0.09
PESOC="0.0"+(LTRIM(GRAMAS))
ELSEIF PESO<0.010
PESOC="0.00"+(LTRIM(GRAMAS))
ENDIF
PESO=VAL(PESOC)
ITQTD=PESO-PTAR
PRECO=ITUNI*ITQTD
IF CAPPESO=.F.
MSG("Falha na captura do peso !",1,2)
ENDIF
RETURN(.T.)
Observações :
1 - No meu caso utilizo as funções de comunicação da Clipper Tools Lib, mas se preferir basta adaptar para a IO.LIB.
2 - Lembrando que você deverá configurar a balança e o adaptar o código acima conforme sua necessidade. No caso acima está para uso com o protocolo PR3 da Toledo.
Até logo.
Marcelo
Comunicação Serial
Enviado: 04 Abr 2012 10:33
por roberson
ok.
vou configurar a balnaça e fazer testes.