3 回答
TA贡献1820条经验 获得超9个赞
一种方法是设置一个Node.js环境,然后尝试 serial.io
我有这个,也许这就是要走的路。
对于实时应用程序,Node.js是与 socket.io 一起进行的方式,以便在您的网站上进行实时更新
TA贡献1833条经验 获得超4个赞
井。。。在尝试脚本并尝试使其在Linux中工作后,我无法使用PHP完成它,因为在Windows中,脚本只能写入而不是从设备读取数据。
我按照Ifaruki的建议与Node和 serial.io(谢谢你!!)并且使用以下脚本,我能够正确读取秤中的数据
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。
我现在需要做的是在浏览器中运行此功能,以便我可以在网页中从设备中吐出数据...如果有人能给我指出正确的方向,请...
TA贡献1911条经验 获得超7个赞
我刚刚使用PHP和Powershell完成了这项工作。让powershell读取串行端口并将数据转储到xampp中的文件中。然后PHP可以用来读取文件并用作REST调用处理程序。您可以让Ajax调用localhost来获取数据。
在计算机上设置 xampp 在管理员模式下打开 Poweshell 并执行以下命令。这将释放Powershell限制。否则,ps1 脚本无法在运行时运行。
Set-ExecutionPolicy Unrestricted
以 xampp/htdocs/weight 格式创建一个目录。我称之为重量,你可以叫任何你想要的东西。使用以下代码在文件夹中创建 .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);
?>
您现在已准备就绪。从 Xampp 控制面板运行 tomcat 服务器,您就可以通过 POST 请求接收重量了。您可以拨打电话http://localhost/weight/weightUtil.php
如果您发现访问C驱动器中文件的权限存在任何问题,只需添加对xampp的完全访问权限即可。然后,事情将顺利进行。everyone
- 3 回答
- 0 关注
- 95 浏览
添加回答
举报