How to handle timeouts¶
The default timeout is 2 seconds, but sometimes a command will timeout. If a
command timeouts, the reply is None.
The most likely scenario to encounter a timeout is when acquiring spectra in a
loop. For example, Chromation’s microspecgui is constantly acquiring frames
of spectrum data:
frame = kit.captureFrame() # acquire a spectrum
counts = frame.pixels # the signal (in ADC counts) at each pixel
If this application runs for several hours, it is likely to drop a frame at
least once. When that happens frame is None, raising the Exception:
NoneType has no attribute pixels.
A single dropped frame is not a reason to exit the application. Instead of
quitting, ignore the dropped frame and use the previous value stored in
counts:
frame = kit.captureFrame()
if frame is not None: counts = frame.pixels