Commit dd35e2de authored by Davide Ricci's avatar Davide Ricci
Browse files

Refubrished device stx.py

  - Source Commit: 3b82b60c
  - Date: 2025-06-18 15:27:23
  - Job ID: 119114
  - Pipeline ID: 29518
  - [skip ci]
parent 3b82b60c
Loading
Loading
Loading
Loading
Loading
+133 −87
Original line number Diff line number Diff line
@@ -171,7 +171,9 @@ class Camera(STX):
            If None, the current UTC time is used.
        """
        if self.state != 0:
            log.error(f"Cannot start exposure, camera is not idle. State: {self.state}")
            log.error(
                f"Cannot start exposure, camera is not idle. State: {
                    self.state}")
            self.error.append("Camera not idle")
            return

@@ -214,7 +216,9 @@ class Camera(STX):
            The height of the sub-frame in pixels.
        """
        if self.state != 0:
            log.error(f"Cannot set window, camera is not idle. State: {self.state}")
            log.error(
                f"Cannot set window, camera is not idle. State: {
                    self.state}")
            self.error.append("Camera not idle")
            return

@@ -232,7 +236,8 @@ class Camera(STX):

        params = ["CameraXSize", "CameraYSize"]
        cam_x, cam_y = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        self.set_window(0, 0, int(cam_x), int(cam_y))

@@ -241,7 +246,8 @@ class Camera(STX):

        params = ["CameraXSize", "CameraYSize"]
        cam_x, cam_y = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        start_x = int(cam_x) // 4
        start_y = int(cam_y) // 4
@@ -255,7 +261,8 @@ class Camera(STX):

        params = ["CameraXSize", "CameraYSize"]
        cam_x, cam_y = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        cam_x, cam_y = res
        start_x = int(cam_x) * 9 // 20
@@ -271,7 +278,8 @@ class Camera(STX):

        params = ["BinX", "BinY"]
        binx, biny = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        return [int(binx), int(biny)]

@@ -279,7 +287,9 @@ class Camera(STX):
    def binning(self, b):

        if self.state != 0:
            log.error(f"Cannot change binning, camera is not idle. State: {self.state}")
            log.error(
                f"Cannot change binning, camera is not idle. State: {
                    self.state}")
            self.error.append("Camera not idle")
            return

@@ -292,7 +302,8 @@ class Camera(STX):

        params = ["CurrentFilter"]
        res = self.get("GetFilterSetting", params=params)
        if self.error: return None
        if self.error:
            return None

        return res

@@ -302,7 +313,8 @@ class Camera(STX):

        params = ["CoolerState"]
        res = self.get("ImagerGetSettings", params=params)
        if self.error: return None
        if self.error:
            return None

        return bool(res)

@@ -310,7 +322,9 @@ class Camera(STX):
    def cooler(self, b):

        if self.state != 0:
            log.error(f"Cannot change cooler state, camera is not idle. State: {self.state}")
            log.error(
                f"Cannot change cooler state, camera is not idle. State: {
                    self.state}")
            self.error.append("Camera not idle")
            return

@@ -321,7 +335,9 @@ class Camera(STX):
    def filter(self, n):

        if self.is_moving != 0:
            log.error(f"Cannot change filter, filter wheel is moving. State: {self.is_moving}")
            log.error(
                f"Cannot change filter, filter wheel is moving. State: {
                    self.is_moving}")
            self.error.append("Filter wheel busy")
            return

@@ -334,7 +350,8 @@ class Camera(STX):

        params = ["CCDTemperature"]
        res = self.get("ImagerGetSettings", params=params)
        if self.error: return None
        if self.error:
            return None

        return round(res, 1)

@@ -342,7 +359,9 @@ class Camera(STX):
    def temperature(self, t):

        if self.state != 0:
            log.error(f"Cannot change temperature, camera is not idle. State: {self.state}")
            log.error(
                f"Cannot change temperature, camera is not idle. State: {
                    self.state}")
            self.error.append("Camera not idle")
            return

