Example #1
0
            def startAoTask():

                try:
                    # Create channels.
                    for ii in range(len(source_list_unified)):
                        if ii == 0:
                            analog_data_temp = analog_data[:source_list_dict[
                                source_list_unified[0]]]
                        else:
                            analog_data_temp = analog_data[
                                source_list_dict[source_list_unified[0]]:]

                        self.ao_task = []
                        self.ao_task = nicontrol.AnalogWaveformOutput(
                            source=analog_data_temp[0].getSource())
                        for i in range(1, len(analog_data_temp)):
                            self.ao_task.addChannel(
                                source=analog_data_temp[i].getSource())

                        # Add waveforms
                        self.ao_task.setWaveforms(waveforms=waveforms,
                                                  sample_rate=frequency,
                                                  clock=wv_clock)

                        # Start task.
                        self.ao_task.startTask()
                except nicontrol.NIException as exception:
                    print(exception)
                    return True

                return False
Example #2
0
    def waveformOutput(self,
                       waveforms=None,
                       sample_rate=None,
                       finite=False,
                       rising=True,
                       start=True):
        """
        waveforms is a list of numpy arrays of type numpy.float64 that
        are assumed to be of equal length.
        """
        self.stopAndDelete()

        # Create task.
        self.task = nicontrol.AnalogWaveformOutput(self.lines[0],
                                                   max_val=self.max_val,
                                                   min_val=self.min_val)

        # Add lines.
        for line in self.lines[1:]:
            self.task.addChannel(source=line)

        # Add waveforms.
        self.task.setWaveforms(waveforms=waveforms,
                               sample_rate=sample_rate,
                               clock=self.clock,
                               finite=finite,
                               rising=rising)

        if start:
            self.task.startTask()
Example #3
0
                def initAoTask():

                    # Create channels.
                    self.ao_task = nicontrol.AnalogWaveformOutput(
                        analog_data[0][0], analog_data[0][1])
                    for i in range(len(analog_data) - 1):
                        self.ao_task.addChannel(analog_data[i + 1][0],
                                                analog_data[i + 1][1])

                    # Add waveform
                    return self.ao_task.setWaveform(waveform,
                                                    frequency,
                                                    clock=self.waveform_clock)
Example #4
0
    def startHardwareTimedMove(self, z_positions):
        # Clean up the previous task
        self.ni_task.stopTask()
        self.ni_task.clearTask()

        # Create hardware timed task
        self.ni_task = nicontrol.AnalogWaveformOutput(self.board, self.line)

        # Set waveform
        voltages = z_positions * self.scale

        # Convert to a list of channel values and write
        self.ni_task.setWaveform(voltages, 100, clock=self.trigger_source)
        # NOTE: the frequency is hardcoded to a maximum allowed value (arbitrary)

        self.ni_task.startTask()
Example #5
0
            def startAoTask():
                
                try:
                    # Create channels.
                    self.ao_task = nicontrol.AnalogWaveformOutput(source = analog_data[0].getSource())
                    for i in range(1, len(analog_data)):
                        self.ao_task.addChannel(source = analog_data[i].getSource())

                    # Add waveforms
                    self.ao_task.setWaveforms(waveforms = waveforms,
                                              sample_rate = frequency,
                                              clock = wv_clock)

                    # Start task.
                    self.ao_task.startTask()
                except nicontrol.NIException as exception:
                    print(exception)
                    return True
                    
                return False
Example #6
0
            def startAoTask():

                try:
                    # Create channels.
                    self.ao_task = nicontrol.AnalogWaveformOutput(
                        analog_data[0][0], analog_data[0][1])
                    for i in range(len(analog_data) - 1):
                        self.ao_task.addChannel(analog_data[i + 1][0],
                                                analog_data[i + 1][1])

                    # Add waveform
                    self.ao_task.setWaveform(waveform,
                                             frequency,
                                             clock=wv_clock)

                    # Start task.
                    self.ao_task.startTask()
                except nicontrol.NIException:
                    return True

                return False