WaitForLFCReady

Bases: KPFTranslatorFunction

Wait for the Laser Frequency Comb (LFC) to be ready and in "AstroComb" mode

KTL Keywords Used:

  • kpfmon.HB_MENLOSTA
  • kpfmon.LFCREADYSTA
  • kpfcal.WOBBLE
  • kpfcal.OPERATIONMODE
  • kpfcal.SPECFLAT
Source code in kpf/calbench/WaitForLFCReady.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class WaitForLFCReady(KPFTranslatorFunction):
    '''Wait for the Laser Frequency Comb (LFC) to be ready and in "AstroComb"
    mode

    KTL Keywords Used:

    - `kpfmon.HB_MENLOSTA`
    - `kpfmon.LFCREADYSTA`
    - `kpfcal.WOBBLE`
    - `kpfcal.OPERATIONMODE`
    - `kpfcal.SPECFLAT`
    '''
    @classmethod
    def pre_condition(cls, args, logger, cfg):
        pass

    @classmethod
    def perform(cls, args, logger, cfg):
        expr = f"($kpfmon.HB_MENLOSTA == 'OK')"
        expr += f"and ($kpfmon.LFCREADYSTA == 'OK')"
        expr += f"and ($kpfcal.WOBBLE == 'False')"
        expr += f"and ($kpfcal.OPERATIONMODE == 'AstroComb')"
        expr += f"and ($kpfcal.SPECFLATIR == 'True')"
        expr += f"and ($kpfcal.SPECFLATVIS == 'True')"
        timeout = cfg.getfloat('times', 'LFC_startup_time', fallback=300)
        success = ktl.waitFor(expr, timeout=timeout)
        return success

    @classmethod
    def post_condition(cls, args, logger, cfg):
        pass