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, [])
Ejemplo n.º 3
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)
	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
    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