diff --git a/script/device/Image.py b/script/device/Image.py index 6f2588f..405a60f 100644 --- a/script/device/Image.py +++ b/script/device/Image.py @@ -62,6 +62,7 @@ class Image(DeviceBase, Readable): self.corrected_intensity = ImageCorrectedIntensity(self) self.last_filename = None self.last_image = None + self.current_reading = None def get_int(self, filename = None): @@ -99,15 +100,24 @@ class Image(DeviceBase, Readable): if filename == self.last_filename: return self.last_image + elif filename == self.current_reading: + while self.current_reading is not None: + time.sleep(0.005) + return self.last_image print "Reading image : " + filename + self.current_reading = filename try: ret = img_read(filename, self.pixel.image_header_length, self.pixel.PIX_XDIM, self.pixel.PIX_YDIM,self.pixel.PIX_COLOR_DEPTH) except: log("Error reading data file: " + str(filename) + " - " + str(sys.exc_info()[1]), False) + self.last_filename = None + self.last_image = None + self.current_reading = None return None - ret = Convert.reshape(ret, self.pixel.PIX_YDIM, self.pixel.PIX_XDIM) + ret = Convert.reshape(ret, self.pixel.PIX_YDIM, self.pixel.PIX_XDIM) self.last_filename = filename self.last_image = ret + self.current_reading = None return ret def read(self):