Cómo enviar al puerto serie mediante Mscomm32.ocx


Resumen


En este artículo se describen los valores necesarios para enviar datos al puerto serie mediante Mscomm32.ocx. Mscomm32.ocx se incluye con Microsoft Visual FoxPro Professional Edition. Se puede utilizar en los equipos en los que se ejecute Microsoft Windows 95 o una versión de Windows posterior.

Más información


Las propiedades que se suelen usar para enviar datos al puerto serie con el control mscomm son las siguientes:

CommPort

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

Settings

La propiedad Settings configura la velocidad en baudios, paridad, bits de datos y bits de parada del puerto serie. Es una cadena de caracteres cuyos valores individuales están separados por comas. De forma predeterminada, la propiedad Settings contiene el valor 9600,N,8,1, que corresponde a 9600 baudios, sin paridad, 8 bits de datos y 1 bit de parada.

PortOpen

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

Output

A la propiedad Output se le asigna la cadena de caracteres que se va a enviar al puerto serie. Para generar la cadena "Hello World" al puerto serie una vez establecidas las propiedades anteriores, use el comando siguiente:

   myform.mycomm.output = "Hello World"
Otras propiedades que también podrían necesitarse según la aplicación son las siguientes:

CommEvent

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

Sthreshold

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

OutBufferCount

El control OutBufferCount devuelve el número de caracteres que esperan en el búfer de transmisión. Siempre debería tener el valor cero si la propiedad Sthreshold también es cero. Al establecer la propiedad OutBufferCount en cero, se borrará el búfer de transmisión.

OutBufferSize

La propiedad OutBufferSize especifica el tamaño del búfer de transmisión. De forma predeterminada, este búfer es de 512 bytes. Cuanto mayor es el búfer de transmisión, menor es la memoria disponible para otras aplicaciones. Si las velocidades en baudios son lentas y las cadenas de texto que se escriben en el puerto serie son largas, puede significar que es necesario que este valor sea mayor.


A continuación se muestra un ejemplo que ilustra cómo configurar el control comm y marcar el número de teléfono 555-1234 utilizando los comandos estándar de los módems 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 utiliza esto en una aplicación y a continuación la distribuye mediante el Asistente para instalación de Visual FoxPro, puede ver un error similar al siguiente al ejecutar la aplicación:

Error del programa OLE código de error 0x80040112: No se encuentra la licencia apropiada para esta clase.
Si se produce este error, vea el artículo siguiente de Microsoft Knowledge Base:

192693 ERROR: Error de licencia con el control ActiveX agregado en tiempo de ejecución