使用 Mscomm32.ocx 发送到串行端口

本文介绍如何使用 Mscomm32.ocx 控件将信息发送到串行端口。

原始产品版本: Visual FoxPro
原始 KB 数: 139526

总结

本文介绍使用 Mscomm32.ocx 将数据发送到串行端口所需的设置。 Mscomm32.ocx 随附于 Microsoft Visual FoxPro Professional Edition。 可以在运行Microsoft Windows 95 及更高版本的 Windows 的计算机上使用它。

详细信息

使用 mscomm 控件将数据发送到串行端口的最常用属性如下所示:

CommPort

CommPort 属性指定通信端口号。 对应于 Comm 端口的数字属性。 默认情况下,此属性设置为对应于 com1 的 1。 有效值为 1、2、3 或 4,具体取决于计算机上安装的串行端口及其配置。

设置

Settings 属性配置串行端口的波特率、奇偶校验、数据位和停止位。 Settings 属性是包含单个逗号分隔值的字符串。 默认情况下,Settings 属性如下所示:9600,N,8,1 此属性对应于 9600 波特、无奇偶校验、8 个数据位和 1 个停止位。

以下波特率值有效:110, 300、600、1200、2400、4800、9600(默认值)、14400、19200、28800、38400、56000、57600、115200、128000、256000。

PortOpen

PortOpen 属性指定一个逻辑值,该值控制串行端口是否处于打开状态和活动状态。 将以前的属性设置为开始使用串行端口后,可以将此属性设置为 true。

输出

输出属性被赋值为要发送到串行端口的字符序列。 若要在设置以前的属性后将字符串“Hello World”输出到串行端口,请使用以下命令:

 myform.mycomm.output = "Hello World"

可能还需要的其他属性,具体取决于应用程序,如下所示:

CommEvent

CommEvent 属性包含一个值,该值表示最近的通信事件或错误。

S阈值

Sthreshold 属性指定发送的输出缓冲区中的最小字符数。

输出缓冲区计数

OutBufferCount 控件返回传输缓冲区中等待的字符数。 如果Sthreshold属性为零,则这个值始终为零。 将 OutBufferCount 属性设置为零将清除传输缓冲区。

输出缓冲区大小

OutBufferSize 属性指定传输缓冲区的大小。 默认情况下,此缓冲区为 512 字节。 传输缓冲区越大,其他应用程序可用的内存就越少。 写入串行端口的慢波特率和大型文本字符串可能意味着需要增大此值。

下面是一个示例,演示如何使用标准 Hayes 调制解调器命令设置通信控件并拨打电话号码 555-1234。

 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 *****

注意

如果在应用程序中使用它,然后使用 Visual FoxPro 安装向导分发应用程序,则在运行应用程序时可能会看到以下错误:

程序错误 OLE 错误代码0x80040112:找不到此类的相应许可证。