本文目錄一覽:
- 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代碼來試試。。。。。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/283562.html