GPIO狀態變化觸發我有一個GPIO引腳,其價值已在sysfs節點/sys/class/gpio/gpioXXXX/value
)表示,我想檢測改變該GPIO引腳的價值。根據the sysfs documentation你應該使用poll(2)或select(2)爲此。獲得通過在bash
但是,poll
和message
只能用作系統調用,而不能用於bash。有沒有一種方法可以用來通過bash腳本中GPIO引腳功能的狀態變化來觸發?
我的目的是不具有(半)忙等待或用戶級輪詢。我也想簡單地從bash做到這一點,而不必浸入其他語言。我並不打算在整個項目中堅持使用bash,但我確實希望在第一個版本中使用它。編寫一個簡單的C程序,可以從bash中調用這個功能,但在這之前,我想知道我是否沒有錯過任何東西。
簡稱:你不會失去了一些東西;如果不使用外部軟件(或者爲bash添加一個可加載模塊並添加一個內置命令),poll()不是直接可用的。 –
......說,如果表現是主要目標,我可能會建議你考慮放棄bash。這當然可以寫更有效的shell腳本比大多數人做的(當然也有更快的炮彈比bash)的,但仍然對如何高性能他們將永遠是一個上限,而上限仍然是waaaay低於點擔心什麼樣的中斷正在使用是相關的。 –
我沒有關於如何使用'poll()'的建議,但是如果這個gpio值在文件系統級別是可見的,那麼'tail -F'可能會把這個改變發送到標準輸出嗎?如果是這樣,一個超級簡單的解決方案,如[this](http:// stackoverflow。com/a/10958125/1072112)可能會做。 – ghoti