Командой для установки интервала между кадрами является 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") не могут быть сипользованы одновременно.