QueryReadMode

Bases: KPFFunction

Returns string describing the read mode.

KTL Keywords Used:

  • kpfgreen.ACFFILE
  • kpfred.ACFFILE
Source code in kpf/spectrograph/QueryReadMode.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
41
42
43
44
45
class QueryReadMode(KPFFunction):
    '''Returns string describing the read mode.

    KTL Keywords Used:

    - `kpfgreen.ACFFILE`
    - `kpfred.ACFFILE`
    '''
    @classmethod
    def pre_condition(cls, args):
        pass

    @classmethod
    def perform(cls, args):
        modes = {'green': '', 'red': ''}
        for side in modes.keys():
            normal_file = cfg.get('acf_files', f'{side}_normal')
            fast_file = cfg.get('acf_files', f'{side}_fast')
            ACFFILE = ktl.cache(f'kpf{side}', 'ACFFILE')
            ACFFILE.monitor()
            filename = Path(ACFFILE.ascii).stem
            if filename == normal_file:
                modes[side] = 'normal'
            elif filename == fast_file:
                modes[side] = 'fast'
            else:
                green_mode = 'unknown'

        log.debug(f"Green read mode: {modes['green']}, Red read mode: {modes['red']}")
        print(f"Green read mode: {modes['green']}")
        print(f"Red read mode: {modes['red']}")
        return modes['green'], modes['red']

    @classmethod
    def post_condition(cls, args):
        pass