Размер получаемых данных


Командой для получения данных является rxlen. В случае установки интервала между кадрами("set ifg") или разделителя интервала кадров("set ifd") возвращаемое значение будет представлять собой длину принятого кадра. Если получено несколько принятых кадров, то врзвращается длина первого принятого кадра.

"get rxlen [del]"

Возвращаеоме значение представляет собой строку в целочисленном виде.

Если вы укадите в разделителе del, то он вернет длину в раздеитель.

※ Обратитесь к "Разделение кадров с конца" на странице Разделитель интервала кадров для информации о том, как установить разделитель.

<?php
include "/lib/sd_spc.php";

$rwbuf = "";
$sid = 14;
spc_reset();
spc_sync_baud(115200);

spc_request_dev($sid, "set uart 115200N81");

while(1)
{
    $txfree = (int)spc_request_dev($sid, "get txfree");
    $rlen = (int)spc_request_dev($sid, "get rxlen");
    if($rlen > 0)
    {
        if($rlen <= $txfree)
        {
            // receive data
            $rwbuf = spc_request($sid, 6, "$rlen");

            // send data
            spc_request($sid, 7, $rwbuf);

            // print data
            echo $rwbuf;
        }
    }
    usleep(1000);
}
?>
<?php
include "/lib/sd_spc.php";

$rwbuf = "";
$sid = 14;
spc_reset();
spc_sync_baud(115200);

spc_request_dev($sid, "set uart 115200N81");

while(1)
{
    $txfree = (int)spc_request_dev($sid, "get txfree");
    $rlen = (int)spc_request_dev($sid, "get rxlen 0d");
    if($rlen > 0)
    {
        if($rlen <= $txfree)
        {
            // receive data
            $rwbuf = spc_request($sid, 6, "$rlen");

            // send data
            spc_request($sid, 7, $rwbuf);

            // print data
            echo $rwbuf;
        }
    }
    usleep(1000);
}
?>