PHP USB последовательный порт вызова из Windows в Linux

У меня есть кусок простого кода, который работает в среде Windows — WAMP, например

<?php

`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents(com3, chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

Он подключается через USB-кабель (используя драйверы USB-Serial) к плате для подсветки некоторых светодиодов и работает нормально — аналогично, программное обеспечение Windows, такое как 232Analyser, может подключаться к COM3 и отправлять код в DEC, например, 1 255 255 255 255,5, и зажечь светодиоды. Число 255, это число DEC от: 1,2,4,8,16,32,64,128,255, которое будет зажигать определенный светодиод в зависимости от того, какой номер вызывается.

В любом случае, приведенный выше код отлично работает в Windows и подсвечивает светодиоды, вызывая этот файл PHP. Так можно назвать URL-адрес, как: Http: //localhost/lightled.php который работает хорошо.

Теперь мне нужно, чтобы он работал через Linux на Raspberry Pi, поэтому я только что установил стандартный Raspberry Linux и Apache с PHP.

Затем подключил USB-кабель, и он выглядит как / dev / ttyUSB0 У меня тогда CHMOD 777 / dev / ttyUSB0

И изменил код PHP на:

<?php

`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents('/dev/ttyUSB0', chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

Однако вызов этого файла в Linux в браузере не приводит к включению индикаторов, как в Windows.

Теперь, когда я вызываю этот файл, он проходит без ошибок, без chmod 777, он выдал ошибку отказа в разрешении. Так что кажется, что все проходит нормально, но что-то еще не так.

Итак, вопрос в том, кто знает, как заставить его работать в Linux, может быть, я неправильно называю USB, или Raspberry Linux нужны какие-то драйверы, или «режим» должен быть определен по-другому … или, возможно, десятичный / отправленный двоичный код неправильный, как «chr (2)» и т. д. должен отличаться и не будет отправляться одинаково при настройке LAMP.

Любые идеи о том, что я могу попробовать?

Благодарю.

3

Решение

`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

Здесь нет mode Команда в Linux.

Ближайший эквивалент stty, но он не принимает идентичные аргументы командной строки. Вам нужно будет выполнить перевод; прочитайте страницу руководства для stty для деталей.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]