Example #1
0
    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)
Example #2
0
    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)