Отправка и чтение последовательных данных из приложения PHP Desktop с использованием Node.js или PHP - PullRequest
0 голосов
/ 27 февраля 2019

как написано в названии, я создал автономное веб-приложение с использованием 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);
}
...