ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
enlighten.device.Spectrometer.Spectrometer Class Reference

Represents an individual Spectrometer within the set of connected spectrometers managed by Multispec. More...

Public Member Functions

 __eq__ (self, other)
 
 __hash__ (self)
 
 __init__ (self, device, ctl)
 
 __ne__ (self, other)
 
 __str__ (self)
 
 change_device_setting (self, setting, value=0)
 send commands to device thread via (name, value) pickleable tuples
 
 clear (self)
 
 clear_graph (self)
 erase, but do not delete, this graph curve from the graph
 
 close (self)
 
AbstractUSBDevice get_device_type (self)
 
 get_fwhm (self, unit)
 
 get_image_pathname (self)
 
MockUSBDevice get_mock (self)
 
 get_new_pixel (self, x)
 The user dragged the line, so lookup the x-coordinate in the Graph axis (wl, wn etc) and convert back to pixels so we can update the EEPROM's ROI.
 
 get_x_from_pixel (self, px)
 
 has_excitation (self)
 
 init_curtains (self)
 Horizontal ROI.
 
 is_acquisition_timeout (self)
 
bool is_mock (self)
 
 left_region_changed_callback (self)
 
 reset_acquisition_timeout (self)
 Was disabled for awhile because experimental features like laser ramping and IMX overrides can cause long gaps between acquisitions, but bringing back.
 
 right_region_changed_callback (self)
 
 send_alert (self, setting, value=True)
 
 update_curtains_editable (self)
 

Public Attributes

 app_state = None
 
bool closing = False
 
 color = None
 
 converter = AxisConverter(ctl)
 
 ctl = ctl
 
 curve = None
 
 device = None
 
 device_id = None
 
 fwhm = avg
 
str label = None
 
 left_region_changed_callback
 
 next_expected_acquisition_timestamp = None
 
 right_region_changed_callback
 
 roi_region_left = None
 
 roi_region_right = None
 
 settings = None
 
 wp_model_info = None
 

Detailed Description

Represents an individual Spectrometer within the set of connected spectrometers managed by Multispec.

The fundamental justification for this class is to persist a reference to each connected spectrometer's SpectrometerSettings and SpectrometerApplicationState objects.

It is reasonable to ask whether ALL of SpectrometerApplicationState can be moved in here.

Architecture
                                      _______________         
                                     |   Controller  |        
                                     |_______________|        
                  +---------------------------^--------------------+
                 < >                                               |
        __________v___________                                _____v_____
       | WasatchDeviceWrapper | <------------.               | Multispec |
       |______________________|               `              |___________|
                  ^                           |                   < >
                  | .wrapper_worker           |                    | .spectrometers{}
           _______v_______                    |             _______v______
          | WrapperWorker |                   `--- .device | Spectrometer |
          |_______________|                                |______________|
                  ^
                  | .connected_device
           _______v_______
          | WasatchDevice |
          |_______________|
                  ^
                  | .hardware
    ______________v______________
   | FeatureIdentificationDevice | .device --> usb.core.Device
   |_____________________________|
                  ^
                  | .device_type
         _________v_________
        | AbstractUSBDevice |
        |___________________|
                 /_\ 
                  |
        +---------+-------+
 _______v_______   _______v_______ 
| MockUSBDevice | | RealUSBDevice |
|_______________| |_______________|
Note
fair bit of Controller can probably be moved into here
seems save to deepcopy and pass to plugins
.curve is created in MultiSpec.add
Todo
consider moving to enlighten.device

Constructor & Destructor Documentation

◆ __init__()

enlighten.device.Spectrometer.Spectrometer.__init__ ( self,
device,
ctl )

Member Function Documentation

◆ __eq__()

enlighten.device.Spectrometer.Spectrometer.__eq__ ( self,
other )

◆ __hash__()

enlighten.device.Spectrometer.Spectrometer.__hash__ ( self)

◆ __ne__()

enlighten.device.Spectrometer.Spectrometer.__ne__ ( self,
other )

◆ __str__()

enlighten.device.Spectrometer.Spectrometer.__str__ ( self)

◆ change_device_setting()

enlighten.device.Spectrometer.Spectrometer.change_device_setting ( self,
setting,
value = 0 )

send commands to device thread via (name, value) pickleable tuples

◆ clear()

