最近在编写一个数据采集程序,需要连接的设备较多,MSCOMM的串口号限制到15 怎样才能突破这个限制?
本想采用API来做串口,但是不知道怎样用API来实现MSCOMM的ONCOMM事件机制。
因为如果采用定时器轮询,由于串口数量较多,同时对于数据采集的时间要求比较严格,所以无法实现。
saxcomm控件因为要求注册,所以无论是否有注册码都无法正常使用。
本想采用API来做串口,但是不知道怎样用API来实现MSCOMM的ONCOMM事件机制。
因为如果采用定时器轮询,由于串口数量较多,同时对于数据采集的时间要求比较严格,所以无法实现。
saxcomm控件因为要求注册,所以无论是否有注册码都无法正常使用。
一对多行不通,因为这里每个串口要对应一个设备,该设备的通讯层上就决定了是一对一的结构。
ComNum = CreateFile(ComNumber, &HC0000000, 0, 0, 3, 0, 0)
If ComNum = -1 Then
MsgBox "Com Port " & ComNumber & " not available. Use Serial settings (on the main menu) to setup your ports.", 48
InitCom = False
Exit Function
End If
关闭串口的代码如下:
这是关闭串口的函数---
Public Function FinCom()
On Error Resume Next
CommTime.Enabled = False
Set CommTime = Nothing
FinCom = CloseHandle(ComNum)
ComIsOpen = False
If Err.Number <> 0 Then Err.Clear
End Function
调用该函数----
ARCComm1.FinCom
SetControllsLockStatus "CLOSE", True
SetControllsLockStatus "OPEN", False