수신 데이터 크기 확인


수신 데이터 크기를 확인하는 명령어는 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);
}
?>