串口数据读取问题
请各位高手帮忙:在VFP中如何实时读取串口传来的数据,在VFP中有接收WINDOWS消息的办法吗*SuperTracker:是一个接在串口上的设备;
*chr()中的值是该设备的指令。
Para nnnserr=0
Thisform.ole1.Output=Chr(2)+Chr(6)+Chr(3)
ltime=Datetime()
Do Whil Thisform.ole1.InBufferCount=0
If Datetime()-ltime>12
=msg("警告","得不到SuperTracker的控制信号。","!O")
Thisform.ole1.portopen=.F.
serr=1
Retu
Endif
Enddo
mscomm=Thisform.ole1.Input
If Str(mscomm(1),1)+Str(mscomm(2),1)+Str(mscomm(3),1)<>'263'
=msg("警告","得不到SuperTracker的控制信号。","!O")
Thisform.ole1.portopen=.F.
serr=1
Retu
Endif
Do Case
Case nnn=1
Thisform.ole1.Output=Chr(2)+Chr(35)+Chr(83)+Chr(3)
Case nnn=2
Thisform.ole1.Output=Chr(2)+Chr(35)+Chr(85)+Chr(3)
Case nnn=3
Thisform.ole1.Output=Chr(2)+Chr(35)+Chr(66)+Chr(3)
Endcase
ltime=Datetime()
Do Whil Thisform.ole1.InBufferCount=0
If Datetime()-ltime>20
=msg("警告","得不到SuperTracker的控制信号。","!O")
Thisform.ole1.portopen=.F.
serr=1
Retu
Endif
Enddo
mscomm=Thisform.ole1.Input
If Str(mscomm(1),1)+Str(mscomm(2),1)+Str(mscomm(3),1)<>'263'
Do Case
Case nnn=1
=msg("警告","SuperTracker无法进卡。","!O")
Case nnn=2
=msg("警告","SuperTracker卡在里面。","!O")
Case nnn=3
=msg("警告","SuperTracker卡在出口处。","!O")
Endcase
Thisform.ole1.portopen=.F.
serr=1
Retu
Endif 感谢二位的回答!低级文件函数读不了COM口的数据.FOWN先生的方法是可行的 我看了一下你发给我的文件,我个人认为,你应该先在VFP里声明DLL,然后调用DLL里的函数来进行连接,DLL说明里写的很清楚
页:
[1]
