def __init__(self, dev_name='Dev1/ai0:1', frame_rate=120, lp_filt_freq=4, lp_filt_order=3, force_params='force_params.txt'): # specific variables for this device to operate with self.load_force_params(force_params) self.dev_name = dev_name self.task_handle = uInt32 self.ai_task_handle = self.task_handle(0) self.num_channels = 4 self.points = 1 self.points_read = uInt32() self.DAQ_data = np.zeros((self.points*self.num_channels), dtype=np.float64) NIDAQ.DAQmxCreateTask("", ctypes.byref(self.ai_task_handle)) NIDAQ.DAQmxCreateAIVoltageChan(self.ai_task_handle, self.dev_name, '', c.DAQmx_Val_Diff, MINIMUM, MAXIMUM, c.DAQmx_Val_Volts, None) NIDAQ.DAQmxStartTask(self.ai_task_handle) # define data buffers and filters self.volts_zero = np.array([0.0,0.0,0.0,0.0]) self.frame_rate = frame_rate self.zero_time = int(0.25*frame_rate) self.buffer_size = 3*frame_rate self.volts_buffer = np.zeros((4, self.buffer_size)) self.force_buffer = np.zeros((4, self.buffer_size)) (self.butter_lowpass_rt_b, self.butter_lowpass_rt_a) = gf.butter_lowpass(lp_filt_freq, self.frame_rate, lp_filt_order)
def __init__(self, analog_in_chans='Dev5/ai0:1', digital_out_chans='Dev5/port1/line0', frame_rate=120, lp_filt_freq=4, lp_filt_order=3, force_params='force_params.txt'): # specific variables for this device to operate with self.load_force_params(force_params) self.ai_chans = analog_in_chans self.do_chans = digital_out_chans self.task_handle = uInt32 self.ai_task_handle = self.task_handle(0) self.num_channels = 5 self.points = 1 self.points_read = uInt32() self.DAQ_data = np.zeros((self.points*self.num_channels), dtype=np.float64) NIDAQ.DAQmxCreateTask("", ctypes.byref(self.ai_task_handle)) NIDAQ.DAQmxCreateAIVoltageChan(self.ai_task_handle, self.ai_chans, '', c.DAQmx_Val_Diff, MINIMUM, MAXIMUM, c.DAQmx_Val_Volts, None) NIDAQ.DAQmxStartTask(self.ai_task_handle) self.do_task_handle = self.task_handle(0) self.points_write = uInt32() NIDAQ.DAQmxCreateTask('', ctypes.byref(self.do_task_handle)) NIDAQ.DAQmxCreateDOChan(self.do_task_handle, self.do_chans, '', c.DAQmx_Val_ChanPerLine) # c.DAQmx_Val_ChanForAllLines NIDAQ.DAQmxStartTask(self.do_task_handle) self.set_digital_out(0) # define data buffers and filters self.volts_zero = np.array([0.0,0.0,0.0,0.0,0.0]) self.frame_rate = frame_rate self.zero_time = int(0.25*frame_rate) self.buffer_size = 3*frame_rate self.volts_buffer = np.zeros((5, self.buffer_size)) self.force_buffer = np.zeros((5, self.buffer_size)) (self.butter_lowpass_rt_b, self.butter_lowpass_rt_a) = gf.butter_lowpass(lp_filt_freq, self.frame_rate, lp_filt_order)