def readout_frequency(self, freq=None): """Sets or gets the readout frequency for this channel. Readout frequency in Hz of the readout channel. If the AWG :class:`SequenceProgram` is of type "Readout", this Parameter is used to generate a readout tone at the given readout frequency for all readout channels that are enabled. This frequency is also used in the signal acquisition for digital demodulation if the readout channel is enabled. The frequency must be positive. """ if freq is None: return self._readout_frequency else: Parse.greater(freq, 0) self._readout_frequency = freq self._set_int_weights() return self._readout_frequency
def _init_scope_params(self): self._enable = Parameter( self, self._parent._get_node_dict(f"scopes/0/enable"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self.channel1 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/0/enable"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.channel2 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/1/enable"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.channel3 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/2/enable"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.channel4 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/3/enable"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.input_select1 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/0/inputselect"), device=self._parent, auto_mapping=True, ) self.input_select2 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/1/inputselect"), device=self._parent, auto_mapping=True, ) self.input_select3 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/2/inputselect"), device=self._parent, auto_mapping=True, ) self.input_select4 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/3/inputselect"), device=self._parent, auto_mapping=True, ) self._wave1 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/0/wave"), device=self._parent, ) self._wave2 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/1/wave"), device=self._parent, ) self._wave3 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/2/wave"), device=self._parent, ) self._wave4 = Parameter( self, self._parent._get_node_dict(f"scopes/0/channels/3/wave"), device=self._parent, ) self.trigger_source = Parameter( self, self._parent._get_node_dict(f"scopes/0/trigger/channel"), device=self._parent, auto_mapping=True, ) self.trigger_delay = Parameter( self, self._parent._get_node_dict(f"scopes/0/trigger/delay"), device=self._parent, set_parser=lambda v: Parse.multiple_of(v, 2e-9, "nearest"), ) self.length = Parameter( self, self._parent._get_node_dict(f"scopes/0/length"), device=self._parent, set_parser=[ lambda v: Parse.greater_equal(v, 16), lambda v: Parse.smaller_equal(v, 2 ** 18), lambda v: Parse.multiple_of(v, 16, "down"), ], ) self.time = Parameter( self, self._parent._get_node_dict(f"scopes/0/time"), device=self._parent, auto_mapping=True, ) self._segments_enable = Parameter( self, self._parent._get_node_dict(f"scopes/0/segments/enable"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self._segments_count = Parameter( self, self._parent._get_node_dict(f"scopes/0/segments/count"), device=self._parent, set_parser=lambda v: Parse.greater(v, 0), ) self._averaging_enable = Parameter( self, self._parent._get_node_dict(f"scopes/0/averaging/enable"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self._averaging_count = Parameter( self, self._parent._get_node_dict(f"scopes/0/averaging/count"), device=self._parent, set_parser=lambda v: Parse.greater(v, 0), )
def _init_awg_params(self): self._enable = Parameter( self, self._parent._get_node_dict(f"awgs/{self._index}/enable"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self.output1 = Parameter( self, self._parent._get_node_dict(f"sigouts/{2*self._index}/on"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.output2 = Parameter( self, self._parent._get_node_dict(f"sigouts/{2*self._index+1}/on"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.modulation_freq = Parameter( self, self._parent._get_node_dict(f"oscs/{4 * self._index}/freq"), device=self._parent, set_parser=lambda v: Parse.greater(v, 0), ) self.modulation_phase_shift = Parameter( self, self._parent._get_node_dict( f"sines/{2 * self._index + 1}/phaseshift"), device=self._parent, set_parser=Parse.phase, ) self.gain1 = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/outputs/0/gains/0"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1.0), lambda v: Parse.greater_equal(v, -1.0), ], ) self.gain2 = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/outputs/1/gains/1"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1.0), lambda v: Parse.greater_equal(v, -1.0), ], ) self.single = Parameter( self, self._parent._get_node_dict(f"awgs/{self._index}/single"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self.zsync_register_mask = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/mask"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 15), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_register_shift = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/shift"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 3), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_register_offset = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/offset"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1023), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_mask = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/mask"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 255), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_shift = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/shift"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 7), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_offset = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/offset"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1023), lambda v: Parse.greater_equal(v, 0), ], )
def _init_awg_params(self): self._enable = Parameter( self, self._parent._get_node_dict(f"awgs/{self._index}/enable"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self.output1 = Parameter( self, self._parent._get_node_dict(f"sigouts/{2*self._index}/on"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) self.output2 = Parameter( self, self._parent._get_node_dict(f"sigouts/{2*self._index+1}/on"), device=self._parent, set_parser=Parse.set_on_off, get_parser=Parse.get_on_off, ) # If the HDAWG has the MF option, the oscillator assignment # per core is different if "MF" in self._parent.options: oscs_multiplier = 4 else: oscs_multiplier = 1 self.modulation_freq = Parameter( self, self._parent._get_node_dict( f"oscs/{oscs_multiplier* self._index}/freq"), device=self._parent, set_parser=lambda v: Parse.greater(v, 0), ) self.modulation_phase_shift = Parameter( self, self._parent._get_node_dict( f"sines/{2 * self._index + 1}/phaseshift"), device=self._parent, set_parser=Parse.phase, ) self.gain1 = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/outputs/0/gains/0"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1.0), lambda v: Parse.greater_equal(v, -1.0), ], ) self.gain2 = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/outputs/1/gains/1"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1.0), lambda v: Parse.greater_equal(v, -1.0), ], ) self.single = Parameter( self, self._parent._get_node_dict(f"awgs/{self._index}/single"), device=self._parent, set_parser=Parse.set_true_false, get_parser=Parse.get_true_false, ) self.zsync_register_mask = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/mask"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 15), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_register_shift = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/shift"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 3), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_register_offset = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/register/offset"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1023), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_mask = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/mask"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 255), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_shift = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/shift"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 7), lambda v: Parse.greater_equal(v, 0), ], ) self.zsync_decoder_offset = Parameter( self, self._parent._get_node_dict( f"awgs/{self._index}/zsync/decoder/offset"), device=self._parent, set_parser=[ lambda v: Parse.smaller_equal(v, 1023), lambda v: Parse.greater_equal(v, 0), ], )