js獲取com口數據(js獲取介面數據)

本文目錄一覽:

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-tw/n/283562.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 08:08
下一篇 2024-12-22 08:08

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29

發表回復

登錄後才能評論