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