Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Abrir puerto serie con VFP 7

1,438 views
Skip to first unread message

Luis Miguel

unread,
Feb 27, 2003, 3:45:06 AM2/27/03
to
Hola a todos,
Necesito abrir con visual foxpro el puerto serie para leer datos de una
balanza, alguien sabe por donde puedo empezar.


Gracias

Luis Miguel
Madrid. España


Antonio Muñoz de Burgos y Caravaca

unread,
Feb 27, 2003, 6:34:49 AM2/27/03
to
Hola Luis :
 
Para controlar el puerto serie tienes el control oleClass : "MSCommLib.MSComm 1" el fichero es el ocx: "MSCOMM32.OCX"
Entiendo que este control el que necesitas MSComm proporciona comunicaciones serie para que su aplicación pueda transmitir y recibir datos a través de un puerto serie.
 
Puedes encontrar información totalmente detallada en MSDN onLine.
 
Algunas de las propiedades para su funcionamiento:
*
* [1] Número del puerto.
*
* objeto.CommPort = Valor numérico del puerto.
*
* [2] Configuración del puerto.
*
* objeto.Settings = Cadena tipo string con la configuración del puerto (Velocidad,Paridad,Bits de datos,Bits de parada)
*
* [3] Apertura y cierre del puerto.
*
* objeto.PortOpen = Valor lógico = .T (Abre el puerto) / Valor = .F. (Cierra el puerto)
*
* [4]  y por último para controlar los valores, tenemos
*
* objeto.CommEvent( ) = Eventos del puerto y La propiedad CommEvent contiene el código numérico del error o el evento real que ha generado el evento OnComm
* objeto.Input = Valor de entrada
*
Extracción de MSDN onLine

El control MSComm proporciona dos formas diferentes de tratamiento de las comunicaciones:

  • Las comunicaciones controladas por eventos son un método muy poderoso para el tratamiento de interacciones con el puerto serie. En muchas situaciones deseará que se le notifique cuándo tiene lugar un evento; por ejemplo, cuándo llega un carácter o cuándo se produce un cambio en las líneas de Detección de portadora (CD) o Petición de envío (RTS). En tales casos se utiliza el evento OnComm del control MSComm para interceptar y tratar estos eventos de comunicaciones. El evento OnComm también detecta y trata los errores en las comunicaciones. En la propiedad CommEvent puede ver una lista completa de todos los eventos y errores posibles en las comunicaciones.
  • También puede sondear los eventos y errores si comprueba el valor de la propiedad CommEvent después de cada función crítica de su programa. Esta alternativa es preferible si la aplicación es pequeña y autónoma. Por ejemplo, si está escribiendo un marcador telefónico sencillo, no tiene sentido generar un evento después de recibir cada carácter, ya que los únicos caracteres que piensa recibir son las respuestas de aceptación que envía el módem.

Cada uno de los controles MSComm que use corresponde a un puerto serie. Si necesita tener acceso a más de un puerto serie en su aplicación, debe usar más de un control MSComm. La dirección del puerto y la dirección de la interrupción pueden cambiarse desde el Panel de control de Windows.

Aunque el control MSComm tiene muchas propiedades importantes, hay algunas con las que debe familiarizarse primero.

Propiedades Descripción
CommPort Establece y devuelve el número del puerto de comunicaciones.
Settings Establece y devuelve la velocidad en baudios, paridad, bits de datos y bits de parada en forma de cadena.
PortOpen Establece y devuelve el estado de un puerto de comunicaciones. También abre y cierra un puerto.
Input Devuelve y quita caracteres del búfer de recepción.
Output Escribe una cadena de caracteres en el búfer de transmisión.

El evento OnComm se genera siempre que cambia el valor de la propiedad CommEvent e indica que se ha producido un evento o un error en la comunicación.
objeto_OnComm ()
El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
La propiedad CommEvent contiene el código numérico del error o el evento real que ha generado el evento OnComm. Tenga en cuenta que si asigna a las propiedades RThreshold o SThreshold el valor 0, se desactiva la interceptación de los eventos comEvReceive y comEvSend, respectivamente

Constantes de protocolo de conexión

Constante Valor Descripción
comNone 0 Sin protocolo.
comXonXoff 1 Protocolo XON/XOFF.
comRTS 2 Protocolo RTS/CTS (Petición de envío/Preparado para enviar).
comRTSXOnXOff 3 Ambos protocolos (RTS y XON/XOFF).

Constantes de OnComm

Constante Valor Descripción
comEvSend 1 Evento Send.
comEvReceive 2 Evento Receive.
comEvCTS 3 Cambio en la línea Preparado para enviar (CTS).
comEvDSR 4 Cambio en la línea Equipo de datos preparado (DSR).
comEvCD 5 Cambio en la línea Detección de portadora (CD).
comEvRing 6 Detección de llamada.
comEvEOF 7 Fin de archivo.

Constantes de errores

Constante Valor Descripción
comEventBreak 1001 Recibida señal de interrupción
comEventFrame 1004 Error de trama
comEventOverrun 1006 Pérdida de información en puerto
comEventRxOver 1008 Desbordamiento del búfer de recepción
comEventRxParity 1009 Error de paridad
comEventTxFull 1010 Búfer de transmisión lleno
comEventDCB 1011 Error inesperado al recuperar Bloque de control de dispositivos (DCB) para el puerto

Constantes de InputMode

Constante Valor Descripción
comInputModeText 0 (Predeterminado) Los datos se recuperan como texto mediante la propiedad Input.
comInputModeBinary 1 Los datos se recuperan como datos binarios mediante la propiedad Input.

Espero que te sea de ayuda.
 
Saludos, Antonio Muñoz de Burgos
 
 
"Luis Miguel" <luis...@terra.es> escribió en el mensaje news:3e5dd004$0$19305$afc3...@news.easynet.es...

Roger Leonardo

unread,
Feb 27, 2003, 10:14:53 AM2/27/03
to
*OleBascula.DTREnabled=.t.
*OleBascula.RTSEnabled=.f.
*OleBascula.Settings=9600,e,7,2

With THISFORM.oleBascula && *** el nombre del objeto MSCOMM32
.portopen = .T.
.inputlen = 20
Thisform.cPeso.Value = 0.0
For x = 1 TO 8000
el_peso = .input
el_peso = RIGHT( el_peso, LEN( el_peso) - 1)
el_peso = VAL( LEFT( el_peso, 7))
If !Empty(el_peso)
Thisform.cPeso.Value = el_peso
Exit
Endif
Endfor
.portopen= .f.
Endwith


--

Saludos...
_________________________________
Roger W. Leonardo [RGRLeo]
El Salvador, Centro America (ADES) (痐反捶疮)
MSN : RGRLe...@Hotmail.com ( o o )

"Luis Miguel" <luis...@terra.es> wrote in message
news:3e5dd004$0$19305$afc3...@news.easynet.es...

> Madrid. Espa馻
>
>


Emanuel Villicaña

unread,
Feb 27, 2003, 6:56:47 PM2/27/03
to
Con fopen lo puedes abrir

x = fopen("com1.2",12)
fputs(x,"Hola")

--
Emanuel Omar Villicaña Villegas
Coordinador Regional México
http://www.mexico.portalfox.com/
----------------------------------------------------------------------------
--
"Proteje a Foxpro, usalo legalmente"
----------------------------------------------------------------------------
--
! no temas ir despacio, sólo teme no avanzar ¡


"Luis Miguel" <luis...@terra.es> escribió en el mensaje
news:3e5dd004$0$19305$afc3...@news.easynet.es...

0 new messages