Private withevents COM2Class as clsComm
Private withevents COM3Class as clsComm
Private withevents COM4Class as clsComm
Private Sub Form_Load()
set COM1Class =new clsComm
set COM2Class =new clsComm
set COM3Class =new clsComm
set COM4Class =new clsComm
End Sub
Private Sub Command1_Click()
COM1Class.SetPort(1) '使用串口号
COM2Class.SetPort(2)
COM3Class.SetPort(3)
COM4Class.SetPort(4)
COM1Class.StartComm
'默认的9600bps,8,n,1 这将会调用Timer来进行通讯事件通知用户
COM2Class.StartComm
COM3Class.StartComm
COM4Class.StartComm
end Sub
Private Sub COM1Class_DataReturn(bFlag as boolean)
if bFlag then
Print "Com1 DataReturn OK."
Else
Print "Com1 DataReturn Bad."
end if
end Sub
'COM2/COM3/COM4的事件雷同
----------------------------------------------
我想问一下这样的方法可取吗?就是说调用同一个Active EXE组件的不同类的实例
主要是反应速度会不会很慢??
因为我的发送数据远远要比想象中的多,当然收取的也多,而且要保存到数据库中去,不过事件触发倒是不会太频繁,而我在客户端永远不需要管什么数据收了多少,只要读取数据库中的内容就可以了,因为表结构中包含任何通信的信息,当然前提是保存入库时不能有错(出现错误时会RaiseEvent)
----------------------
如果说这样反应慢的话,是不是说我要复制这个Active EXE文件,然后再次引用这个实例(文件名称自然是变过了,如COM2Handle.exe),那么这样的话我要同时通讯N个串口就需要建立N个文件,晕哦...
不过我想知道是如何能解决多个串口通信的时实性问题,如果说真的能通过引用N个进程来实现,那我也不管了的...
请各位大虾指教了~~!!!!!!!
7 个解决方案
#1
如果仅仅是将指定端口的数据导入数据库,那就用标准Exe,接收一个命令行参数为端口号,调用
for i=1 to 4
shell "input.exe " & i
next
for i=1 to 4
shell "input.exe " & i
next
#2
谢谢楼上VB老鸟的指点
不过我数据库的写入用特定的函数来完成,这点我倒是没有问题.
现在的问题是"多个串行口实现同时通信,是否需要多个activeX EXE支持??或者是单独的一个activeX EXE只不过是多个实例来操作不同串行口??"
如下图:
方法1:使用同个组件的多个实例
CommHandling.exe //使用一个clsComm Active EXE组件
clsComm1 ------ COM1 //clsComm是组件中的类,clsComm1-clsComm4分别是实例
clsComm2 ------ COM2
clsComm3 ------ COM3
clsComm4 ------ COM4
方法2:使用多个组件的各自的一个实例来操作
CommHandling1.exe 的 clsComm1 //一个进程对应一个串行口操作
CommHandling2.exe 的 clsComm2
CommHandling3.exe 的 clsComm3
CommHandling4.exe 的 clsComm4
-------------------------------------
大虾们,帮帮小人吧~~~很急啊!
不过我数据库的写入用特定的函数来完成,这点我倒是没有问题.
现在的问题是"多个串行口实现同时通信,是否需要多个activeX EXE支持??或者是单独的一个activeX EXE只不过是多个实例来操作不同串行口??"
如下图:
方法1:使用同个组件的多个实例
CommHandling.exe //使用一个clsComm Active EXE组件
clsComm1 ------ COM1 //clsComm是组件中的类,clsComm1-clsComm4分别是实例
clsComm2 ------ COM2
clsComm3 ------ COM3
clsComm4 ------ COM4
方法2:使用多个组件的各自的一个实例来操作
CommHandling1.exe 的 clsComm1 //一个进程对应一个串行口操作
CommHandling2.exe 的 clsComm2
CommHandling3.exe 的 clsComm3
CommHandling4.exe 的 clsComm4
-------------------------------------
大虾们,帮帮小人吧~~~很急啊!
#3
同组件多实例可以
#4
我下午试一下
嘿嘿
嘿嘿
#5
顶一下先~!
#6
用第一种方法测试:
结果如下:
四个串口一起操作,结果CPU占用在10%以下,一般都在0%-5%
我把数据采集上来放入一个表中
客户端不端用定时器来进行读取库中表数据来刷新,运行得还算可以
---------------
但不知道为什么,我的active X EXE有的时候无响应了,应用程序也停滞了...(可能是系统问题吧...应该不会没有响应的啊...晕...)
结果如下:
四个串口一起操作,结果CPU占用在10%以下,一般都在0%-5%
我把数据采集上来放入一个表中
客户端不端用定时器来进行读取库中表数据来刷新,运行得还算可以
---------------
但不知道为什么,我的active X EXE有的时候无响应了,应用程序也停滞了...(可能是系统问题吧...应该不会没有响应的啊...晕...)
#7
mark
#1
如果仅仅是将指定端口的数据导入数据库,那就用标准Exe,接收一个命令行参数为端口号,调用
for i=1 to 4
shell "input.exe " & i
next
for i=1 to 4
shell "input.exe " & i
next
#2
谢谢楼上VB老鸟的指点
不过我数据库的写入用特定的函数来完成,这点我倒是没有问题.
现在的问题是"多个串行口实现同时通信,是否需要多个activeX EXE支持??或者是单独的一个activeX EXE只不过是多个实例来操作不同串行口??"
如下图:
方法1:使用同个组件的多个实例
CommHandling.exe //使用一个clsComm Active EXE组件
clsComm1 ------ COM1 //clsComm是组件中的类,clsComm1-clsComm4分别是实例
clsComm2 ------ COM2
clsComm3 ------ COM3
clsComm4 ------ COM4
方法2:使用多个组件的各自的一个实例来操作
CommHandling1.exe 的 clsComm1 //一个进程对应一个串行口操作
CommHandling2.exe 的 clsComm2
CommHandling3.exe 的 clsComm3
CommHandling4.exe 的 clsComm4
-------------------------------------
大虾们,帮帮小人吧~~~很急啊!
不过我数据库的写入用特定的函数来完成,这点我倒是没有问题.
现在的问题是"多个串行口实现同时通信,是否需要多个activeX EXE支持??或者是单独的一个activeX EXE只不过是多个实例来操作不同串行口??"
如下图:
方法1:使用同个组件的多个实例
CommHandling.exe //使用一个clsComm Active EXE组件
clsComm1 ------ COM1 //clsComm是组件中的类,clsComm1-clsComm4分别是实例
clsComm2 ------ COM2
clsComm3 ------ COM3
clsComm4 ------ COM4
方法2:使用多个组件的各自的一个实例来操作
CommHandling1.exe 的 clsComm1 //一个进程对应一个串行口操作
CommHandling2.exe 的 clsComm2
CommHandling3.exe 的 clsComm3
CommHandling4.exe 的 clsComm4
-------------------------------------
大虾们,帮帮小人吧~~~很急啊!
#3
同组件多实例可以
#4
我下午试一下
嘿嘿
嘿嘿
#5
顶一下先~!
#6
用第一种方法测试:
结果如下:
四个串口一起操作,结果CPU占用在10%以下,一般都在0%-5%
我把数据采集上来放入一个表中
客户端不端用定时器来进行读取库中表数据来刷新,运行得还算可以
---------------
但不知道为什么,我的active X EXE有的时候无响应了,应用程序也停滞了...(可能是系统问题吧...应该不会没有响应的啊...晕...)
结果如下:
四个串口一起操作,结果CPU占用在10%以下,一般都在0%-5%
我把数据采集上来放入一个表中
客户端不端用定时器来进行读取库中表数据来刷新,运行得还算可以
---------------
但不知道为什么,我的active X EXE有的时候无响应了,应用程序也停滞了...(可能是系统问题吧...应该不会没有响应的啊...晕...)
#7
mark