Source code for gpilib2.gpi

from gpilib2.rpc import rpc
from gpilib2.sensors import sensors
from gpilib2.powerbars import powerbars
from gpilib2.coronagraph import coronagraph
from gpilib2.source import source
from gpilib2.shutters import shutters
from gpilib2.pnc import pnc
from gpilib2.cameras import cameras
from gpilib2.mcds import mcds


[docs]class gpi: """All of GPI Args: sim (bool): Run in sim mode (default False). Setting to true automatically toggles verbose mode verb (bool): Toggle verbose mode (default False) sim_fill_val (str): Default value to fill for simulated GMB queries. Defaults to '0'. Attributes: powerbars (:py:class:`~gpilib2.powerbar`): Powerbars object sensors (:py:class:`gpilib2.sensors`): Sensors object. rpc (:py:class:`gpilib2.rpc`): rpc object for all communications. coronagraph (:py:class:`gpilib2.coronagraph`): Coronagraph object source (:py:class:`gpilib2.source`): Source object shutters (:py:class:`gpilib2.shutters`): Shutters object pnc (:py:class:`gpilib2.pnc`): PnC object cameras (:py:class:`gpilib2.cameras`) """ def __init__(self, sim: bool = False, verb: bool = False, sim_fill_val: str = "0"): """Instantiate all sub-objects and assign as attributes Args: sim (bool): Run in sim mode (default False). Setting to true automatically toggles verbose mode verb (bool): Toggle verbose mode (default False) sim_fill_val (str): Default value to fill for simulated GMB queries. Defaults to '0'. """ self.rpc = rpc(sim=sim) self.sensors = sensors(self.rpc) self.powerbars = powerbars(self.sensors) #self.coronagraph = coronagraph(self.rpc) #self.source = source(self.rpc) self.shutters = shutters(self.rpc) self.pnc = pnc(self.rpc) #self.cameras = cameras(self.rpc) self.mcds = mcds(self.rpc) def __str__(self) -> str: """Print attributes""" return self.rpc.__str__()
[docs] def get_zenith(self) -> float: """Return current zenith value""" return self.rpc.read_gmb_values("tlc.fromGemini.tcsZenith").astype(float)[0] # type: ignore
[docs] def set_zenith(self, val: float) -> None: """Set zenith value in GMB Args: val (float): Zenith angle in degrees Returns: None """ self.rpc.write_gmb_value("tlc.fromGemini.tcsZenith", val) assert self.get_zenith() == val, "Failed to set zenith angle."