from subsystems import Subsystem

class Spdk240(Subsystem):
    tracked_properties=['grating', 'wavelength', 'slits']
    expected_params={'grating': 'IDLE',
                     'wavelength': 'IDLE',
                     'slits': 'IDLE',
                     }
    
    def _config(self):
        self.server.open()
        self._slits = self.get_slits()
        self._grating = self.get_grating()

    def sync_tracked_properties(self):
        self._grating = self.get_grating()
        self._slits = self.get_slits()
        self._wavelength = self.get_wavelength()
        
    def get_grating(self):
        return self.server.get_grating()[1]

    def get_slits(self):
        return self.server.get_slits()[0]
    
    def set_grating(self, grating):
        if grating == 'IDLE':
            pass
        elif self._grating != grating:
            self.server.set_grating(grating)
            self._grating = grating
            self._wavelength = self.server.get_wavelength()
        return self._grating
