擅长:python、mysql、java
<p>导入<code>threading</code>模块并运行<code>SudsMove()</code>,如下所示:</p>
<pre><code>threading.Thread(target = SudsMove).start()
</code></pre>
<p>它将创建并启动一个执行移动的后台线程。</p>
<p><strong>编辑问题的答案:</strong></p>
<p>据我所知,<code>TestAbsoluteMove.Ssh(self)</code>只轮询一次速度并将结果存储到<code>self.Value</code>?!你用<code>self.assertEqual(self.Value, '3500')</code>测试预期的末端倾斜/旋转/位置?!</p>
<p>如果这是正确的,你应该等待相机开始移动。您可能可以在特定的时间间隔内轮询速度:</p>
<pre><code># Move camera in background thread
threading.Thread(target = SudsMove).start()
# What does this do?
self.command = './ptzpanposition -c 0 -u degx10'
# Poll the current speed in an interval of 250 ms
import time
measuredSpeedsList = []
for i in xrange(20):
# Assuming that this call will put the result in self.Value
TestAbsoluteMove.Ssh(self)
measuredSpeedsList.append(self.Value)
time.sleep(0.25)
print "Measured movement speeds: ", measuredSpeedsList
</code></pre>
<p>移动速度将是<code>measuredSpeedsList</code>(即<code>max(measuredSpeedsList)</code>)中的最大值。希望这有道理。。。</p>