目前,我讀了CTS和以下面的方式串行端口的DSR信號:如何在Linux中高效地等待RS232的CTS或DSR?
bool get_cts(int fd) {
int s;
ioctl(fd, TIOCMGET, &s);
return (s & TIOCM_CTS) != 0;
}
現在,我想等到get_cts()
返回true。簡單的循環並不是我認爲的最佳解決方案(因爲它非常耗費資源)。
void wait_cts(int fd) {
while(1) {
if(get_cts(fd)) {
return;
}
}
}
在Linux上有沒有更好的解決方案使用C或C++? (因爲我根本不需要串行數據線,所以我不能使用任何硬件流量控制。)
任何理由,你爲什麼不能睡在這個循環幾分? – Mat
我可以這樣做,但沒有其他解決方案嗎? – SecStone