我是树莓派的新手。
我的问题的实质如下:
我有一个 GPIO 引脚变化,必须对其进行监控(连续轮询)以查看它是否发生变化。如果它发生变化,我必须使用加载程序在我的 Qt5 项目中加载一个新的 QML 文件。考虑到它相当简单,我知道如何做装载机部分。我需要一种方法来轮询 GPIO 引脚并收到更改通知。
我读到 QSocketNotifier 类可能有帮助。但坦率地说,我对如何做到这一点一无所知。
如果您提供任何帮助来弄清楚如何做到这一点,我们将不胜感激。谢谢:)
编辑:我正在构建一种主菜单,以便在 GUI 上为在 Debian 上运行的基于树莓派的系统选择不同的选项。它大致就像一个机顶盒。相当于屏幕上基于 GUI 的按钮,它应该能够从连接到 GPIO 引脚的外部按钮获取基于硬件的中断,从而导致新页面加载/新事件开始。
如果我理解正确,代码的 C++ 部分必须捕获此引脚更改,并将其转发给 QML 部分。我需要能够做到这一点。
您对环境和其他需要做的事情只字不提。如果没有其他任务或操作系统,也许这就是您想要的?:
int last_state = -1; // impossible state so change is noticed the first time
for (;;) // do forever
{
int state = get_gpio (THE_EVENT);
if (state == last_state)
{
sleep (100);
continue;
}
do_loader_stuff();
last_state = state;
}
我是一名优秀的程序员,十分优秀!