奇怪,使用MSCOM控件控制信号灯,相同的程序结果却不同?
来源:互联网 发布:淘宝秒杀预告 编辑:程序博客网 时间:2024/04/30 06:36
硬件是:电脑+控制盒+信号灯
编程语言: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
- 奇怪,使用MSCOM控件控制信号灯,相同的程序结果却不同?
- Java程序和Oracle数据库调用相同的SQL查询语句,结果却不同
- VC2008中MSCOM控件使用
- 在ActiveX控件中使用Mscom控件
- 两个赋值相同的Integer参数,打印结果却不等
- 网络请求参数不同却得到相同数据的调查
- [C#]字符串比较--显示相同[In VS],比较结果却不同
- 【问题解决】使用spring后对一个业务逻辑的不同请求,返回相同结果
- js两次一样的正则表达式,结果却不同
- Oracle版本的问题,相同的SQL,不同的结果
- 7.22相同类的不同对象执行相同成员函数输出不同结果
- VC6.0 应用MSCOM控件
- 返回相同结果,用不同SQL的执行计划
- 字符串相同字符长度却不同?
- 奇怪的校正结果
- oracle 11g学习二 两个不同的数据库使用相同的监听程序
- EXCEL 相同日期所在的不同单元格使用相同颜色
- tensorflow不同位置使用相同的name_scope
- 品味Thinking In C++(二)
- FTP资源
- flex开发心得体会经验
- 使用DrawDib
- regain的基本步骤
- 奇怪,使用MSCOM控件控制信号灯,相同的程序结果却不同?
- 06252005 阴
- 使用Hibernate+Oracle9i R2 处理Clob大文本数据
- 说自己的程序员,难以启齿吗?
- 夏季中暑防治完全手册
- 一定要独立,一定要争气
- 史上最玄的11大巧合
- 世界有多脏?
- 送我至爱-我把爱情炖成汤