from subsystems import Subsystem

class Led(Subsystem):
    def sample(self, led):
        """ sample(led number): returns sampling of LED led
        """
        return self.server.sample(led)
        
    def led_off(self):
        """ turns off all LEDs
        """
        print("Turning off all LEDs")
        return self.server.led_off()

    def led_on(self, led):
        """ turns on LED led at nominal current
        """
        return self.server.led_on(led)

    def led_on_current(self, led_current):
        """ turns on LED led at current current: Enter a string led_current
        """
        led, current = led_current.split("_")
        return self.server.led_on(int(led), int(current))
           
    def before_exposure(self, exposure, fitsbuilder):
        led = exposure['LED']
        fitsbuilder.append({'LED': led})
        if led:
            #led_sample_start = self.server.sample(int(led))
            iled = exposure['ILED']
            fitsbuilder.append({'ILED': iled})
            #fitsbuilder.append(led_sample_start, suffix='0')
            if iled:
                self.server.led_on(int(led), int(iled))
                led_sample_led_on = self.server.sample(int(led))
                vref_sample =  self.server.sample(61)
                t24_sample =  self.server.sample(58)
                fitsbuilder.append(led_sample_led_on, suffix='1')
                fitsbuilder.append(vref_sample, suffix='V')
                fitsbuilder.append(t24_sample, suffix='T')
            else:
                # turn off LED
                self.server.led_off()
    def after_exposure(self, exposure, fitsbuilder):
        led = exposure['LED']
        if led:
            led_sample_end = self.server.sample(int(led))
            fitsbuilder.append(led_sample_end, suffix='2')
        
            # turn off LED
            #self.server.led_off()

    def status(self):
        return {}
