硬件是:电脑+控制盒+信号灯
编程语言:VBScript
我使用的是VB6.0 的 Interdev,事情很奇怪,因为我使用另外的程序控制信号灯,发现传输信号后,灯可以正常开启,亮灯正常,而相同的逻辑在我的程序中居然发生了不同的结果:信号传输后,灯只是闪了一下,然后熄灭。
研究很久不得法,不知我是否少掉什么设置而导致信号传输的问题,希望各位大侠给予指点!
程序如下:
‘控件属性设置
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.Handshaking = comNone
MSComm1.PortOpen = True
’需要传出的二进位码
dim LightNo(192)
for i=1 to 192
LightNo(i)="0"
next
for j=1 to 192
if j mod 4=0 then
LightNo(j-1)="1" ‘亮灯的位置为:3,7,11,15……,也就是说,二进制码为0010 0010 0010……
end if
LNO=""
for w=1 to 192
LNO=LNO&LightNo(i)
next
call ConvertLToA(LNO) ’ConvertLToA程序在下面
next
‘将二进制码转化为十进制,并使用CByte()函数转化,传出
function ConvertLTOA (LG)
'msgbox LG
dim i,k,aaa
dim L(192)
dim cha(24)
for i=1 to 192
L(i)=int(Mid(LG,i,1))
next
k=1
for i=1 to 192
if i Mod 8=1 then
aaa=0
if L(i)=1 then aaa=aaa+1
'msgbox "aaa="&cstr(aaa)
elseif i Mod 8=0 then
if L(i)=1 then aaa=aaa+2^7
cha(k)=CByte(aaa) ’注:该处使用函数不知可否,原来使用的Chr()
k=k+1
else
if L(i)=1 then aaa=aaa+2^((i Mod 8)-1)
end if
next
str=""
for i=1 to 24
str=str&cha(i)
next
MSComm1.OutPut=str
End function