2013-02-16 229 views
11

我在PHP中使用dio_read來捕獲串行設備(特別是來自危險原型的USB IR Toy v2)的輸入。PHP:如何捕捉dio_read()上的超時?

有時來自設備的輸入速度很慢(10+秒)。我想暫停dio_read,但不知道如何。

如果有人讀這篇文章知道如何,你能幫我指點正確的方向嗎?謝謝。

+0

不知道是否與串口設備文件句柄的作品,但嘗試http://php.net/manual/ en/function.stream-set-timeout.php – 2013-02-16 04:36:35

+0

是的。 :-)這裏至少有一個人知道如何。如果我將其作爲答案張貼,你會接受它是否正確?如果沒有,我可以改變爲否,這裏沒有人會知道嗎?你會接受嗎?這不是一個具體問題;請編輯一個。謝謝。 :-) – 2013-02-16 04:43:42

+0

你可以回答你自己的問題。我不會發布它,因爲我只是在黑暗中進行狂野刺殺。 – 2013-02-16 04:50:39

回答

1

如果沒有要讀取的數據,Windows上的dio_read(其他平臺未知)將不會超時。無法指定超時或在Windows上進行非阻塞式讀取。 http://php.net/dio_read

1

您可以使用dio_fctnl()的文件描述符標誌設置爲O_NONBLOCKO_ASYNC

+0

,但是這個只適用於Linux什麼關於Windows操作系統? – 2015-06-09 13:43:31