tvelu77/php-serial

PHP 8+ 用于访问串口的跨平台便捷类

v1.0 2024-06-21 19:40 UTC

This package is auto-updated.

Last update: 2024-09-21 20:56:37 UTC


README

这个项目是为了我在工作中遇到的一个项目而创建的,这个Symfony项目需要在Windows的COM端口上与机器通信。经过长时间在网上搜索,我发现PHP-Serial,这是由Xowap制作的。
然而,当我发现该项目不再维护,且pull请求未被接受时,我决定分享一些修复和改进!特别是,一个Windows修复,PHP 8+ 兼容性和更干净的代码(我认为是这样,我不知道,Java更好:P)。

我真的希望这能帮到某人!

当然,我不是主要作者,所有荣誉都归功于Xowap

示例

<?php
include 'PhpSerial.php';

// Let's start the class
$serial = new PhpSerial();

// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("COM1");

// We can change the baud rate, parity, length, stop bits, flow control
$serial->confBaudRate(2400);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");

// Then we need to open it
$serial->deviceOpen();

// To write into
$serial->sendMessage("Hello !");

// To read
$serial->readLine();

项目状态

错误

有很多错误。我知道有。我只是不知道它们是哪些。

平台支持

  • Linux:需要测试!
  • MacOS:需要测试!
  • Windows:它应该可以工作,至少在一个Windows服务器上,它是可以工作的 :)!

关注点

我对这段代码的行为有几个担忧。

  • 跨平台一致性。我严重怀疑所有操作在所有平台上都是一样的。
  • 自动关闭设备。有一个注册在PHP关闭时的自动关闭函数。这听起来相当荒谬,必须对此做些什么。
  • 使用异常。

呼吁贡献

就像所有开源项目一样,我需要人们来满足他们的需求,并将他们的代码贡献回来。

如果你愿意做任何这些事情,请不要犹豫,创建一个问题或pull请求,我会很高兴考虑它:)