Межкадровый интервал


Командой для установки межкадрого интервала является ifg.

"set ifg (bits)"

Укажите интервал bits.

Межкадровый интервал - это способ различать кадры с учитыванием врменени. Интервал может быть установлен в диапазоне от 0 до 30000 бит. например, если вы установите интервал кадров от 10 до 9600 bps, фактическое время установки будет около 0.001 секунды (= 10/9600). Даже если устройство настроено на одно и то же значение, заданное время будет отличаится, если отличается скорость обмена.

В случае передачи данных

Переданные кадры передаются с заданным интервалом кадра.

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

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

spc_request_dev($sid, "set uart 115200N81");
// set frame to frame interval : 100 milliseconds
spc_request_dev($sid, "set ifg 11520");

spc_request($sid, 7, "This is the first frame.\r\n");
spc_request($sid, 7, "This is the second frame.\r\nIt will be transmitted 100 milliseconds later right after the first packet has been transmitted. \r\n");
?>

В случае получения данных

Если нет новых данных до установленного времени при приеме данных, то данные, полученные до этой точки, распознаются как один кадр. В то же время, вы можете проверить длину кадра при помощи команды "get rxlen" и получить данные в еденицах кадра.

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

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

spc_request_dev($sid, "set uart 115200N81");
// set frame to frame interval : 100 milliseconds
spc_request_dev($sid, "set ifg 11520");

while(1)
{
    $rlen = (int)spc_request_dev($sid, "get rxlen");
    if($rlen > 0)
    {
        $rbuf = spc_request($sid, 6, "$rlen");
        echo "frame length = $rlen\r\n";
        hexdump($rbuf);
    }
}
?>

※ Примечание: Параметр интервала между кадрами ("set ifg") и управление потоком (H и S) не могут быть использованы одновременно.
※ Примечание: Настройка интервала меджу кадрами ("set ifg") и настройка разделителя интервала кадров ("set ifd") не могут быть использованы одновременно.