Abri este tópico para continuidade deste
viewtopic.php?f=1&t=9827&p=56382#p56382
a pedido do Leonardo.
Mário
leitura da porta serial via xhb
Moderador: Moderadores
Re: leitura da porta serial via xhb
Bom dia!
Uso em meu Pdv dois processo de leitura via serial:
1 - Utilizando Balancao Filizola ( BP 15)
2 - Utilizando Leitor Serial
Segue parte do codigo.
Frazato
sistema_jaf@hotmail.com.
Uso em meu Pdv dois processo de leitura via serial:
1 - Utilizando Balancao Filizola ( BP 15)
2 - Utilizando Leitor Serial
Segue parte do codigo.
Frazato
sistema_jaf@hotmail.com.
Código: Selecionar todos
@ 29, 58 get mquant picture "@E 9999.999" ;
When LerBalanca(mQuant,xProdePesado)== .t. .or. xPodeMultiplicar== .t.;
Valid LerBalanca(mQuant,xPodeMultiplicar)==.t. .and. mQuant > 0
Read
//------------------------------------------------------
Function LerBalanca(nPeso,lFazLeitura)
Local cPesoLido := 0
If lFazLeitura==.f.
Return .f.
Endif
If nPeso > 0
Return .t.
Endif
If Empty(cBalPorta)
Return .t.
Endif
cPort := cBalPorta
nBaudrate := nBalVelocidade
nDatabits := nBalBits
nParity := nBalParidade
nStopbits := nBalStopBits
nBuffersize := 1000
nHandle:= Init_Port( cPort, nBaudrate, nDatabits, nParity, nStopbits, nBuffersize )
If nHandle <= 0
alerta("Erro ao iniciar a porta de comunicacao !")
Return .f.
Endif
If IsWorking( nHandle )== .F.
Alerta("Favor configurar a porta serial !")
Return .f.
Endif
OutBufClr( nHandle )
//-- Enviar comando para iniciar a transmissao de dados para balanca MP
cBytesToWrite := Chr(5)
nCount := 1
OutChr( nHandle, cBytesToWrite, nCount )
//-- Aguarda um tempinho
Millisec(100)
cBuff := Space(10)
nChar := InBufSize( nHandle )
nLidos:= InChr( nHandle,nChar,@cBuff )
If nLidos > 0
*cPesoLido := Val(Substr(cBuff,2,5)) /1000
cPesoLido := Val(Substr(cBuff,2,6)) /1000
mQuant := cPesoLido
UnInt_Port( nHandle )
Return .t.
Endif
UnInt_Port( nHandle )
Return .f.
//---- Leiturade scanner serial SEAL NO CASO
cPort := cScan_Porta//'COM5 '
nBaudrate := nScan_Veloc//9600
nDatabits := nScan_Bists//8
nParity := nScan_Parid//0
nStopbits := nScan_BStop// 1
If ! Empty(cPort)
Set key -38 to LerPorScaner()
keysec(-38,0.1,-0.1,.t.) // Programa F10 a cada TEMPO segundos,
Endif
//---------------------------------------------------------
Function LerPorScaner()
Leitor_R232(@cScanRS232)
Return Nil
//------------------------------------------------------
Function Leitor_R232(cPor)
Local nBuffersize := 1000
Local nTentativa := 0
Local cString := ''
Local x := 0
Local nChar := 1
Local cBuff := Space(100) //14
If InBufSize(cPor) <= 0
Return
Endif
//OutBufClr( cPor )
While ( x++ <= 50 ) //50
InChr( cPor,nChar,@cBuff )
If Asc(cBuff)==13 .or. Asc(cBuff)==10
Exit
Else
cString+= Alltrim(cBuff)
Endif
If LastKey()==27
Exit
Endif
End While
If Len(cString) > 0
KeyBoard cString+Chr(13)
Endif
Return .t.
Editado pela última vez por Toledo em 04 Jun 2010 19:27, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: leitura da porta serial via xhb
E se for com Harbour pode usar a HBWIN, que tem na Contrib do Harbour que funciona que é uma beleza até mesmo pelo Terminal Service. Na pasta CONTRIB do harbour tem exemplos de uso.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql

