leitura da porta serial via xhb

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

leitura da porta serial via xhb

Mensagem por Mário Isa »

Abri este tópico para continuidade deste
viewtopic.php?f=1&t=9827&p=56382#p56382

a pedido do Leonardo.

Mário
frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Re: leitura da porta serial via xhb

Mensagem por frazato »

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.

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
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Re: leitura da porta serial via xhb

Mensagem por Mário Isa »

e qual a LIB que vc está utilizando ?
frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Re: leitura da porta serial via xhb

Mensagem por frazato »

Hbcomm.lib ( compilado com o xharbour 99.70 simples )

Frazato
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: leitura da porta serial via xhb

Mensagem por sygecom »

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
Responder