多站远程无线控制信号系统通信软件的开发
Dim byindata(11) As Byte
Dim I%? buf$
′根据事件分发处理
Do While frmMSCommDemo.MSComm1.CommEvent = 2
Exit Do
Loop
Timedelay 850 ′适当延时
byin = frmMSCommDemo.MSComm1.Input
′接收串行端口内的数据至动态数组中
dend = UBound(byin) ′得到最大值
start = LBound(byin) ′得到最小值
If dend < 5 Then
MsgBox RadarNoOut & “信号源出现系统
故障,请求检修!”? vbOKOnly
Exit Sub
End If
′接收串行端口内的数据至动态数组中
′ReDim Preserve byin(11) As Byte
If byindata(0) = &H55 And byindata(1) = &HAA
Then ′包头正确,接收到包头进行数据处理
.
.
.
End sub
′延时程序
Sub Timedelay(TT As Long)
Dim t As Long ′声明一个长整数,记录计数值
t = GetTickCount() ′取得系统计数值
Do ′开始循环
DoEvents
If GetTickCount - t < 0 Then t = GetTick-Count ′归零
Loop Until GetTickCount - t >= TT ′计算延迟是否到达
End Sub
4 结论
根据本系统的研制经验,利用MSCOMM控件开发无线通信要把握好以下三条:
(1) 收发之间应延时适当,这需要在测试中不断地调试,以达到最佳效果。
(2) 选用好的且必须具有纠错功能的无线数传模块,否则将达不到理想的效果。
(3) 设定一个合理的通信协议,使中心站与子站有良好的沟通。实际测验证明,本系统在WIN98中运行稳定,在实验过程中取得了良好的效果。
《多站远程无线控制信号系统通信软件的开发(第3页)》