Простое PHP расширение, которое позволяет под ОС Windows осуществлять передачу данных по COM-порту. т.к. штатные методы не работают на чтение(или работают плохо).
Используйте скомпилированные библиотеки для нужной версии PHP https://www.php.net/manual/en/install.pecl.windows.php
Или соберите из исходного кода https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
Данная библиотека имеет несколько методов, которые говорят сами за себя Открыть порт
$port = comport_open('COM7');
Закрыть порт
comport_close($port);
Установить параметры порта (порт, скорость, кол-во бит, четность, стоп бит)
comport_set_parameters($port, 9600, 8, 0, 0);
//EVENPARITY-2, MARKPARITY-3, NOPARITY-0, ODDPARITY-1, SPACEPARITY-4 //ONESTOPBIT-0, ONE5STOPBITS-1, TWOSTOPBITS-2
Установить таймауты порта
comport_set_timeout($port, RIT, RTTC, RTTM, WTTC, WTTM);
RIT = 0xFFFFFFFF == 0; RTTC = 500; RTTM = 0; WTTC = 500; WTTM = 0; https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-commtimeouts https://www.lookrs232.com/com_port_programming/api_commtimeouts.htm
Пишем в порт строку
comport_write($port, $data);
Пишем в порт байты
comport_writeb($port, $bytes);
Читаем из порта строку
comport_read($port, $maxBytes);
Читаем из порта байты
comport_readb($port, $maxBytes);
This project is licensed under the MIT license.