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_NIDAQMXBASE
10 #define HEADER_PSYCHLOPS_DEVICES_NIDAQMXBASE
12 #include "../../core/devices/psychlops_io_analog.h"
18 // Notice: Currently Voltage range is limited from -5V to 5V.
21 struct NIDAQmxBaseAPI;
23 class AnalogInput_NIDAQmxBase : public AnalogInput {
28 AnalogInput_NIDAQmxBase(const char* devname = "Dev1/ai0");
29 AnalogInput_NIDAQmxBase(double rate, const char* devname = "Dev1/ai0");
30 virtual ~AnalogInput_NIDAQmxBase();
32 virtual int get(double* buf, int length, double timeout_second);
33 virtual double samplingRate();
34 virtual void samplingRate(double sample_per_sec);
38 virtual double getLatency();
39 virtual double getJitterSD();
40 virtual Interval getRange();
41 virtual bool isAnalog();
42 virtual void put(double);
43 virtual void pulse(double);
44 virtual void keep(double);
47 class AnalogOutput_NIDAQmxBase : public ITrigger, public AnalogOutput {
52 AnalogOutput_NIDAQmxBase(const char* devname = "Dev1/ao0");
53 virtual ~AnalogOutput_NIDAQmxBase();
54 virtual void put(double);
55 static void setVoltage(double val, const char* devname = "Dev1/ao0");
56 virtual void trigger();
57 virtual void pulse(double);
58 virtual void keep(double);
62 virtual double getLatency();
63 virtual double getJitterSD();
64 virtual Interval getRange();
65 virtual bool isAnalog();
72 } /* <- namespace Psycholops */