1

正如标题中所写,我使用 PHP Desktop 制作了一个独立的 Web 应用程序,现在我希望它从串行端口发送和读取数据。

我首先尝试使用这个 PHP Serial 类(https://github.com/rubberneck/php-serial),但我遇到了一些问题,尤其是在读取数据方面,所以我转向了 javascript 和 node.js。

我安装了 Node.js,并使用了 npm、serialport 和 ws 包,并且我使 serialport 仅与 Windows cmd 上的 node 命令一起工作。我尝试遵循一些示例并使用 ws 包将代码扩展到我的 PHP 桌面应用程序,但似乎没有任何效果,现在我不知道如何继续。

大家有什么建议吗?(特别是关于如何继续使用 ws 包)

这样做的最佳解决方案是什么?

提前致谢。

这是我使用的代码:

PHP代码:

<?php

session_start();
include_once 'PhpSerial.php';

if(isset($_POST['serial'])) {


    $serial = new phpSerial;

    $serial->deviceSet("COM3");

    $serial->deviceOpen('w+') ;

    $serial->confBaudRate(115200);

    $serial->sendMessage($_POST['serial'],1);

    $_SESSION['serial_data'] = $serial->readPort();

    $serial->deviceClose(); 

}

else
    header('Location: index.php');

?>

JS 代码:(没有 ws 部分,不想工作)

var serialport = require('serialport');

var portName = "COM3";

var myPort = new serialport(portName, {
    baudRate: 115200
});

myPort.on('open', showPortOpen);
myPort.on('data', readSerialData);
myPort.on('close', showPortClose);
myPort.on('error', showError);

function showPortOpen() {
   console.log('port open. Data rate: ' + myPort.baudRate);
}

function readSerialData(data) {
   console.log(data);
}

function showPortClose() {
   console.log('port closed.');
}

function showError(error) {
   console.log('Serial port error: ' + error);
}
4

0 回答 0