Compartir a través de


Enviar al puerto serie mediante Mscomm32.ocx

En este artículo se presenta cómo enviar información al puerto serie mediante el control Mscomm32.ocx.

Versión original del producto: Visual FoxPro
Número de KB original: 139526

Resumen

En este artículo se describen las opciones necesarias para enviar datos al puerto serie mediante Mscomm32.ocx. Mscomm32.ocx se incluye con Microsoft Visual FoxPro Professional Edition. Se puede usar en equipos que ejecutan Microsoft Windows 95 y versiones posteriores de Windows.

Más información

Las propiedades usadas con más frecuencia para enviar datos al puerto serie mediante el control mscomm son las siguientes:

CommPort

La CommPort propiedad especifica el número de puerto de comunicaciones. Propiedad numérica que corresponde al puerto de comunicaciones. De forma predeterminada, esta propiedad se establece en 1 correspondiente a com1. Los valores válidos son 1, 2, 3 o 4, según los puertos serie instalados en el equipo y su configuración.

Configuración

La Settings propiedad configura la velocidad de baudios, la paridad, los bits de datos y los bits de detención para el puerto serie. La propiedad Settings es una cadena de caracteres que contiene valores separados por comas individuales. De forma predeterminada, la propiedad Settings es la siguiente: 9600,N,8,1 Esta propiedad corresponde a 9600 baud, sin paridad, 8 bits de datos y 1 bit de detención.

Los siguientes valores de velocidad de baudios son válidos: 110, 300, 600, 1200, 2400, 4800, 9600 (valor predeterminado), 14400, 19200, 28800, 38400, 56000, 57600, 115200, 128000, 256000.

PortOpen

La PortOpen propiedad especifica un valor lógico que controla si el puerto serie está abierto y activo. Una vez establecidas las propiedades anteriores para empezar a usar el puerto serie, puede establecer esta propiedad en true.

Salida

A la propiedad Output se le asigna la cadena de caracteres que se enviará al puerto serie. Para generar la cadena "Hola mundo" en el puerto serie después de establecer las propiedades anteriores, use el siguiente comando:

 myform.mycomm.output = "Hello World"

Otras propiedades que también pueden ser necesarias en función de la aplicación son las siguientes:

CommEvent

La CommEvent propiedad contiene un valor que representa el evento o errores de comunicaciones más recientes.

Sthreshold

La Sthreshold propiedad especifica el número mínimo de caracteres en el búfer de salida que se envían.

ContadorDeBúferDeSalida

El control OutBufferCount devuelve el número de caracteres que esperan en el búfer de transmisión. Esto siempre debe ser cero si la Sthreshold propiedad es cero. Si establece la OutBufferCount propiedad en cero, se borrará el búfer de transmisión.

OutBufferSize

La OutBufferSize propiedad especifica el tamaño del búfer de transmisión. De manera predeterminada, este búfer es de 512 bytes. Cuanto mayor sea el búfer de transmisión, menos memoria disponible para otras aplicaciones. Las tasas de baudios lentos y las cadenas de texto grandes enviadas al puerto serie podrían significar que necesita aumentar este valor.

A continuación se muestra un ejemplo que explica cómo configurar el control de comunicaciones y marcar el número de teléfono 555-1234 mediante los comandos estándar del Modem Hayes.

 PUBLIC ComForm
 ComForm = CREATEOBJECT('Form')
 ComForm.AddObject("Testcom","Olecontrol","MSCOMMLib.MSComm")
 ComForm.Testcom.CommPort = 2 && Use Comm2, The second Serial Port.
 ComForm.Testcom.Settings = "14400,N,8,1" && 14.4 Kbaud, No Parity,
 && 8 data Bits, 1 Stop Bit
 ComForm.Testcom.PortOpen = .T.
 ComForm.Testcom.Output = "ATDT555-1234" + chr(13) && Dialing the number
 * The chr(13) is needed to complete the modem command sequence
 ComForm.Testcom.PortOpen = .F.
 ***** End Code *****

Nota:

Si lo usa en una aplicación y, a continuación, distribuye la aplicación mediante el Asistente para la instalación de Visual FoxPro, es posible que vea el siguiente error al ejecutar la aplicación:

Código de error OLE del programa 0x80040112: no se encuentra la licencia adecuada para esta clase.