Re: [问题] PyQT GUI Line CCD抓data问题

楼主: captdavince (小D)   2013-12-22 20:18:31
: : def read_frame(self):
: : try: frame = self.ccd.get_frame() #self.ccd是前面initialize过的camera.py
: : except: return None
: : if frame is not None:
: : return frame.image - np.mean(frame.dark)
: : else:
: : return None
: 这个read_frame函式 的回传值
: 可以是 None 或是 "有用的值"
: 但是下面的函式在使用时 并没有做判断
: : 这个部份的live数据的读取会是 (我是用一个100ms的counter,到时后就call下面)
: : def updateposition(self):
: : self.ccd.set_exposure_time(self.ui.ExpSlide.value()) #把快门设成使用者所要的
: : self.data = self.read_frame() #读取data
: : x = np.arange(len(self.data)) #取得data长度
: 读取后就直接用了?? 是None怎么辨??
感谢K大,
我现在把read_frame改写成这样
def read_frame(self):
frame = None
while not frame:
try:
frame = self.ccd.get_frame()
except:
time.sleep(self.ui.ExpSlide.value()/100000) #让他等一下
return frame is None
print(frame) #从print看一下它有没有正确抓
return frame.image-np.mean(frame.dark)
是不会抓到None了,但是因为把它写成只要不是none就是持续的try
(还是我误解这样写的意思)
现在的问题是卡在exposure time长一点的时候它程式应该就是一直在while的循环里
整个ui就会很卡
不过这个好像没有办法解决吼.
因为整个ui基本上还是同一个thread...multithread的部份对我好深奥.
感谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com