Open
Description
spectrometer and system information
model: USB2000PLUS
operating system: Ubuntu 20.10
python version: 3.8.5
python-seabreeze version: 1.3.0
installed-via: pip install seabreeze
current problem
I have a script that connects to 3 spectrometers and samples them every second to record the intensities. The problem is that everything works for a given amount of time (sometimes tens of minutes, sometimes hours) and then the code just hangs. On Ctrl+C I get a data transfer error.
minimal code example and error (very helpful if available)
from seabreeze.spectrometers import Spectrometer, list_devices
import time
def get_temperature(spec):
spec.f.raw_usb_bus_access.raw_usb_write(
struct.pack('<B', 0x6C), endpoint='primary_out')
raw_bytes_response = spec.f.raw_usb_bus_access.raw_usb_read(
endpoint='primary_in')
temp = 0.003906 * float(struct.unpack("<h", raw_bytes_response[1:3])[0])
return temp
if __name__ == '__main__':
blue = Spectrometer.from_serial_number('FLMS18610')
green = Spectrometer.from_serial_number('FLMS18611')
red = Spectrometer.from_serial_number('FLMT05929')
blue_exp_time = 380000
green_exp_time = 80000
red_exp_time = 500000
blue.integration_time_micros(int(blue_exp_time))
green.integration_time_micros(int(green_exp_time))
red.integration_time_micros(int(red_exp_time))
while True:
blue_wavelengths = blue.wavelengths()
blue_intensity = blue.intensities(correct_dark_counts=True,
correct_nonlinearity=True)
blue_temperature = get_temperature(blue)
green_wavelengths = green.wavelengths()
green_intensity = green.intensities(correct_dark_counts=True,
correct_nonlinearity=True)
green_temperature = get_temperature(green)
red_wavelengths = red.wavelengths()
red_intensity = red.intensities(correct_dark_counts=True,
correct_nonlinearity=True)
red_temperature = get_temperature(red)
# Save the file redacted for brevity
time.sleep(1)