PHP dio_read执行每个任务需要1分钟
我们正在尝试使用php从com端口读取数据。目前,执行每个任务只需一分钟。有没有办法缩短这段等待时间PHP dio_read执行每个任务需要1分钟,php,serial-port,Php,Serial Port,我们正在尝试使用php从com端口读取数据。目前,执行每个任务只需一分钟。有没有办法缩短这段等待时间 $bytesSent = dio_write($bbSerialPort, $dataToReboot); $runForSeconds = new DateInterval("PT10S"); //10 seconds $endTime = (new DateTime())->add($runForSeconds); echoFlush( "Waiting for {$r
$bytesSent = dio_write($bbSerialPort, $dataToReboot);
$runForSeconds = new DateInterval("PT10S"); //10 seconds
$endTime = (new DateTime())->add($runForSeconds);
echoFlush( "Waiting for {$runForSeconds->format('%S')} seconds to recieve data on serial port" );
while (new DateTime() < $endTime) {
$data = dio_read($bbSerialPort); //this is a blocking call
if ($data) {
echoFlush( "Data Recieved: ". $data );
$dataToBeep = pack("H*","020816000033C61B");// beep 3
$bytesbeepSent = dio_write($bbSerialPort, $dataToBeep);
$databeep = dio_read($bbSerialPort);
}
}
$bytesSent=dio_write($bbSerialPort,$dataToReboot);
$runForSeconds=新的日期间隔(“PT10S”)//10秒
$endTime=(new DateTime())->add($runForSeconds);
echoFlush(“等待{$runForSeconds->format('%S')}秒以接收串行端口上的数据”);
while(new DateTime()<$endTime){
$data=dio_read($bbSerialPort);//这是一个阻塞调用
如果($数据){
echoFlush(“收到的数据:.$Data”);
$dataToBeep=pack(“H*,“0208160000033C61B”);//蜂鸣3
$bytesbeepSent=dio_写入($bbSerialPort,$dataToBeep);
$databeep=dio_read($bbSerialPort);
}
}
你能显示dio_read()函数吗?@zeflex我想我已经在上面发布了dio_read,不是吗?$databeep=dio_read($bbSerialPort);这是迪奥·里德的声明,不是吗?对不起,我弄糊涂了。嗯,对不起,我不知道那个函数。我正在阅读函数的详细信息。。。快速提问,你确定是dio_read()
减慢了你的代码吗?是的,我确定,因为我尝试在没有dio_read()
的情况下运行另一个小程序,它工作正常。是的,我确定@zeflex你能展示一下dio_read()函数吗?@zeflex我想我已经把dio_read贴在上面了,不是吗?$databeep=dio_read($bbSerialPort);这是迪奥·里德的声明,不是吗?对不起,我弄糊涂了。嗯,对不起,我不知道那个函数。我正在阅读函数的详细信息。。。快速提问,你确定是dio_read()
减慢了你的代码吗?是的,我确定,因为我尝试在没有dio_read()
的情况下运行另一个小程序,它工作正常。是的,我确定@zeflex你能展示一下dio_read()函数吗?@zeflex我想我已经把dio_read贴在上面了,不是吗?$databeep=dio_read($bbSerialPort);这是迪奥·里德的声明,不是吗?对不起,我弄糊涂了。嗯,对不起,我不知道那个函数。我正在阅读函数的详细信息。。。快速提问,你确定是dio_read()
减慢了你的代码吗?是的,我确定,因为我尝试在没有dio_read()
的情况下运行另一个小程序,它工作正常。是的,我确信@zeflex