AYUDA CON HBCOMM

Topic Specific Tutorials and Tips.

Moderator: Rathinagiri

Post Reply
eljecho24
Posts: 1
Joined: Thu Apr 17, 2014 9:34 pm

AYUDA CON HBCOMM

Post by eljecho24 » Sun Apr 20, 2014 2:07 am

Hola a todos, por favor podrian audarme con la libreria hbcomm, soy nuevo en esto, gracias

User avatar
danielmaximiliano
Posts: 2166
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Has thanked: 177 times
Been thanked: 26 times
Contact:

Post by danielmaximiliano » Sun Apr 20, 2014 10:31 am

eljecho24 wrote:Hola a todos, por favor podrian audarme con la libreria hbcomm, soy nuevo en esto, gracias
Hola :
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
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`.HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. : +54901169026142
Telegram Name : DaNiElMaXiMiLiAnO

Post Reply