Комплексное использование PHP - Взаимодействие с внешними устройствами - PullRequest
0 голосов
/ 03 апреля 2009

Возможно ли получить доступ и управлять внешними устройствами в PHP?

Например, сможет ли он изменить скорость USB-вентилятора или изменить направление беспроводного игрушечного автомобиля.

Я пытаюсь выйти за рамки веб-разработки, и мне интересно, способен ли используемый мной язык программирования обрабатывать мои идеи или мне следует подумать об изменении среды.

Если бы это было возможно, я был бы очень признателен за любые ссылки на материалы для чтения или предложения на других языках, которые могли бы быть более подходящими.

Спасибо!

Ответы [ 4 ]

3 голосов
/ 03 апреля 2009

В Linux это, безусловно, возможно при доступе к / dev / files. Но это будет очень утомительно. Я бы порекомендовал вам перейти на Python, Ruby, Lua или Java.

Например, есть привязки для libusb для Python , Ruby , Lua и Java .

1 голос
/ 03 апреля 2009

Вы можете написать внешнюю программу, а затем использовать PHP-функцию exec (или это была система?) Для взаимодействия с исполняемым файлом или скриптом.

Похоже, самый разумный способ сделать это. Другой хорошей альтернативой является создание программы или скрипта, который управляет внешним устройством, которое может взаимодействовать с API-интерфейсом типа RESTfull, предоставляемым через HTTP, а затем использовать lib_curl в среде PHP для общения между ними. Поверьте мне, создать базовый HTTP-сервер на C ++, который можно использовать для удаленного управления с помощью PHP (или JS в этом отношении), очень просто.

Подождите

Мне кажется, я неправильно прочитал вопрос;)

Если вы хотите заняться действительно классными вещами, я говорю, что вы изучаете C ++. C ++ - отличный язык, который не только открывает множество возможностей, но и обеспечивает хороший опыт обучения. C ++ очень и очень весело.

В ответ на комментарий

В случае с USB все немного по-другому и сложнее (поскольку USB имеет установленный протокол и т. Д.), Но последовательный процесс так же прост, как сброс данных в дескриптор.

Вы должны быть в состоянии выбрать C ++, чтобы довольно быстро добраться до этой точки. В любом случае, это отличный опыт.

0 голосов
/ 03 апреля 2009

Если вы найдете инструмент командной строки, который делает это, вы можете управлять им, используя exec () , system () , passthru () или shell_exec () (в зависимости от того, что выводит программа)

Обязательно escapeshellcmd () , если вы предоставляете доступ к этой программе с общедоступного веб-сайта.

0 голосов
/ 03 апреля 2009

Это было бы возможно с расширением, но не с чистым кодом PHP. Я не знаю каких-либо расширений, способных сделать что-то подобное, но я думаю, что это должно быть возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...