第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Javascript或PHP從數(shù)字規(guī)模的串行端口獲取數(shù)據(jù)?

使用Javascript或PHP從數(shù)字規(guī)模的串行端口獲取數(shù)據(jù)?

PHP
侃侃爾雅 2022-08-19 16:33:50
我不知道這是否真的可能,但我需要從帶有JavaScript或PHP的卡車的數(shù)字秤中獲得重量。目前,該秤連接到一臺速度極慢的PC上,該PC運行Windows XP以及該公司開發(fā)的自定義軟件,該軟件制作了該秤,以保留每天稱重的不同車輛的注冊表。不幸的是,PC無法升級,因為我會丟失所有驅動程序,并且該軟件在較新版本的Windows上不起作用。我在想,如果我可以通過Javascript或PHP與串行設備進行通信并獲取數(shù)據(jù),并獲得與自定義軟件相同的權重,那么我就可以使用PHP和MYSQL后端制作一個小網(wǎng)頁,該網(wǎng)頁可以執(zhí)行與自定義軟件相同的操作,但具有我實際缺少的所有功能并升級PC。我買了一個串行到USB適配器,并將設備連接到我的Windows 10筆記本電腦,看起來它正在正確傳輸數(shù)據(jù),如您在這張圖片中看到的那樣我已經(jīng)搜索了使用Javascript與串行設備進行通信的方法,我認為使用NodeJS可以做到這一點,但我不知道我是否可以在網(wǎng)頁上實現(xiàn)它。另外,我沒有用C或C++或C#寫任何東西,所以我不知道如何從這些語言中做到這一點(我看到的很多答案都是使用其中一種語言來做到這一點)。我還看到有一個名為chrome.serial的chrome應用程序,但我沒有找到任何工作示例來指示我如何繼續(xù)。任何幫助將不勝感激!!!:)
查看完整描述

3 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

一種方法是設置一個Node.js環(huán)境,然后嘗試 serial.io

https://serialport.io/

我有這個,也許這就是要走的路。

對于實時應用程序,Node.js是與 socket.io 一起進行的方式,以便在您的網(wǎng)站上進行實時更新


查看完整回答
反對 回復 2022-08-19
?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

井。。。在嘗試腳本并嘗試使其在Linux中工作后,我無法使用PHP完成它,因為在Windows中,腳本只能寫入而不是從設備讀取數(shù)據(jù)。


我按照Ifaruki的建議與Node和 serial.io(謝謝你?。。┎⑶沂褂靡韵履_本,我能夠正確讀取秤中的數(shù)據(jù)


var SerialPort = require('serialport');

var io = require('socket.io').listen(3000);


var serialPort = new SerialPort("COM4", {

    baudRate: 9600,

    parser: new SerialPort.parsers.Readline("\n"),

    dataBits: 7,

    parity: 'none',

    stopBits: 1,

    flowControl: false

});


io.sockets.on('connection', function(socket){

    socket.on('message', function(msg){

        console.log(msg);

    });


    socket.on('disconnected', function(){

        console.log('disconnected');

    });

});


var clearData = "";

var readData = "";


serialPort.on('open',function(){

    console.log('open');

    serialPort.on('data', function(data){

        const buf2 = Buffer.from(data)

        let wArray = buf2.toString('utf8');

        //this part just removes characters I don't need from the data

        let wSlice = wArray.slice(3, wArray.length);

        let rawWeight = wSlice.slice(0, -3);

        let fWeight = rawWeight.trim();

        let weight = parseInt(fWeight);

        console.log(weight);

    });

});


setTimeout(function(){

    serialPort.close(function(){

        console.log("Port Closed!");

    });

}, 3000);

我不是很熟悉Node。


我現(xiàn)在需要做的是在瀏覽器中運行此功能,以便我可以在網(wǎng)頁中從設備中吐出數(shù)據(jù)...如果有人能給我指出正確的方向,請...


查看完整回答
反對 回復 2022-08-19
?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

我剛剛使用PHP和Powershell完成了這項工作。讓powershell讀取串行端口并將數(shù)據(jù)轉儲到xampp中的文件中。然后PHP可以用來讀取文件并用作REST調(diào)用處理程序。您可以讓Ajax調(diào)用localhost來獲取數(shù)據(jù)。


在計算機上設置 xampp 在管理員模式下打開 Poweshell 并執(zhí)行以下命令。這將釋放Powershell限制。否則,ps1 腳本無法在運行時運行。


    Set-ExecutionPolicy Unrestricted

以 xampp/htdocs/weight 格式創(chuàng)建一個目錄。我稱之為重量,你可以叫任何你想要的東西。使用以下代碼在文件夾中創(chuàng)建 .ps1 腳本


Start-Process PowerShell -Verb RunAs

$COM = [System.IO.Ports.SerialPort]::getportnames()

function read-com {

    $port= new-Object System.IO.Ports.SerialPort $COM,9600,None,8,one

    $port.Open()

    do {

        $line = $port.ReadLine() | Out-File -FilePath C:\xampp\htdocs\weight\weight.txt

        Write-Host $line # Do stuff here

    }

    while ($port.IsOpen)

}

read-com

添加一個 PHP 文件。我稱之為weightUtil.php。將以下代碼添加到其中。


<?php

header("Access-Control-Allow-Origin: *");

    $data = '';

    $myFileName = "weight.txt";

    $myfile = fopen($myFileName, "r") or die("Unable to open file!");

    if(filesize($myFileName) > 0){

        $data = fread($myfile,filesize($myFileName));

    } 

    echo $data;


    fclose($myfile);

?>

您現(xiàn)在已準備就緒。從 Xampp 控制面板運行 tomcat 服務器,您就可以通過 POST 請求接收重量了。您可以撥打電話http://localhost/weight/weightUtil.php


如果您發(fā)現(xiàn)訪問C驅動器中文件的權限存在任何問題,只需添加對xampp的完全訪問權限即可。然后,事情將順利進行。everyone


查看完整回答
反對 回復 2022-08-19
  • 3 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號