【发布时间】:2017-12-23 14:13:25
【问题描述】:
我目前正在尝试仅使用 shell 脚本来轮询 gpio 值。
在使用 /sys/class/gpio/gpioxx/value 之前,我基本上是用测试文件开发了脚本
这是我找到的解决方案:
#!/bin/bash
SCRIPT_DIR=$(dirname $(readlink -f $0))
FILE_NAME=$SCRIPT_DIR"/fileTest"
while true
do
inotifywait -qq -e modify $FILE_NAME
read val < $FILE_NAME
echo $val
### do something here ###
done
这是一个基本文件,但我有两个问题。
1 - 保存文件时触发“修改”事件,而不是文件内容更改时触发。因此,如果我在文件中写入相同的值,则会触发该事件,但它不应该。
2 - 我说这个解决方案不适用于 gpios,如果我使用简单的 ascii 文件,它可以工作,但是当我在 /sys/class/gpio/gpioxx/value 上使用 inotifywait 时,它取决于。
如果我使用 echo value > /sys/class/gpio/gpioxx/value 会检测到事件,但如果我将引脚配置为输入并将其连接到 3v3 或 0V,则不会触发任何事情。
有人知道我如何仅使用脚本来触发此更改吗?
【问题讨论】: