控件使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
、控件mscomm32.ocx 的几个重要属性
CommPort:设置并返回通讯端口号。
Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口。
Input:从接收缓冲区返回和删除字符。
Output:向传输缓冲区写一个字符串。
InBufferCount:返回接收缓冲区中等待的字符数,该属性在设计时无效,可以把InBufferCount 属性设置为0 来清除接收缓冲区。
InBufferSize:设置并返回接收缓冲区的字节数,接收缓冲区的大小。Rthreshold:产生OnComm 事件之前要接收的字符数。设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件。设置为0(缺省值)则不产生OnComm 事件。
CommEvent:返回最近的通讯事件或错误。该属性在设计时无效,在运行时为只读。只要有通讯错误或事件发生时都会产生OnComm 事件,CommEvent 属性存有该错误或事件的数值代码。CommEvent 属性返回2 表示收到Rthreshold 个字符。该事件将持续产生直到用Input 属性从接收缓冲区中删除数据。
2、实例:
该事例演示如何控制COM口发送命令及如何接收数据。本事例采用轮讯方式。适用于通讯数据
不是很巨大的和要求不是很高速的情况下。
(1)在VFP中,建立一个新的表单
(2)插入文本(命名为TEXT1,用来显示读取的数据)
(3)建立Microsoft Communication Control1 控件在工具栏中点插入ole容器控件,选择Microsoft Communication Control 控件(NAMe为mscomm1)
(4)建立一个按纽命名为command1
(5)在CHICK属性里下如下代码:
**存储变量名字
buffer=""
** 使用COM1。
mPort = 1
**9600 波特,无奇偶校验,8 位数据,一个停止位。
thisform.MSComm1.Settings = "9600,N,8,1"
* 告诉控件读入整个缓冲区。
thisform.MSComm1.InputLen = 0
* 打开端口。
thisform.MSComm1.PortOpen = True
**将attention 命令送到调制解调器。这是MODEM的状态读取命令
thisform.MSComm1.Output = "ATV1Q0" & Chr$(13)
** CHR(13)是回车符号,用来表示命令结束
**等待数据返回到串行端口。
vv=1
do while .t.
Buffer = thisform.MSComm1.Input
*从串行端口读"OK" 响应。
if at("OK",buffer)>=1
exit &&有OK则退出,否则继续读
endif
vv=vv+1
**通讯失败的错误陷阱,以免一直读。
if vv>1000
exit
endif
loop
enddo
*关闭串行端口。
thisform.MSComm1.PortOpen = False
**显示结果。
if vv>1000
massagebox("你是不是读错口啦?","不好意思哦!")
else
thisform.text1.value=buffer
endif
VB开发通讯软件
一、PC串行通信程序机制
常用的PC串行通信程序大多利用BIOSINT14H中断,以查询I/O方式完成异步串行通信。
Windows系统提供中断方式驱动的串行通信驱动程序COMM.DRV。通信程序无需直接对串行端口进行操作,而是通过驱动程序这一编程接口进行间接操作。
Windows操作系统中,串行通信采用“事件通知”方式,支持数据按块传送。进行通信时,Windows开辟一个用户定义的输入输出缓冲区,每接收一个字符就产生一个低级硬件中断,串行驱动程序立即取得控制权,并将字符放入输入数据缓冲区,然后将控制权返还正在运行的应用程序。如果输入数据缓冲区满了,驱动程序用当前定义的流控制机制通知发送方停止发送数据。发送数据也采用类似的处理方式,应用程序将需要发送的数据放入输出数据缓冲区,串口每发送一个字符就产生一个低级硬件中断。
二、PC串行口远程通信的硬件配置
串行通信数据链中,计算机一端称为DTE,即数据终端设备;调制解调器一端称为DCE,即数据通信设备。PC串行通信的硬件连接方式分为零Modem连接和Modem连接。
零Modem连接即直接用调制解调器电缆将两台设备连接起来,Modem连接则通过DCE(Modem)
将两台PC连接起来。
零Modem连接用于距离15m内两台DTE或DCE设备之间的连接。而Modem连接则通过电话网
或专线用于长距离的通信。
TXD和RXD信号线用于计算机和Modem间传输数据信息;RTS从计算机端发送信号到Modem,表示希望把数据传给Modem,若Modem能接收这个数据,它将发送CTS信号给计算机;DTR 从计算机端发送信号到Modem,表示计算机已作好通信准备,Modem将DTR信号作为初始化自己的信号,然后给计算机回送数据设置就绪信号DSR;当本地Modem接收到远地Modem的呼叫,则发送RING信号给计算机;Modem应答呼叫后,发送数据载波检测DCD信号到计算
机,表示已建立连接。
Modem的工作状态分为命令状态和在线状态。处于命令状态时,Modem对串口发送的信息进行解释,可通过PC串口向Modem发送AT命令对其进行初始化、设置和操作。
例如,初始化命令为:“ATQOV1WOSOΚ1&C1&D2&YO&WO”,其含义为:
QO:返回结果码;
V1:以字符形式显示结果码;
WO:不返回协商进程结果码;
SOΚ1:振铃一次,即应答;
&C1:追踪数据载波信号CD;
&D2当DTR从开到关时,Modem挂机进入命令状态;
&YO:Modem上电时重新调出用户方案;
&WO:将以上设置存为动态设置用户方案0;
一旦本地Modem与远地Modem建立连接,Modem即处于在线状态,可进行数据传输。此时,