js使用MSCOMM控件发送十六进制数据怎么处理

JavaScript013

js使用MSCOMM控件发送十六进制数据怎么处理,第1张

我之前写过一个,很简单,也就下面几个函数:

function topOfList()

{

var btn = document.getElementById('topOfListBtn')

if(btn.state == 'spaned')

{

var forms = document.getElementsByTagName('form')

var timeSpan = 50

for(var i = 0i<forms.lengthi++)

{

var form = forms[i]

if(form.id.indexOf('Top') >-1)

{

ShinkSlowly(form,timeSpan)

timeSpan += 50

}

}

btn.state = 'unspaned'

changeBtnImg('topOfListImg','img/unspaned.jpg')

tellConsoleSpanSate()

}

else

{

var forms = document.getElementsByTagName('form')

var timeSpan = 50

for(var i = 0i<forms.lengthi++)

{

var form = forms[i]

if(form.id.indexOf('Top') >-1)

{

SpanSlowly(form,timeSpan)

timeSpan += 50

}

}

btn.state = 'spaned'

changeBtnImg('topOfListImg','img/spaned.jpg')

tellConsoleSpanSate()

}

}

function bottomOfList()

{

var btn = document.getElementById('bottomOfListBtn')

if(btn.state == 'spaned')

{

var forms = document.getElementsByTagName('form')

var timeSpan = 50

for(var i = 0i<forms.lengthi++)

{

var form = forms[i]

if(form.id.indexOf('Bottom') >-1)

{

ShinkSlowly(form,timeSpan)

timeSpan += 50

}

}

btn.state = 'unspaned'

changeBtnImg('bottomOfListImg','img/unspaned.jpg')

tellConsoleSpanSate()

}

else

{

var forms = document.getElementsByTagName('form')

var timeSpan = 50

for(var i = 0i<forms.lengthi++)

{

var form = forms[i]

if(form.id.indexOf('Bottom') >-1)

{

SpanSlowly(form,timeSpan)

timeSpan += 50

}

}

btn.state = 'spaned'

changeBtnImg('bottomOfListImg','img/spaned.jpg')

tellConsoleSpanSate()

}

}

function ShinkSlowly(form,timeSpan)//控制按钮收缩的函数

{

setTimeout(function()

{

form.style.display = 'none'

}

,timeSpan)

}

function SpanSlowly(form,timeSpan)//控制按钮展开的函数

{

setTimeout(function()

{

form.style.display = ''//alert(form.id)

}

,timeSpan)

}

function changeBtnImg(imgId, imgSrc)

{

document.getElementById(imgId).src=imgSrc//'img/unspaned.jpg''img/spaned.jpg'

}

其中,imgSrc要换成你硬盘里存在的图片路径。然后在你的+号图片的单击事件响应使用topOfList()函数即可,我测试过,可用。ShinkSlowly()函数内部可以控制张开和收缩的速度。

刚查了一下MSComm控件的output属性“Output 向传输缓冲区写一个字符串”,应该是该控件只支持字符型数据,如果你要发送数值型数据,那就只能通过str()函数先转换,接收后再通过val()函数转回。如果数据有小数点,要注意这两个函数的参数设置。

“达到以一个字节的长度发送任意一个八位二进制数能表示的数值呢?”,你可以直接把这个八位二进制数作为字符串发送,接收后再根据你需要作相关处理。

其中selF selT selC 是使用jquery实现的动态选择框,在页面加载时候实现的。

JS验证代码:

function onupload()

{

//获得资源类型1

var select_1=document.getElementById("selF")

var c1=select_1.value

//若没有选择,则报错

if(c1=="")

{

alert("您没有选择资源类型,请选择后再提交,谢谢!")

return false