如何在不停止整个脚本的情况下停止数据测量
How to stop data measuring without stopping the whole script
我正在使用此处的一些代码从我的 linux 笔记本电脑上的 USB 鼠标获取 x、y 增量。这是一个获取增量并使用 matplotlib 绘制它的脚本。但主要问题是,我无法在不终止整个脚本的情况下停止测量。我在编程方面仍然是初学者,所以任何帮助都会很好。
我的代码:
import struct
import matplotlib.pyplot as plt
import numpy as np
import time
from drawnow import *
file = open( "/dev/input/mouse2", "rb" );
test = []
plt.ion()
def makeFig():
plt.plot(test)
#plt.show()
def getMouseEvent():
buf = file.read(3);
button = ord( buf[0] );
bLeft = button & 0x1;
x,y = struct.unpack( "bb", buf[1:] )
print ("x: %d, y: %d\n" % (x, y) )
return x,y
while True:
test.append(getMouseEvent())
drawnow(makeFig)
file.close();
您必须决定希望脚本在什么情况下停止。例如这将在 5 秒后停止:
start_time = time.time()
elapsed = 0
while elapsed < 5:
elapsed = time.time() - start_time:
test.append(getMouseEvent())
drawnow(makeFig)
如果您希望它在 100 次测量后停止:
count = 0
while count < 100:
count += 1
test.append(getMouseEvent())
time.sleep(1) # <-- optional
drawnow(makeFig)
我正在使用此处的一些代码从我的 linux 笔记本电脑上的 USB 鼠标获取 x、y 增量。这是一个获取增量并使用 matplotlib 绘制它的脚本。但主要问题是,我无法在不终止整个脚本的情况下停止测量。我在编程方面仍然是初学者,所以任何帮助都会很好。
我的代码:
import struct
import matplotlib.pyplot as plt
import numpy as np
import time
from drawnow import *
file = open( "/dev/input/mouse2", "rb" );
test = []
plt.ion()
def makeFig():
plt.plot(test)
#plt.show()
def getMouseEvent():
buf = file.read(3);
button = ord( buf[0] );
bLeft = button & 0x1;
x,y = struct.unpack( "bb", buf[1:] )
print ("x: %d, y: %d\n" % (x, y) )
return x,y
while True:
test.append(getMouseEvent())
drawnow(makeFig)
file.close();
您必须决定希望脚本在什么情况下停止。例如这将在 5 秒后停止:
start_time = time.time()
elapsed = 0
while elapsed < 5:
elapsed = time.time() - start_time:
test.append(getMouseEvent())
drawnow(makeFig)
如果您希望它在 100 次测量后停止:
count = 0
while count < 100:
count += 1
test.append(getMouseEvent())
time.sleep(1) # <-- optional
drawnow(makeFig)