PowerBuilder串行通信:借助Mscomm.ocx控件的OLE调用

版权申诉
0 下载量 121 浏览量 更新于2024-08-13 收藏 57KB DOC 举报
"本文主要介绍了如何在PowerBuilder(PB)中利用OLE技术调用Microsoft Communications Control (Mscomm.ocx)控件,以实现串行接口通信功能。在PowerBuilder自身缺乏直接控制串口的控件时,通过这种方法,开发者可以方便地在PB应用中进行串口通信,适用于那些需要与硬件设备交互的系统,如门禁、点名或接见系统等。" 在PowerBuilder应用中添加串行通信功能通常是个挑战,因为它本身不内置串行接口控件。然而,VB(VBScript)提供了串口控件,但可能并不适合处理复杂的数据库操作,这是PowerBuilder的强项。为了解决这个问题,开发者可以借助OLE(对象链接和嵌入)技术,将VB中的Mscomm.ocx控件集成到PB应用中。 具体步骤如下: 1. 首先,在PB的窗体中添加一个OLE控件。在"Insert Object"属性窗口的"InsertControlTab"选项卡中,选择"Microsoft Communications Control"。如果系统中未注册该控件,需要先进行安装和注册。 2. 将控件放置在窗体的任何位置,虽然在运行时它是不可见的。命名为"OLE_comm"。 3. 接下来,配置控件的属性。这可以通过"OLECustomControl"对话框或者右键菜单的"OCX Properties"选项完成,但在代码中设置这些属性可以提供更高的灵活性和控制力。例如,在窗口的OPEN事件中,可以编程设置串口参数: - `ole_comm.object.CommPort=1` 设置串口为COM1。 - `ole_comm.object.Settings="57600,n,8,1"` 设置波特率为57600,无校验位(n),8位数据位,1位停止位。 - `ole_comm.object.InputLen=0` 设置输入缓冲区长度。 - `ole_comm.object.InBufferSize=90` 和 `ole_comm.object.OutBufferSize=60` 分别设置输入和输出缓冲区大小。 - `ole_comm.object.SThreshold=0` 和 `ole_comm.object.RThreshold=9` 设置发送和接收阈值。 4. 一旦配置完成,就可以通过这个控件进行串行通信,例如发送和接收数据,监控串口状态等。 这种解决方案使得PowerBuilder开发者能够充分利用其强大的数据库处理能力,同时利用Mscomm.ocx控件实现串行通信,无需完全切换到VB环境。这种方式在需要结合数据库操作和串行通信的项目中非常实用,提高了开发效率并降低了学习新开发工具的成本。