本文目录一览:
- 1、js可以获取计算机com口吗?可以监听某个com口返回的数据吗?
- 2、js怎样获取串口信息
- 3、获取串口数据的JS源代码,一个小程序就行
- 4、请问高手怎么用javascript读取com口扫描枪扫描的条码?
- 5、nodejs 获取串口数据
- 6、在PHP网页上用javascript读取串口输入的数据
js可以获取计算机com口吗?可以监听某个com口返回的数据吗?
这配合web应用的话就没问题,web应用开放个http接口给js调用 ,js调用时自己取com口的数据返回给js ,再有就是js调ocx的方案了,兼容有问题。现在用的少了。
js怎样获取串口信息
MSCOMM控件在VB6的企业版中有,需通过部件添加方式加载。
Private Sub MSComm_OnComm()
Dim bytInput() As Byte
Dim intInputLen As Integer
Select Case frmMain.ctrMSComm.CommEvent
Case comEvReceive
If blnReceiveFlag Then
If Not frmMain.ctrMSComm.PortOpen Then
frmMain.ctrMSComm.CommPort = intPort
frmMain.ctrMSComm.Settings = strSet
frmMain.ctrMSComm.PortOpen = True
End If
'此处添加处理接收的代码
frmMain.ctrMSComm.InputMode = comInputModeText '按ASCII接收
intInputLen = frmMain.ctrMSComm.InBufferCount
ReDim bytInput(intInputLen)
bytInput = frmMain.ctrMSComm.Input
Text1 = bytInput
Text2 = Text1
jscd = Len(Text1)
If Left(Text1, 1) Chr(27) Or jscd 25 Then '
frmMain.Label3.BackColor = vbRed
frmMain.Label3.ForeColor = vbWhite
frmMain.Label3.Caption = "接收信号出错!"
ElseIf Left(Text2, 1) = Chr(27) And Mid(Text2, 25, 1) = Chr(13) Then
frmMain.Label3.BackColor = vbGreen
frmMain.Label3.ForeColor = vbBlack
frmMain.Label3.Caption = "接收信号正常!"
If Left(Text2, 6) = Chr(27) "R0032" And jscd = 25 Then
If Val(fa2) = 0 And Len(fa2) = 4 Then
fa2 = "0" Mid(fa2, 2, 3)
End If
frmMain.txtSend = Chr(27) fa0 fa1 "9999" zhenkong fa2 fa3 fa4 Chr(13)
lenTxtSend = Len(txtSend)
frmJishi.Label8.Caption = txtSend
frmJishi.Label11.Caption = lenTxtSend
If lenTxtSend = 24 Then
Call commFasong
Else
frmMain.Label3.BackColor = vbRed
frmMain.Label3.ForeColor = vbWhite
frmMain.Label3.Caption = "发送信号出错!"
End If
blL1 = Mid$(Text2, 19, 2)
If blL1 = "01" Then
record_jmm(0) = Val(Mid$(Text2, 21, 4)) / 10 '制品1温度
ElseIf blL1 = "02" Then
record_jmm(1) = Val(Mid$(Text2, 21, 4)) / 10 '制品2温度
ElseIf blL1 = "03" Then
record_jmm(2) = Val(Mid$(Text2, 21, 4)) / 10 '制品3温度
ElseIf blL1 = "04" Then
record_jmm(3) = Val(Mid$(Text2, 21, 4)) / 10 '制品4温度
ElseIf blL1 = "05" Then
record_jmm(4) = Val(Mid$(Text2, 21, 4)) / 10 '制品5温度
ElseIf blL1 = "06" Then
record_jmm(5) = Val(Mid$(Text2, 21, 4)) / 10 '制品6温度
End If
record_jm(0) = Val(record_jmm(0))
record_jm(1) = Val(record_jmm(1))
record_jm(2) = Val(record_jmm(2))
record_jm(3) = Val(record_jmm(3))
record_jm(4) = Val(record_jmm(4))
record_jm(5) = Val(record_jmm(5))
blL = Mid$(Text2, 7, 6)
Call Hex_bin '输出口状态鉴别
blLg = Mid$(Text2, 13, 6)
Call hex_bin1 '输出口故障状态鉴别
txtSend = ""
Else
txtSend = ""
End If
End If
If Not blnAutoSendFlag And Not blnReceiveFlag Then
frmMain.ctrMSComm.PortOpen = False
End If
End If
End Select
End Sub
以上是一段MSCOMM的ONCOMM事件代码,接收的数据按上下位机约定取出赋值于全局变量,在其它窗体进行数据记录(写入数据库).至于数据分析确如一楼说的可以海阔天空,通过数据控件及SQL语句来完成任务.
以下提供MSDN参考:
OnComm 常数
常数 值 描述
comEvSend 1 发送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 线变化。
comEvDSR 4 data-set ready 线变化。
comEvCD 5 carrier detect 线变化。
comEvRing 6 振铃检测。
comEvEOF 7 文件结束。
MSComm 控件提供下列两种处理通讯的方式:
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。
在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
SThreshold 属性
在 MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。
说明
若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。
如果在传输缓冲区中的字符数小于 value,CommEvent 属性设置为 comEvSend,并产生 OnComm 事件。comEvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时,comEvSend 才发生。如果在输出队列中从没有比 Sthreshold 多的字符,comEvSend 事件将绝不会发生。
CommEvent 属性包含实际错误或产生 OnComm 事件的数码。注意,设置 Rthreshold 或 Sthreshold 属性为 0,分别使捕获 comEvReceive 和 comEvSend 事件无效。
获取串口数据的JS源代码,一个小程序就行
function OpenPort()
{
var cmd_send = "";
var result = $('txtReceive').value;
var results = result.split(',');
for(var i=0;iresults.length;i++)
{
cmd_send += String.fromCharCode(eval(results[i]));
}
if(MSComm1.PortOpen==false)
{
MSComm1.PortOpen=true;
MSComm1.Output=cmd_send;//发送命令
}
else
{
window.alert ("已经开始接收数据!");
}
}
function ClosePort()
{
if(MSComm1.PortOpen==true)
{
MSComm1.PortOpen=false;
}
else
{
window.alert ("串口已经关闭!");
}
}
function SendMessage()
{
var cmd_send = "";
var result = $('txtReceive').value;
var results = result.split(',');
for(var i=0;iresults.length;i++)
{
cmd_send += String.fromCharCode(eval(results[i]));
}
if(MSComm1.PortOpen==false)
{
window.alert ("串口已经关闭!!");
}
else
{
MSComm1.Output=cmd_send;//发送命令
}
}
详见:
求采纳!!!!!!!!!
请问高手怎么用javascript读取com口扫描枪扫描的条码?
一般都是U口和P2口,com口的条码枪好少见
javascript读com口肯定是需要activeX控件的
而且这种控件没有现成的,还需要自己写,写好了之后,你的客户还需要把这个控件下载到他电脑上,并且要注册到注册表
方法就是这样子,具体怎么实现你自己好好考虑下吧
nodejs 获取串口数据
由于项目要求,项目为(B/S)架构 ,需要在页面上读取串口数据,于是就需要nodejs了
使用 nodejs 的一个插件 :serialport
现在先做个测试demo
1、先建立测试文件夹
2、在文件夹中安装serialport ,在文件夹下的 cmd 中输入
3、可能会出现 一个警告可用忽略
4、安装后 编写读取串口 js 文件 testport.js
5、运行 js 在文件夹下 cmd 中输入
执行成功:
可能的问题:
问题一: Flie not found
这个是电脑上没有安装串口驱动,或者虚拟串口
可用 虚拟串口程序
建立测试串口
问题二:Port is opening
需要加入 串口属性 autoOpen:false
在PHP网页上用javascript读取串口输入的数据
出于安全性考虑,,,javascript不能操作本地设备的,,,如果需要读取串口中输入的数据,,,用PHP代码来试试。。。。。