@@ -353,9 +372,20 @@ class Camera(STX):
    def all(self):
        """dict: A comprehensive dictionary of the current camera state."""

        params = ["AmbientTemperature", "CCDTemperatureSetpoint", "CCDTemperature",
                  "CoolerState", "CoolerPower", "BinX", "BinY", "CameraXSize",
                  "CameraYSize", "StartX", "StartY", "NumX", "NumY"]
        params = [
            "AmbientTemperature",
            "CCDTemperatureSetpoint",
            "CCDTemperature",
            "CoolerState",
            "CoolerPower",
            "BinX",
            "BinY",
            "CameraXSize",
            "CameraYSize",
            "StartX",
            "StartY",
            "NumX",
            "NumY"]
        res = self.get("ImagerGetSettings", params=params)

        if self.error or not res or len(res) != len(params):
@@ -386,7 +416,8 @@ class Camera(STX):

        params = ["AmbientTemperature"]
        res = self.get("ImagerGetSettings", params=params)
        if self.error: return None
        if self.error:
            return None

        return round(res, 1)

@@ -396,7 +427,8 @@ class Camera(STX):

        params = ["CameraXSize", "CameraYSize", "BinX", "BinY"]
        camx, camy, binx, biny = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        return [int(camx) // int(binx) // 2, int(camy) // int(biny) // 2]

@@ -405,7 +437,8 @@ class Camera(STX):
        """str: The camera model description string."""

        res = self.get("Description")
        if self.error: return None
        if self.error:
            return None

        return res

@@ -415,7 +448,8 @@ class Camera(STX):

        params = ["CoolerPower"]
        res = self.get("ImagerGetSettings", params=params)
        if self.error: return None
        if self.error:
            return None

        return round(res)

@@ -426,7 +460,8 @@ class Camera(STX):
        """

        res = self.get("FilterState")
        if self.error: return None
        if self.error:
            return None

        return res

@@ -436,7 +471,8 @@ class Camera(STX):

        params = ["CameraXSize", "CameraYSize"]
        b_x, b_y = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        b_x, b_y = self.binning
        return [int(res[0]) // b_x, int(res[1]) // b_y]
@@ -447,7 +483,8 @@ class Camera(STX):

        params = ["CCDTemperatureSetpoint"]
        res = self.get("ImagerGetSettings", params=params)
        if self.error: return None
        if self.error:
            return None

        return res

@@ -458,7 +495,8 @@ class Camera(STX):
        """

        res = self.get("ImagerState")
        if self.error: return None
        if self.error:
            return None

        return res

@@ -469,7 +507,8 @@ class Camera(STX):
        """

        res = self.get("ImagerImageReady")
        if self.error: return None
        if self.error:
            return None

        return res

@@ -478,7 +517,8 @@ class Camera(STX):
        """list of str: Camera firmware and API version numbers."""

        res = self.get("VersionNumbers")
        if self.error: return None
        if self.error:
            return None

        return res

@@ -488,7 +528,8 @@ class Camera(STX):

        params = ["StartX", "NumX", "BinX"]
        startx, numx, binx = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        x_start = int(startx) // int(binx)
        x_end = (int(startx) + int(numx)) // int(binx)
@@ -500,7 +541,8 @@ class Camera(STX):

        params = ["StartY", "NumY", "BinY"]
        starty, numy, biny = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        if self.error:
            return [None, None]

        y_start = int(starty) // int(biny)
        y_end = (int(starty) + int(numy)) // int(biny)
@@ -511,8 +553,10 @@ class Camera(STX):
        """list of int: The current [X, Y] start coordinates for current binning."""

        params = ["StartX", "StartY", "BinX", "BinY"]
        startx, starty, binx, biny = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        startx, starty, binx, biny = self.get(
            "ImagerGetSettings", params=params)
        if self.error:
            return [None, None]

        return [int(startx) // int(binx), int(starty) // int(biny)]

@@ -521,8 +565,10 @@ class Camera(STX):
        """list of int: The current [X, Y] end coordinates for current binning."""

        params = ["StartX", "StartY", "NumX", "NumY", "BinX", "BinY"]
        startx, starty, numx, numy, binx, biny = self.get("ImagerGetSettings", params=params)
        if self.error: return [None, None]
        startx, starty, numx, numy, binx, biny = self.get(
            "ImagerGetSettings", params=params)
        if self.error:
            return [None, None]

        x_end = (int(startx) + int(numx)) // int(binx)
        y_end = (int(starty) + int(numy)) // int(biny)
+4 −4

File changed.

Contains only whitespace changes.