AYUDA CON HBCOMM
Moderator: Rathinagiri
AYUDA CON HBCOMM
Hola a todos, por favor podrian audarme con la libreria hbcomm, soy nuevo en esto, gracias
- danielmaximiliano
- Posts: 2612
- Joined: Fri Apr 09, 2010 4:53 pm
- Location: Argentina
- Contact:
Re: AYUDA CON HBCOMM
Hola :eljecho24 wrote:Hola a todos, por favor podrian audarme con la libreria hbcomm, soy nuevo en esto, gracias
para una mejor ayuda mecesitariamos saber que necesitas manejar con la libreria HBCOMM, en Harbour hay un pequeño y simple ejemplo para leer un puerto, la cantidad de bits la maneja la variable nBuffer. la funcion fReceive() es la necesaria para leer datos desde el mismo.
yo leo un scanner de barras cada determinado tiempo el puerto y capturo los datos del mismo. eso solamente cuando la aplicacion abre "Ventas" .
Code: Select all
* (fixed, adapted to CLI, translated, formatted)
* Copyright 2006 Marcelo Torres <lichitorres@yahoo.com.ar>
* www - http://harbour-project.org
*
*/
#require "hbcomm"
STATIC s_nHandle
STATIC s_lConnected := .F.
PROCEDURE Main()
LOCAL nOption
DO WHILE .T.
? ""
? "Select test:"
? "O) Open"
? "C) Close"
? "S) Send"
? "R) Receive"
? "Q) Quit"
? "> "
nOption := Inkey( 0 )
?? Chr( nOption )
SWITCH Upper( Chr( nOption ) )
CASE "O" ; FConnect() ; EXIT
CASE "C" ; FDisconnect() ; EXIT
CASE "S" ; FSend() ; EXIT
CASE "R" ; FReceive() ; EXIT
CASE "Q" ; RETURN
ENDSWITCH
ENDDO
RETURN
STATIC PROCEDURE FConnect()
LOCAL cCom := "COM1"
LOCAL nBaudeRate := 19200
LOCAL nDatabits := 8
LOCAL nParity := 0 /* none */
LOCAL nStopbit := 1
LOCAL nBuff := 8000
s_nHandle := INIT_PORT( cCom, nBaudeRate, nDatabits, nParity, nStopbit, nBuff )
IF s_nHandle > 0
? "Connecting..."
s_lConnected := .T.
OUTBUFCLR( s_nHandle )
ELSE
? "Could not open connection"
s_lConnected := .F.
ENDIF
RETURN
STATIC PROCEDURE FDisconnect()
s_lConnected := .F.
UNINT_PORT( s_nHandle )
RETURN
STATIC PROCEDURE FSend()
LOCAL cToSend
ACCEPT "Enter string to send: " TO cToSend
IF s_lConnected .AND. ! Empty( cToSend ) .AND. ISWORKING( s_nHandle )
OUTCHR( s_nHandle, cToSend )
ELSE
? "Cannot send data"
ENDIF
RETURN
STATIC PROCEDURE FReceive()
LOCAL cReceive
LOCAL nSize
nSize := INBUFSIZE( s_nHandle )
IF nSize > 0
cReceive := Space( nSize )
INCHR( s_nHandle, nSize, @cReceive )
? ">>", Left( cReceive, nSize )
ENDIF
RETURN
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*
Saludos / Regards
DaNiElMaXiMiLiAnO
Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*
Saludos / Regards
DaNiElMaXiMiLiAnO
Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO