コード例 #1
0
    def _set_setpoints(self, names, values):

        kwargs = dict(zip(names, np.atleast_1d(values)))

        set_point = FieldVector()
        set_point.copy(self._set_point)
        if len(kwargs) == 3:
            set_point.set_vector(**kwargs)
        else:
            set_point.set_component(**kwargs)

        self._adjust_child_instruments(set_point.get_components("x", "y", "z"))

        self._set_point = set_point
コード例 #2
0
ファイル: MercuryiPS_VISA.py プロジェクト: yuiponpon/Qcodes
    def _set_target(self, coordinate: str, target: float) -> None:
        """
        The function to set a target value for a coordinate, i.e. the set_cmd
        for the XXX_target parameters
        """
        # first validate the new target
        valid_vec = FieldVector()
        valid_vec.copy(self._target_vector)
        valid_vec.set_component(**{coordinate: target})
        components = valid_vec.get_components('x', 'y', 'z')
        if not self._field_limits(*components):
            raise ValueError(f'Cannot set {coordinate} target to {target}, '
                             'that would violate the field_limits. ')

        # update our internal target cache
        self._target_vector.set_component(**{coordinate: target})

        # actually assign the target on the workers
        cartesian_targ = self._target_vector.get_components('x', 'y', 'z')
        for targ, worker in zip(cartesian_targ, self.submodules.values()):
            if not isinstance(worker, MercuryWorkerPS):
                raise RuntimeError(f"Expected a MercuryWorkerPS but got "
                                   f"{type(worker)}")
            worker.field_target(targ)