擅长:python、mysql、java
<p>边缘检测/回调代码非常有效,仅在事件发生时调用。但是,顶层<code>while True:</code>循环的效率非常低。你知道吗</p>
<p>考虑以下修改:</p>
<pre><code>try:
import Queue as queue # Python 2.x
except ImportError:
import queue # Python 3.x
eventQueue = queue.Queue()
def opencallback(channel):
eventQueue.put(GP.input(channel))
# ...your existing setup code here, specifically including:
GP.add_event_detect(doorIn, GP.BOTH, callback=opencallback)
while True:
event = eventQueue.get()
if event:
transmit("2-01")
capture(2, (False, True, False), True) # front cam
transmit("2-03")
else:
transmit("2-02")
GP.output(ledOut, True)
capture(3, (False, False, True), False)
GP.output(ledOut, False)
transmit("2-04")
</code></pre>
<p>注意<em>这与systemd无关</em>任何其他调用方法也会有相同的CPU使用问题。你知道吗</p>