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

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

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

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

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

3 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊

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

https://serialport.io/

我找到了這個,也許這就是要走的路。

對于實(shí)時應(yīng)用程序,Node.js 是與 socket.io 一起使用的方式,用于在您的網(wǎng)站上進(jìn)行實(shí)時更新


查看完整回答
反對 回復(fù) 2022-07-29
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊

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


在您的機(jī)器上設(shè)置 xampp 在管理員模式下打開 Poweshell 并執(zhí)行以下命令。這將釋放 powershell 限制。否則 ps1 腳本無法在運(yùn)行時運(yùn)行。


    Set-ExecutionPolicy Unrestricted

在 xampp/htdocs/ weight中創(chuàng)建一個目錄。我稱它為重量,你可以調(diào)用任何你想要的東西。使用以下代碼在文件夾中創(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)在已經(jīng)準(zhǔn)備好了。從 Xampp 控制面板運(yùn)行 tomcat 服務(wù)器,您就可以通過 POST 請求接收權(quán)重了。您可以撥打電話至http://localhost/weight/weightUtil.php


如果您發(fā)現(xiàn)訪問 C 盤中文件的權(quán)限有任何問題,只需添加everyone對 xampp 的完全訪問權(quán)限即可。事情就會順利進(jìn)行。


查看完整回答
反對 回復(fù) 2022-07-29
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊

嗯......在嘗試了一個腳本并試圖讓它在 Linux 中工作之后,我無法用 PHP 完成它,因為在 Windows 中,腳本只能寫入而不能從設(shè)備讀取數(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.js 不是很熟悉。


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


查看完整回答
反對 回復(fù) 2022-07-29
  • 3 回答
  • 0 關(guān)注
  • 357 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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