예제 #1
0
 def __make_markers(self, period):
     digitizer_marker = Sequencer.make_marker(
         period, self.digitizer_marker_uptime(),
         self.digitizer_marker_delay())
     awg_marker = Sequencer.make_marker(period, self.awg_marker_uptime(),
                                        self.awg_marker_delay())
     return dict({'m4i_mk': digitizer_marker, 'awg_mk': awg_marker})
예제 #2
0
    def test_offset_raises_errors(self):
        period = 10e-9
        offset = -11e-9
        uptime = 2e-9
        with self.assertRaises(ValueError) as error:
            Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertIn('Invalid argument value for offset: |-1.1e-08| > 1e-08!', error.exception.args)

        offset = -offset
        with self.assertRaises(ValueError) as error:
            Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertIn('Invalid argument value for offset: |1.1e-08| > 1e-08!', error.exception.args)
예제 #3
0
    def test_make_marker_no_regression(self):
        period = 10e-9
        offset = 0
        uptime = 4e-9
        marker = Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertEqual(offset, marker['offset'])
        self.assertEqual(uptime, marker['uptime'])

        parameters = marker['wave'].subtemplates[0].parameter_mapping
        self.assertEqual(10, parameters['period'])
        self.assertEqual(0, parameters['offset'])
        self.assertEqual(4, parameters['uptime'])
예제 #4
0
    def test_make_marker_negative_offset(self):
        period = 10e-9
        offset = -3e-9
        uptime = 2e-9
        marker = Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertEqual(offset, marker['offset'])
        self.assertEqual(uptime, marker['uptime'])

        parameters = marker['wave'].subtemplates[0].parameter_mapping
        self.assertEqual(7, parameters['offset'])
        self.assertEqual(2, parameters['uptime'])
        self.assertEqual(10, parameters['period'])
예제 #5
0
    def make_markers(self, period, repetitions=1):
        """ Constructs the markers for triggering the digitizer readout and the slave AWG
            start sequence. The sequence length equals the period x repetitions.

        Arguments:
            period (float): The period of the markers in seconds.
            repetitions (int): The number of markers in the sequence.
        """
        marker_properties = {}
        uptime = self.digitizer_marker_uptime()
        delay = self.digitizer_marker_delay()

        if VirtualAwg.__digitizer_name in self._settings.awg_map:
            digitizer_marker = Sequencer.make_marker(period, uptime, delay, repetitions)
            marker_properties[VirtualAwg.__digitizer_name] = [digitizer_marker]

        if VirtualAwg.__awg_slave_name in self._settings.awg_map:
            awg_marker = Sequencer.make_marker(period, uptime, delay, repetitions)
            marker_properties[VirtualAwg.__awg_slave_name] = [awg_marker]

        return marker_properties
예제 #6
0
    def test_make_marker_negative_offset_rollover(self):
        period = 10e-9
        offset = -2e-9
        uptime = 4e-9
        with patch('warnings.warn') as warn:
            marker = Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
            warn.assert_called_once_with('Marker rolls over to subsequent period.')
        self.assertEqual(offset, marker['offset'])
        self.assertEqual(uptime, marker['uptime'])

        parameters = marker['wave'].subtemplates[0].parameter_mapping
        self.assertEqual(8, parameters['offset'])
        self.assertEqual(4, parameters['uptime'])
        self.assertEqual(10, parameters['period'])
예제 #7
0
    def test_uptime_raises_errors(self):
        period = 10e-9
        offset = 0
        uptime = 0
        with self.assertRaises(ValueError) as error:
            Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertIn("Invalid argument value for uptime '0'!", error.exception.args)

        uptime = 11e-9
        with self.assertRaises(ValueError) as error:
            Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertIn("Invalid argument value for uptime '1.1e-08'!", error.exception.args)

        uptime = -1e-9
        with self.assertRaises(ValueError) as error:
            Sequencer.make_marker(period=period, offset=offset, uptime=uptime)
        self.assertIn("Invalid argument value for uptime '-1e-09'!", error.exception.args)