3 回答

TA貢獻1820條經(jīng)驗 獲得超9個贊
一種方法是設置一個Node.js環(huán)境,然后嘗試 serial.io
我有這個,也許這就是要走的路。
對于實時應用程序,Node.js是與 socket.io 一起進行的方式,以便在您的網(wǎng)站上進行實時更新

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ù)...如果有人能給我指出正確的方向,請...

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
- 3 回答
- 0 關注
- 129 瀏覽
添加回答
舉報