2024-05-29 03:02:20 发布
网友
我希望能够使用来自多个应用程序的USB设备(例如,我运行一个flaskweb应用程序),确保一次只有一个使用它。在
在我的情况下,我用继电器来开门/关门。开门大约需要20秒。在此期间,继电器不应被激活,因为这将锁定在中间的门。在
提前谢谢!在
您可以将变量添加到配置中(确保其大写)
app.config['YOUR_GLOBAL'] = 'your global'
http://flask.pocoo.org/docs/config/
不完全是对你的问题的回答,但可能是另一个关于如何使用全局变量来解决这个问题的想法。在
你为什么不写一个小程序来控制你的USB设备呢。此脚本在服务器上运行一次(一个实例),并按照您需要的方式负责与设备的通信。它还处理并发性。在
现在,通过管道、套接字(不管使用这个脚本什么)与web应用程序通信,向它发送命令并从中接收结果。在
你有很多可能的解决办法。在
posix_ipc或sysv_ipcPython模块提供一个命名信号量类。您可以将信号量初始化为1,并让所有web进程在向USB设备发送命令时获取该信号量。在
使用文件锁可以实现某种类似的机制,可能使用fcntl.lockf。在
另一种完全不同的方法是在web服务器进程和usbapi之间放置一个新进程。此进程公开一个API,该API接收来自web服务器工作线程的请求,并通过单线程进程将这些请求隐式序列化到USB设备中。在
您可以将变量添加到配置中(确保其大写)
http://flask.pocoo.org/docs/config/
不完全是对你的问题的回答,但可能是另一个关于如何使用全局变量来解决这个问题的想法。在
你为什么不写一个小程序来控制你的USB设备呢。此脚本在服务器上运行一次(一个实例),并按照您需要的方式负责与设备的通信。它还处理并发性。在
现在,通过管道、套接字(不管使用这个脚本什么)与web应用程序通信,向它发送命令并从中接收结果。在
你有很多可能的解决办法。在
posix_ipc或sysv_ipcPython模块提供一个命名信号量类。您可以将信号量初始化为1,并让所有web进程在向USB设备发送命令时获取该信号量。在
使用文件锁可以实现某种类似的机制,可能使用fcntl.lockf。在
另一种完全不同的方法是在web服务器进程和usbapi之间放置一个新进程。此进程公开一个API,该API接收来自web服务器工作线程的请求,并通过单线程进程将这些请求隐式序列化到USB设备中。在
相关问题 更多 >
编程相关推荐