Доступ к последовательному порту через php

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

Я пробовал использовать fsockopen , fopen , proc_open и т. Д. Я не могу читать или писать в сокет.

Пример:

 $fp = fopen("/dev/ttyUSB0", "w+"); fwrite("enable"); echo fread($fp, 1024); 

    Я сталкивался с этим много раз в прошлом. Когда-то создавался интерфейс управления для Cisco 2811. Это может работать для вас, хотя я не уверен в вашей версии IOS (предполагая, что Cisco из-за вашего fwrite(); через консоль).

    Посмотрите, есть ли у пользователя первый доступ к устройству. Легко, это можно сделать с помощью screen /dev/ttyUSB0 . Запустите свои команды, чтобы отсоединить, нажмите ctrl+a затем d .

    Я обычно использую семейство stream_* для чего-то вроде этого.

    Вот пример:

     $stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30); fwrite($stream, "enable"); while(true){ $line = stream_get_contents( $stream ); if($line == 'exit'){ break; } } в $stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30); fwrite($stream, "enable"); while(true){ $line = stream_get_contents( $stream ); if($line == 'exit'){ break; } } 

    По умолчанию stream_socket_client запускается в режиме блокировки, поэтому вам не нужно вручную переключать его.

    Еще одна вещь, которую вы можете сделать, если не возражать, что установка расширения – это расширение DirectIO . Он обладает функциями, позволяющими вам установить скорость передачи и все лакомства, например здесь .

    Вы можете даже взглянуть на этот проект: http://code.google.com/p/php-serial/source/browse/trunk/