У меня есть кусок простого кода, который работает в среде 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.
Любые идеи о том, что я могу попробовать?
Благодарю.
`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;
Здесь нет mode
Команда в Linux.
Ближайший эквивалент stty
, но он не принимает идентичные аргументы командной строки. Вам нужно будет выполнить перевод; прочитайте страницу руководства для stty
для деталей.
Других решений пока нет …