프레임 구분자 설정


프레임 구분자를 설정하는 명령어는 ifd입니다. 데이터 수신시 이 명령어로 설정된 구분자를 이용하여 프레임을 구분합니다. 이 때 "get rxlen" 명령으로 프레임 길이를 확인하여 프레임단위로 데이터를 수신할 수 있습니다.

프레임 구분자 설정하기

프레임 구분자 설정 해제하기

프레임 구분자를 설정한 상태에서 이를 해제하는 방법은 다음과 같습니다.

"set ifd"

위와 같이 ifd명령 뒤에 아무것도 입력하지 않으면 프레임 구분자 설정이 해제됩니다.

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

$sid = 14;

spc_reset();
spc_sync_baud(115200);

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

spc_request_dev($sid, "set ifd 1b01");
echo spc_request_dev($sid, "get ifd"), "\r\n";  // output: 1b01

spc_request_dev($sid, "set ifd 1b02 1b03");
echo spc_request_dev($sid, "get ifd"), "\r\n";  // output: 1b02 1b03

spc_request_dev($sid, "set ifd");
echo spc_request_dev($sid, "get ifd"), "\r\n";  // output:
?>
<?php
include "/lib/sd_spc.php";

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

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

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);
}
?>

※ 주의: 프레임 구분자 설정("set ifd")과 프레임 간격 설정("set ifg")은 동시에 사용할 수 없습니다.