pid_read()


int pid_read ( int $pid, int/string &$buf [ , int $len ] )

Описание

pid_read() пытается прочитать до $len байтов из порта или переферийного $pid в буфер $buf.

Параметры

Возвращаемое значение

В случае успеха, количество прочитанных байтов возвращается, в противном случае появится PHP error. Однако, это не является ошибкой, если число меньше, чем число запрошенных байтов. Это может произойти в некоторых случаях, например, когда маньше байтов, чем на самом деле доступно на данный момент.

Пример

<?php
$buf = "";
$pid = pid_open("/mmap/uart0");      // open UART0

// set the device to 115200bps, no parity, 8 databit, 1stop bit
pid_ioctl($pid, "set baud 115200");
pid_ioctl($pid, "set parity 0");
pid_ioctl($pid, "set data 8");
pid_ioctl($pid, "set stop 1");
pid_ioctl($pid, "set flowctrl 0");

while(1)
{
    $rlen = pid_read($pid, $buf, 10);  // read maximum 10 bytes from the $pid into $buf
    if($rlen > 0)  // if there is any received data
    {
        $wlen = pid_write($pid, $buf, $rlen);  // write $rlen bytes of the $buf to the $pid
        echo "$rlen bytes received and echoed\r\n";
    }
}
pid_close($pid);
?>
<?php
$ch = 0;
$pid = pid_open("/mmap/uart0");  // open UART0

// set the device to 115200bps, no parity, 8 databit, 1stop bit
pid_ioctl($pid, "set baud 115200");
pid_ioctl($pid, "set parity 0");
pid_ioctl($pid, "set data 8");
pid_ioctl($pid, "set stop 1");
pid_ioctl($pid, "set flowctrl 0");
while(1)
{
    $rlen = pid_read($pid, $ch, 1);  // read 1 byte from the $pid into $ch
    if($rlen > 0)  // if there is received data
    {
        printf("received data: 0x%02x(%c).\r\n", $ch, $ch);  // print the data
    }
}
pid_close($pid);
?>

Смотрите также

pid_open() / pid_close() / pid_write() / pid_ioctl()

Примечания

Отсутствуют.