Ejemplo n.º 1
0
    def testFromSlightlyBadData(self):
        """
		Not valid, but parsable inputs.
		"""

        data = [
            ('Too ', '#14Too long.', 'extra data ignored: \'long.\''),
        ]

        log = AssertHandler()

        for d, b, msg in data:
            log.flush()
            eq_(tools.BlockData.from_block_data(b), d)
            log.assert_logged('warning', msg)
Ejemplo n.º 2
0
	def testWithUnreadableResource(self):
		"""
		Watch the errors come rolling in.
		"""

		res = resources.Resource()

		buf = []
		delay = Quantity(30, 'ms')

		thr = resources.AcquisitionThread(delay, buf.append, res)

		log = AssertHandler()

		thr.start()
		time.sleep(delay.value * 4.5)
		thr.done = True

		log.assert_logged('error', 'not readable')

		eq_(buf, [])
    def testScenario(self):
        """
		Run through a simple scenario.

		Note: Verification should also be done manually based on the AWG output.
		"""

        log = AssertHandler()

        awg = self.obtain_device()
        awg.reset()

        assert not awg.enabled

        # Setup
        existing_waveforms = awg.waveform_names

        data1 = linspace(-1.0, 1.0, 21)
        data2 = linspace(1.0, -1.0, 21)

        log.flush()
        awg.channels[1].set_waveform(
            data1, {
                1: ([1, 1, 1, 0, 0] * len(data1))[:len(data1)],
                2: ([0, 0, 0, 1, 1] * len(data1))[:len(data1)],
                3: [1, 2, 3, 4],
            })
        log.assert_logged('warning', 'marker 3 ignored: \[1, 2, 3, 4\]')

        awg.channels[2].set_waveform(data2, name='Test 2')

        awg.sampling_rate = Quantity(200, 'MHz')

        awg.channels[1].enabled = True
        awg.channels[1].amplitude = Quantity(0.8, 'V')

        awg.channels[2].enabled = True
        awg.channels[2].amplitude = Quantity(0.4, 'V')

        awg.channels[3].waveform_name = 'Test 2'
        awg.channels[3].enabled = True

        awg.channels[4].waveform_name = 'Channel 1'

        del awg.channels[3].waveform_name

        awg.run_mode = 'triggered'
        awg.enabled = True

        # Verify
        eq_(awg.sampling_rate.value, 2e8)

        eq_(awg.waveform_names, existing_waveforms + ['Channel 1', 'Test 2'])

        assert_array_almost_equal(awg.get_waveform('Channel 1'), data1, 4)
        eq_(awg.channels[1].amplitude.value, 0.8)
        assert_array_almost_equal(awg.get_waveform('Test 2'), data2, 4)
        eq_(awg.channels[2].amplitude.value, 0.4)

        for ch in [1, 2]:
            eq_(awg.channels[ch].enabled, True)
        for ch in [3, 4]:
            eq_(awg.channels[ch].enabled, False)

        for ch in [1, 4]:
            eq_(awg.channels[ch].waveform_name, 'Channel 1')
        eq_(awg.channels[2].waveform_name, 'Test 2')
        eq_(awg.channels[3].waveform_name, '')

        eq_(awg.run_mode, 'triggered')
        assert awg.waiting_for_trigger
        assert awg.enabled

        awg.trigger()

        assert awg.waiting_for_trigger
        assert awg.enabled

        awg.run_mode = 'continuous'

        assert not awg.waiting_for_trigger
        assert awg.enabled