как написано в названии, я создал автономное веб-приложение с использованием PHP Desktop, и теперь я хочу, чтобы оно отправляло и считывало данные с последовательного порта.
Сначала я попытался использовать этот класс PHP Serial (https://github.com/rubberneck/php-serial), но у меня были некоторые проблемы, особенно при чтении данных, поэтому я перешел на javascript и node.js.
Я установил Node.js и, используя пакеты npm, serialport и ws, и язаставил serialport работать только с помощью команды node в Windows cmd. Я пытался следовать некоторым примерам и распространять код на свое PHP Desktop App, используя также пакет ws, но, похоже, ничего не работает, и теперь я не знаю, как продолжить.
У вас, ребята, есть какие-нибудь предложения? (Частично о том, как продолжить работу с пакетом 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: (безчасть, которая не хотела работать)
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);
}