首页 > 解决方案 > Python:多个应用程序/服务同时尝试访问资源,Sysfs GPIO

问题描述

我试图让不是多线程的系统能够共享 Sysfs GPIO 资源(即 LED)。应用程序像服务一样运行,作为单个系统没有main()所有这些应用程序的入口点,因此我无法创建资源对象然后在初始化时与它们所有人共享它。

例如,一个应用程序想要为某种事件闪烁红色 LED。与此同时,另一个应用程序出现故障并希望 LED 保持亮起。

什么是threading.Lock()or的等价物mutex,但跨多个应用程序/服务?

我现在拥有它的方式任何想要访问的人都可以使用它,但在上面的场景中我似乎可能会遇到 GPIO 错误。如果一个应用程序想要显示故障,而另一个应用程序收到中断并想要闪烁,则在另一个应用程序完成闪烁后,故障 LED 将被清除。

另一种理论是让 LEDController 作为自己的应用程序运行,任何想要使用它的人都使用客户端,该客户端将套接字/MQTT 数据发送到处理 LED 队列/优先级的控制器。

操作系统:mendel(debian Linux)

标签: python-3.xservicelockinggpio

解决方案


推荐阅读