设定帧间隙的命令是ifg。
"set ifg (bits)"
在bits上设定帧间隙功能。
帧间隙功能设定是根据利用时间来区分数据帧的方式。 设定单位是字节,可最少从0设定至最大30000。 举例来讲在9600 bps中将帧间隙隔设定为10,实际设定时间约为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") 无法同时使用。