def write(self, context): task = AnalogOutputTask(_task_name(context)) minimum = context.minimum if context.minimum is not None else -10 maximum = context.maximum if context.maximum is not None else 10 task.create_voltage_channel(_phys_channel(context), terminal="rse", min_val=minimum, max_val=maximum) task.write(self, context.value, auto_start=False) task.start()
def runner(parser, options, args): task = AnalogOutputTask() args, kws = get_method_arguments('create_voltage_channel', options) phys_channel = kws['phys_channel'] task.create_voltage_channel(**kws) channels = task.get_names_of_channels() if not channels: print 'No channels specified' return args, kws = get_method_arguments('configure_timing_sample_clock', options) clock_rate = kws.get('rate', 1000.0) if not task.configure_timing_sample_clock(**kws): return args, kws = get_method_arguments('ao_write', options) layout = kws.get('layout', 'group_by_scan_number') if options.ao_task == 'sin': min_val = task.get_min(phys_channel) max_val = task.get_max(phys_channel) samples_per_channel = clock_rate / len(channels) x = np.arange(samples_per_channel, dtype=float) * 2 * np.pi / samples_per_channel data = [] for index, channel in enumerate(channels): data.append(0.5 * (max_val + min_val) + 0.5 * (max_val - min_val) * np.sin(x - 0.5 * index * np.pi / len(channels))) data = np.array(data) if layout == 'group_by_scan_number': data = data.T else: raise NotImplementedError( ` options.ai_task `) print 'samples available/written per channel= %s/%s ' % ( data.size // len(channels), task.write(data.ravel(), **kws)) if not options.ao_write_auto_start: task.start() try: time.sleep(options.ao_task_duration) except KeyboardInterrupt, msg: print 'Caught Ctrl-C.'
def runner (parser, options, args): task = AnalogOutputTask() args, kws = get_method_arguments('create_voltage_channel', options) phys_channel = kws['phys_channel'] task.create_voltage_channel (**kws) channels = task.get_names_of_channels() if not channels: print('No channels specified') return args, kws = get_method_arguments('configure_timing_sample_clock', options) clock_rate = kws.get('rate', 1000.0) if not task.configure_timing_sample_clock(**kws): return args, kws = get_method_arguments('ao_write', options) layout = kws.get('layout', 'group_by_scan_number') if options.ao_task=='sin': min_val = task.get_min(phys_channel) max_val = task.get_max(phys_channel) samples_per_channel = clock_rate / len(channels) x = np.arange(samples_per_channel, dtype=float)*2*np.pi/samples_per_channel data = [] for index, channel in enumerate(channels): data.append(0.5*(max_val+min_val) + 0.5*(max_val-min_val)*np.sin(x-0.5*index*np.pi/len(channels))) data = np.array(data) if layout=='group_by_scan_number': data = data.T else: raise NotImplementedError (repr(options.ao_task)) print('samples available/written per channel= %s/%s ' % (data.size//len(channels), task.write(data.ravel(), **kws))) if not options.ao_write_auto_start: task.start() try: time.sleep(options.ao_task_duration) except KeyboardInterrupt as msg: print('Caught Ctrl-C.') task.stop() del task
from nidaqmx import AnalogOutputTask import numpy as np data = 9.95 * np.sin(np.arange(1000, dtype=np.float64) * 2 * np.pi / 1000) task = AnalogOutputTask() task.create_voltage_channel('Dev1/ao2', min_val=-10.0, max_val=10.0) task.configure_timing_sample_clock(rate=1000.0) task.write(data) task.start() raw_input('Generating voltage continuously. Press Enter to interrupt..') task.stop() del task
from nidaqmx import AnalogOutputTask import numpy as np data = 9.95*np.sin(np.arange(1000, dtype=np.float64)*2*np.pi/1000) task = AnalogOutputTask() task.create_voltage_channel('Dev1/ao2', min_val=-10.0, max_val=10.0) task.configure_timing_sample_clock(rate = 1000.0) task.write(data) task.start() raw_input('Generating voltage continuously. Press Enter to interrupt..') task.stop() del task