enlighten.device.Spectrometer.Spectrometer.clear ( self)

◆ clear_graph()

enlighten.device.Spectrometer.Spectrometer.clear_graph ( self)

erase, but do not delete, this graph curve from the graph

◆ close()

enlighten.device.Spectrometer.Spectrometer.close ( self)

◆ get_device_type()

AbstractUSBDevice enlighten.device.Spectrometer.Spectrometer.get_device_type ( self)

◆ get_fwhm()

enlighten.device.Spectrometer.Spectrometer.get_fwhm ( self,
unit )
Parameters
unitshould be cm, nm or px

◆ get_image_pathname()

enlighten.device.Spectrometer.Spectrometer.get_image_pathname ( self)

◆ get_mock()

MockUSBDevice enlighten.device.Spectrometer.Spectrometer.get_mock ( self)

◆ get_new_pixel()

enlighten.device.Spectrometer.Spectrometer.get_new_pixel ( self,
x )

The user dragged the line, so lookup the x-coordinate in the Graph axis (wl, wn etc) and convert back to pixels so we can update the EEPROM's ROI.

◆ get_x_from_pixel()

enlighten.device.Spectrometer.Spectrometer.get_x_from_pixel ( self,
px )

◆ has_excitation()

enlighten.device.Spectrometer.Spectrometer.has_excitation ( self)

◆ init_curtains()

enlighten.device.Spectrometer.Spectrometer.init_curtains ( self)

Horizontal ROI.

◆ is_acquisition_timeout()

enlighten.device.Spectrometer.Spectrometer.is_acquisition_timeout ( self)

◆ is_mock()

bool enlighten.device.Spectrometer.Spectrometer.is_mock ( self)

◆ left_region_changed_callback()

enlighten.device.Spectrometer.Spectrometer.left_region_changed_callback ( self)

◆ reset_acquisition_timeout()

enlighten.device.Spectrometer.Spectrometer.reset_acquisition_timeout ( self)

Was disabled for awhile because experimental features like laser ramping and IMX overrides can cause long gaps between acquisitions, but bringing back.

◆ right_region_changed_callback()

enlighten.device.Spectrometer.Spectrometer.right_region_changed_callback ( self)

◆ send_alert()

enlighten.device.Spectrometer.Spectrometer.send_alert ( self,
setting,
value = True )

◆ update_curtains_editable()

enlighten.device.Spectrometer.Spectrometer.update_curtains_editable ( self)

Member Data Documentation

◆ app_state

enlighten.device.Spectrometer.Spectrometer.app_state = None

◆ closing

bool enlighten.device.Spectrometer.Spectrometer.closing = False

◆ color

enlighten.device.Spectrometer.Spectrometer.color = None

◆ converter

enlighten.device.Spectrometer.Spectrometer.converter = AxisConverter(ctl)

◆ ctl

enlighten.device.Spectrometer.Spectrometer.ctl = ctl

◆ curve

enlighten.device.Spectrometer.Spectrometer.curve = None

◆ device

enlighten.device.Spectrometer.Spectrometer.device = None

◆ device_id

enlighten.device.Spectrometer.Spectrometer.device_id = None

◆ fwhm

enlighten.device.Spectrometer.Spectrometer.fwhm = avg

◆ label

str enlighten.device.Spectrometer.Spectrometer.label = None

◆ left_region_changed_callback

enlighten.device.Spectrometer.Spectrometer.left_region_changed_callback
Initial value:
= pyqtgraph.LinearRegionItem((roi.end, self.settings.eeprom.active_pixels_horizontal),
pen = region_color,
brush = region_color,
movable = True,
swapMode = "block")

◆ next_expected_acquisition_timestamp

enlighten.device.Spectrometer.Spectrometer.next_expected_acquisition_timestamp = None

◆ right_region_changed_callback

enlighten.device.Spectrometer.Spectrometer.right_region_changed_callback

◆ roi_region_left

enlighten.device.Spectrometer.Spectrometer.roi_region_left = None

◆ roi_region_right

enlighten.device.Spectrometer.Spectrometer.roi_region_right = None

◆ settings

enlighten.device.Spectrometer.Spectrometer.settings = None

◆ wp_model_info

enlighten.device.Spectrometer.Spectrometer.wp_model_info = None

The documentation for this class was generated from the following file: