예제 #1
0
  def __init__(self, serial_number, *args, **kwargs):
    """
    Parameters
    ----------
    serial_number: string
      The serial number of the deformable mirror, something like "BIL103".
    """
    super(AlpaoDeformableMirror, self).__init__(*args, **kwargs)

    ## We need to constantly check for errors and need a buffer to
    ## have the message written to.  To avoid creating a new buffer
    ## each time, have a buffer per instance.
    self._err_msg = ctypes.create_string_buffer(self._err_msg_len)

    self._dm = asdk.Init(six.b(serial_number))
    if not self._dm:
      raise Exception("Failed to initialise connection: don't know why")
    ## In theory, asdkInit should return a NULL pointer in case of
    ## failure and that should be enough to check.  However, at least
    ## in the case of a missing configuration file it still returns a
    ## DM pointer so we still need to check for errors on the stack.
    self._raise_if_error(asdk.FAILURE)

    value = asdk.Scalar_p(asdk.Scalar())
    status = asdk.Get(self._dm, six.b("NbOfActuator"), value)
    self._raise_if_error(status)
    self._n_actuators = int(value.contents.value)
    self._trigger_type = TriggerType.SOFTWARE
    self._trigger_mode = TriggerMode.ONCE
예제 #2
0
파일: alpao.py 프로젝트: sagarhm/microscope
    def __init__(self, serial_number: str, **kwargs) -> None:
        super().__init__(**kwargs)
        self._dm = asdk.Init(serial_number.encode())
        if not self._dm:
            raise microscope.InitialiseError(
                "Failed to initialise connection: don't know why")
        # In theory, asdkInit should return a NULL pointer in case of
        # failure and that should be enough to check.  However, at least
        # in the case of a missing configuration file it still returns a
        # DM pointer so we still need to check for errors on the stack.
        self._raise_if_error(asdk.FAILURE)

        value = asdk.Scalar_p(asdk.Scalar())
        status = asdk.Get(self._dm, b"NbOfActuator", value)
        self._raise_if_error(status)
        self._n_actuators = int(value.contents.value)
        self._trigger_type = microscope.TriggerType.SOFTWARE
        self._trigger_mode = microscope.TriggerMode.ONCE
예제 #3
0
    def __init__(self, serial_number: str, **kwargs) -> None:
        """
        Parameters
        ----------
        serial_number: string
        The serial number of the deformable mirror, something like "BIL103".
        """
        super().__init__(**kwargs)
        self._dm = asdk.Init(serial_number.encode())
        if not self._dm:
            raise Exception("Failed to initialise connection: don't know why")
        ## In theory, asdkInit should return a NULL pointer in case of
        ## failure and that should be enough to check.  However, at least
        ## in the case of a missing configuration file it still returns a
        ## DM pointer so we still need to check for errors on the stack.
        self._raise_if_error(asdk.FAILURE)

        value = asdk.Scalar_p(asdk.Scalar())
        status = asdk.Get(self._dm, b'NbOfActuator', value)
        self._raise_if_error(status)
        self._n_actuators = int(value.contents.value)
        self._trigger_type = TriggerType.SOFTWARE
        self._trigger_mode = TriggerMode.ONCE