2 * psychlops_devices_nidaqmxbase.h
3 * Psychlops Standard Library (Universal)
5 * Last Modified 2009/07/30 by Kenchi HOSOKAWA
6 * (C) 2009 Kenchi HOSOKAWA, Kazushi MARUYA, Takao SATO
9 #ifndef HEADER_PSYCHLOPS_DEVICES_NIDAQMX
10 #define HEADER_PSYCHLOPS_DEVICES_NIDAQMX
12 #include "../../core/devices/psychlops_io_analog.h"
20 class NIDAQmx : public ITrigger {
28 void open(const char* devname = "Dev1/ai0");
29 void open(double rate, const char* devname = "Dev1/ai0");
31 virtual double getSamplingRate();
32 virtual void setSamplingRate(double sample_per_sec);
33 virtual double getLatency();
34 virtual double getJitterSD();
35 virtual Interval getRange();
36 virtual bool isAnalog();
39 virtual int NIDAQmx::get(double* buf, int length, double timeout_second);
40 virtual void put(double);
41 virtual void pulse(double);
42 virtual void keep(double);
45 class AnalogInput_NIDAQmx : public ITrigger, public AnalogInput {
50 AnalogInput_NIDAQmx(const char* devname = "Dev1/ai0");
51 AnalogInput_NIDAQmx(double rate, const char* devname = "Dev1/ai0");
52 virtual ~AnalogInput_NIDAQmx();
54 virtual int get(double* buf, int length, double timeout_second);
55 virtual void samplingRate(double sample_per_sec);
58 virtual double samplingRate();
59 virtual double getSamplingRate();
60 virtual double getLatency();
61 virtual double getJitterSD();
62 virtual Interval getRange();
63 virtual bool isAnalog();
64 virtual void put(double);
65 virtual void pulse(double);
66 virtual void keep(double);
69 class AnalogOutput_NIDAQmx : public ITrigger, public AnalogOutput {
74 AnalogOutput_NIDAQmx(const char* devname = "Dev1/ao0");
75 virtual ~AnalogOutput_NIDAQmx();
76 virtual void put(double);
77 static void setVoltage(double val, const char* devname = "Dev1/ao0");
78 virtual void pulse(double);
79 virtual void keep(double);
82 virtual double getLatency();
83 virtual double getJitterSD();
84 virtual Interval getRange();
85 virtual bool isAnalog();
91 } /* <- namespace Psycholops */