Relacs
0.9.8
|
#include <analogoutput.h>
Public Types | |
enum | Status { Idle =0, Running =1, Underrun =2, UnknownError =3 } |
Public Types inherited from Device | |
enum | DeviceTypes { MiscellaneousType = 0, AnalogInputType = 1, AnalogOutputType = 2, DigitalIOType = 3, TriggerType = 4, AttenuatorType = 5, AttenuateType = 6, ManipulatorType = 7, TemperatureType = 8, CameraType = 9 } |
Public Types inherited from Options | |
enum | SaveFlags { NoName = 1, NoType = 2, NoInclude = 4, SwitchNameType = 8, Embrace = 16, PrintRequest = 32, FirstOnly = 64, PrintType = 128, PrintStyle = 256, DontCloseSection = 512, AlwaysQuote = 1024, EscapeQuotes = 2048 } |
typedef deque< Parameter > ::iterator | iterator |
typedef deque< Parameter > ::const_iterator | const_iterator |
typedef deque< Options * > ::iterator | section_iterator |
typedef deque< Options * > ::const_iterator | const_section_iterator |
Public Member Functions | |
AnalogOutput (void) | |
AnalogOutput (int aotype) | |
AnalogOutput (const string &deviceclass, int aotype=0) | |
virtual | ~AnalogOutput (void) |
virtual int | open (const string &device) override |
virtual int | open (Device &device) override |
virtual bool | isOpen (void) const =0 |
virtual void | close (void)=0 |
virtual int | channels (void) const =0 |
virtual int | bits (void) const =0 |
virtual double | maxRate (void) const =0 |
double | delay (int channel) const |
void | setDelays (const vector< double > &delays) |
void | setDelay (double delay) |
double | externalReference (void) const |
void | setExternalReference (double extr) |
virtual int | directWrite (OutList &sigs)=0 |
virtual int | testWrite (OutList &sigs) |
virtual int | prepareWrite (OutList &sigs)=0 |
virtual int | startWrite (QSemaphore *sp=0)=0 |
virtual int | writeData (void)=0 |
virtual int | stop (void)=0 |
virtual int | reset (void)=0 |
virtual Status | status (void) const =0 |
bool | running (void) const |
virtual long | index (void) const |
virtual int | getAISyncDevice (const vector< AnalogInput * > &ais) const |
virtual bool | useAIRate (void) const |
virtual void | take (const vector< AnalogOutput * > &aos, vector< int > &aoinx, vector< bool > &aorate) |
virtual void | addTraces (vector< TraceSpec > &traces, int deviceid) const |
virtual int | matchTraces (vector< TraceSpec > &traces) const |
int | analogOutputType (void) const |
Public Member Functions inherited from Device | |
Device (int type=MiscellaneousType) | |
Device (const string &deviceclass, int type=MiscellaneousType) | |
virtual | ~Device (void) |
virtual const Options & | info (void) const |
virtual const Options & | settings (void) const |
int | deviceType (void) const |
string | deviceTypeStr (void) const |
string | deviceClass (void) const |
string | deviceFile (void) const |
string | deviceName (void) const |
string | deviceVendor (void) const |
string | deviceIdent (void) const |
virtual void | setDeviceIdent (const string &ident) |
virtual void | clearError (void) |
virtual string | errorStr (void) const |
void | setErrorStr (const string &strg) |
void | addErrorStr (const string &strg) |
void | setErrorStr (int errnum) |
void | addErrorStr (int errnum) |
virtual bool | success (void) const |
virtual bool | failed (void) const |
Public Member Functions inherited from Options | |
Options (void) | |
Options (const Options &o) | |
Options (const Options &o, int flags) | |
Options (const string &name, const string &type, int flags, int style) | |
Options (const Str &opttxt, const string &assignment=":=", const string &separator=",;") | |
Options (const StrQueue &sq, const string &assignment=":=") | |
Options (istream &str, const string &assignment=":=", const string &comment="#", const string &stop="", string *line=0) | |
virtual | ~Options (void) |
Options & | operator= (const Options &o) |
Options & | assign (const Options &o) |
Options & | append (const Options &o) |
Options & | add (const Options &o) |
Options & | insert (const Options &o, const string &atname="") |
Options & | assign (const Options &o, int flags) |
Options & | copy (Options &o, int flags) |
Options & | append (const Options &o, int flags) |
Options & | add (const Options &o, int flags) |
Options & | insert (const Options &o, int flags, const string &atname="") |
Parameter * | assign (const string &name, const string &value) |
Options * | parentSection (void) |
const Options * | parentSection (void) const |
void | setParentSection (Options *parentsection) |
void | resetParents (void) |
Options * | rootSection (void) |
const Options * | rootSection (void) const |
string | name (void) const |
virtual void | setName (const string &name) |
virtual void | setName (const string &name, const string &type) |
string | type (void) const |
void | setType (const string &type) |
string | include (void) const |
void | setInclude (const string &include) |
void | setInclude (const string &url, const string &name) |
int | flag (void) const |
bool | flag (int selectflag) const |
Options & | setFlag (int flag) |
Options & | addFlag (int flag) |
Options & | delFlag (int flag) |
Options & | clearFlag (void) |
int | style (void) const |
Options & | setStyle (int style) |
Options & | addStyle (int style) |
Options & | delStyle (int style) |
Options & | clearStyle (void) |
bool | checkType (int mask) const |
Str | warning (void) const |
iterator | begin (void) |
iterator | end (void) |
const_iterator | begin (void) const |
const_iterator | end (void) const |
section_iterator | sectionsBegin (void) |
section_iterator | sectionsEnd (void) |
const_section_iterator | sectionsBegin (void) const |
const_section_iterator | sectionsEnd (void) const |
const_iterator | find (const string &pattern, int level=-1) const |
iterator | find (const string &pattern, int level=-1) |
const_iterator | rfind (const string &pattern, int level=-1) const |
iterator | rfind (const string &pattern, int level=-1) |
const_section_iterator | findSection (const string &pattern, int level=-1) const |
section_iterator | findSection (const string &pattern, int level=-1) |
const_section_iterator | rfindSection (const string &pattern, int level=-1) const |
section_iterator | rfindSection (const string &pattern, int level=-1) |
const Parameter & | operator[] (int i) const |
Parameter & | operator[] (int i) |
const Parameter & | operator[] (const string &name) const |
Parameter & | operator[] (const string &name) |
const Options & | section (int i) const |
Options & | section (int i) |
const Options & | section (const string &name) const |
Options & | section (const string &name) |
Str | request (const string &name) const |
Parameter & | setRequest (const string &name, const string &request) |
Parameter::ValueType | valueType (const string &name) const |
Parameter & | setValueType (const string &name, Parameter::ValueType type) |
int | flags (const string &name) const |
bool | flags (const string &name, int flag) const |
Parameter & | setFlags (const string &name, int flags) |
Parameter & | addFlags (const string &name, int flags) |
Parameter & | delFlags (const string &name, int flags) |
Parameter & | clearFlags (const string &name) |
bool | changed (const string &name) |
int | style (const string &name) const |
Parameter & | setStyle (const string &name, int style) |
Parameter & | addStyle (const string &name, int style) |
Parameter & | delStyle (const string &name, int style) |
Str | format (const string &name) const |
Parameter & | setFormat (const string &name, int width=0, int prec=-1, char fmt='g') |
Parameter & | setFormat (const string &name, const string &format) |
int | formatWidth (const string &name) const |
int | size (const string &name) const |
Parameter & | add (const Parameter &np) |
Parameter & | insert (const Parameter &np, const string &atname="") |
Parameter & | addText (const string &name, const string &request, const string &dflt, int flags=0, int style=0) |
Parameter & | addText (const string &name, const string &dflt="", int flags=0, int style=0) |
Parameter & | insertText (const string &name, const string &atname, const string &request, const string &dflt, int flags=0, int style=0) |
Parameter & | insertText (const string &name, const string &atname="", const string &dflt="", int flags=0, int style=0) |
Str | text (const string &name, int index, const string &dflt="", const string &format="", const string &unit="") const |
Str | text (const string &name, const string &dflt="", const string &format="", const string &unit="") const |
void | texts (const string &name, vector< string > &s, const string &format="", const string &unit="") const |
Str | allText (const string &name, const string &dflt="", const string &format="", const string &unit="", const string &separator=", ") const |
Parameter & | setText (const string &name, const string &strg) |
Parameter & | setText (const string &name, const Parameter &p) |
Parameter & | pushText (const string &name, const string &strg) |
Str | defaultText (const string &name, const string &format="", const string &unit="") const |
Parameter & | setDefaultText (const string &name, const string &dflt) |
Parameter & | addSelection (const string &name, const string &request, const string &selection, int flags=0, int style=0) |
Parameter & | addSelection (const string &name, const string &selection="", int flags=0, int style=0) |
Parameter & | insertSelection (const string &name, const string &atname, const string &request, const string &selection, int flags=0, int style=0) |
Parameter & | insertSelection (const string &name, const string &atname="", const string &selection="", int flags=0, int style=0) |
Parameter & | selectText (const string &name, const string &strg, int add=0) |
Parameter & | selectText (const string &name, int index) |
int | index (const string &name) const |
int | index (const string &name, const string &strg) const |
Parameter & | addNumber (const string &name, const string &request, double dflt, double minimum, double maximum=MAXDOUBLE, double step=1.0, const string &unit="", const string &outputunit="", const string &format="", int flags=0, int style=0) |
Parameter & | addNumber (const string &name, const string &request, double dflt, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | addNumber (const string &name, double dflt, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | addNumber (const string &name, double dflt, const string &unit, int flags, int style=0) |
Parameter & | addNumber (const string &name, double dflt, double error, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | addNumber (const string &name, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | insertNumber (const string &name, const string &atname, const string &request, double dflt, double minimum, double maximum=MAXDOUBLE, double step=1.0, const string &unit="", const string &outputunit="", const string &format="", int flags=0, int style=0) |
Parameter & | insertNumber (const string &name, const string &atname, const string &request, double dflt, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | insertNumber (const string &name, const string &atname, double dflt, const string &unit="", const string &format="", int flags=0, int style=0) |
Parameter & | insertNumber (const string &name, const string &atname, const string &unit="", const string &format="", int flags=0, int style=0) |
double | number (const string &name, double dflt=0.0, const string &unit="", int index=0) const |
double | number (const string &name, const string &unit, double dflt=0.0, int index=0) const |
double | number (const string &name, int index, double dflt=0.0, const string &unit="") const |
double | number (const string &name, int index, const string &unit, double dflt=0.0) const |
void | numbers (const string &name, vector< double > &n, const string &unit="") const |
double | error (const string &name, const string &unit="", int index=0) const |
double | error (const string &name, int index, const string &unit="") const |
void | errors (const string &name, vector< double > &n, const string &unit="") const |
Parameter & | setNumber (const string &name, double number, double error, const string &unit="") |
Parameter & | setNumber (const string &name, double number, const string &unit="") |
Parameter & | pushNumber (const string &name, double number, double error=-1.0, const string &unit="") |
Parameter & | pushNumber (const string &name, double number, const string &unit) |
Parameter & | setNumber (const string &name, const Parameter &p) |
double | defaultNumber (const string &name, const string &unit="") const |
Parameter & | setDefaultNumber (const string &name, double dflt, const string &unit="") |
double | minimum (const string &name, const string &unit="") const |
double | maximum (const string &name, const string &unit="") const |
double | step (const string &name, const string &unit="") const |
Parameter & | setStep (const string &name, double step, const string &unit="") |
Parameter & | setMinMax (const string &name, double minimum=-MAXDOUBLE, double maximum=MAXDOUBLE, double step=1.0, const string &unit="") |
Str | unit (const string &name) const |
Str | outUnit (const string &name) const |
Parameter & | setUnit (const string &name, const string &internunit, const string &outunit="") |
Parameter & | setOutUnit (const string &name, const string &outputunit) |
Parameter & | changeUnit (const string &name, const string &internunit) |
Parameter & | addInteger (const string &name, const string &request, long dflt, long minimum=LONG_MIN, long maximum=LONG_MAX, long step=1, const string &unit="", const string &outputunit="", int width=0, int flags=0, int style=0) |
Parameter & | addInteger (const string &name, long dflt, const string &unit="", int width=0, int flags=0, int style=0) |
Parameter & | addInteger (const string &name, const string &unit="") |
Parameter & | insertInteger (const string &name, const string &atname, const string &request, long dflt, long minimum=LONG_MIN, long maximum=LONG_MAX, long step=1, const string &unit="", const string &outputunit="", int width=0, int flags=0, int style=0) |
Parameter & | insertInteger (const string &name, const string &atname, long dflt, const string &unit="", int width=0, int flags=0, int style=0) |
Parameter & | insertInteger (const string &name, const string &atname, const string &unit="", int width=0, int flags=0, int style=0) |
long | integer (const string &name, const string &unit="", long dflt=0, int index=0) const |
long | integer (const string &name, int index, long dflt=0, const string &unit="") const |
long | integer (const string &name, int index, const string &unit, long dflt=0) const |
void | integers (const string &name, vector< long > &n, const string &unit="") const |
void | integers (const string &name, vector< int > &n, const string &unit="") const |
Parameter & | setInteger (const string &name, long number, long error, const string &unit="") |
Parameter & | setInteger (const string &name, long number, const string &unit="") |
Parameter & | pushInteger (const string &name, long number, long error, const string &unit="") |
Parameter & | pushInteger (const string &name, long number, const string &unit="") |
Parameter & | setInteger (const string &name, const Parameter &p) |
long | defaultInteger (const string &name, const string &unit="") const |
Parameter & | setDefaultInteger (const string &name, long dflt, const string &unit="") |
Parameter & | setMinMax (const string &name, long minimum=LONG_MIN, long maximum=LONG_MAX, long step=1, const string &unit="") |
Parameter & | setMinMax (const string &name, int minimum, int maximum, int step=1, const string &unit="") |
Parameter & | addBoolean (const string &name, const string &request, bool dflt, int flags=0, int style=0) |
Parameter & | addBoolean (const char *name, const char *request, bool dflt, int flags=0, int style=0) |
Parameter & | addBoolean (const string &name, bool dflt, int flags=0, int style=0) |
Parameter & | addBoolean (const char *name, bool dflt, int flags=0, int style=0) |
Parameter & | insertBoolean (const string &name, const string &atname="", const string &request="", bool dflt=false, int flags=0, int style=0) |
Parameter & | insertBoolean (const string &name, const string &atname, int flags=0, int style=0) |
bool | boolean (const string &name, bool dflt=false, int index=0) const |
bool | boolean (const string &name, int index, bool dflt=false) const |
void | booleans (const string &name, vector< bool > &n) const |
Parameter & | setBoolean (const string &name, bool b) |
Parameter & | setBoolean (const string &name, const Parameter &p) |
bool | defaultBoolean (const string &name) const |
Parameter & | setDefaultBoolean (const string &name, bool dflt) |
Parameter & | addDate (const string &name, const string &request, int year=0, int month=0, int day=0, int flags=0, int style=0) |
Parameter & | addDate (const string &name, int year, int month, int day, int flags=0, int style=0) |
Parameter & | addDate (const string &name, int flags=0, int style=0) |
Parameter & | insertDate (const string &name, const string &atname="", const string &request="", int year=0, int month=0, int day=0, int flags=0, int style=0) |
Parameter & | insertDate (const string &name, const string &atname, int year=0, int month=0, int day=0, int flags=0, int style=0) |
Parameter & | insertDate (const string &name, const string &atname, int flags=0, int style=0) |
const Parameter & | date (const string &name, int index, int &year, int &month, int &day) const |
Parameter & | setDate (const string &name, int year, int month, int day) |
Parameter & | setDate (const string &name, const string &date) |
Parameter & | setDate (const string &name, const struct tm &date) |
Parameter & | setDate (const string &name, const time_t &time) |
Parameter & | setCurrentDate (const string &name) |
Parameter & | setDate (const string &name, const Parameter &p) |
const Parameter & | defaultDate (const string &name, int index, int &year, int &month, int &day) const |
Parameter & | setDefaultDate (const string &name, int year, int month, int day) |
Parameter & | addTime (const string &name, const string &request, int hour=0, int minutes=0, int seconds=0, int milliseconds=0, int flags=0, int style=0) |
Parameter & | addTime (const string &name, int hour, int minutes, int seconds, int milliseconds=0, int flags=0, int style=0) |
Parameter & | addTime (const string &name, int flags=0, int style=0) |
Parameter & | insertTime (const string &name, const string &atname="", const string &request="", int hour=0, int minutes=0, int seconds=0, int milliseconds=0, int flags=0, int style=0) |
Parameter & | insertTime (const string &name, const string &atname, int hour=0, int minutes=0, int seconds=0, int milliseconds=0, int flags=0, int style=0) |
Parameter & | insertTime (const string &name, const string &atname, int flags=0, int style=0) |
const Parameter & | time (const string &name, int index, int &hour, int &minutes, int &seconds, int &milliseconds) const |
Parameter & | setTime (const string &name, int hour, int minutes, int seconds, int milliseconds=0) |
Parameter & | setTime (const string &name, const string &time) |
Parameter & | setTime (const string &name, const struct tm &time) |
Parameter & | setTime (const string &name, const time_t &time) |
Parameter & | setCurrentTime (const string &name) |
Parameter & | setTime (const string &name, const Parameter &p) |
const Parameter & | defaultTime (const string &name, int index, int &hour, int &minutes, int &seconds, int &milliseconds) const |
Parameter & | setDefaultTime (const string &name, int hour, int minutes, int seconds, int milliseconds=0) |
Options & | newSection (int level, const string &name, const string &type="", int flag=0, int style=0) |
Options & | newSection (int level, const string &name, int flag, int style=0) |
Options & | newSection (const string &name, const string &type="", int flag=0, int style=0) |
Options & | newSection (const string &name, int flag, int style=0) |
Options & | newSubSection (const string &name, const string &type="", int flag=0, int style=0) |
Options & | newSubSection (const string &name, int flag, int style=0) |
Options & | newSubSubSection (const string &name, const string &type="", int flag=0, int style=0) |
Options & | newSubSubSection (const string &name, int flag, int style=0) |
Options & | addSection (const string &name, const string &type="", int flag=0, int style=0) |
Options & | addSection (const string &name, int flag, int style=0) |
Options & | insertSection (const string &name, const string &atpattern, const string &type="", int flag=0, int style=0) |
Options & | insertSection (const string &name, const string &atpattern, int flag, int style=0) |
Options & | newSection (int level, const Options &opt, int selectmask, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSection (int level, const Options &opt, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSection (int level, const Options &opt, const string &name, int flag, int style=0) |
Options & | newSection (const Options &opt, int selectmask, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSection (const Options &opt, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSection (const Options &opt, const string &name, int flag, int style=0) |
Options & | newSubSection (const Options &opt, int selectmask, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSubSection (const Options &opt, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSubSection (const Options &opt, const string &name, int flag, int style=0) |
Options & | newSubSubSection (const Options &opt, int selectmask, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSubSubSection (const Options &opt, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | newSubSubSection (const Options &opt, const string &name, int flag, int style=0) |
Options & | addSection (const Options &opt, int selectmask, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | addSection (const Options &opt, const string &name="", const string &type="", int flag=0, int style=0) |
Options & | addSection (const Options &opt, const string &name, int flag, int style=0) |
Options & | insertSection (const Options &opt, int selectmask, const string &name, const string &atpattern, const string &type="", int flag=0, int style=0) |
Options & | insertSection (const Options &opt, const string &name, const string &atpattern, const string &type="", int flag=0, int style=0) |
Options & | insertSection (const Options &opt, const string &name, const string &atpattern, int flag, int style=0) |
Options & | newSection (Options *opt, bool newparent=false) |
Options & | addSection (Options *opt, bool newparent=false) |
Options & | insertSection (Options *opt, const string &atpattern, bool newparent=false) |
Options & | newSections (Options *opt, bool newparent=false) |
void | endSection (void) |
void | clearSections (void) |
void | setSection (Options &opt) |
void | lastSection (void) |
int | up (void) |
int | down (void) |
Parameter & | setDefault (const string &name) |
Options & | setDefaults (int flags=0) |
Parameter & | setToDefault (const string &name) |
Options & | setToDefaults (int flags=0) |
Options & | erase (iterator p) |
Options & | erase (section_iterator p) |
Options & | erase (Options *s) |
Options & | erase (const string &pattern) |
Options & | erase (int selectflag) |
Options & | pop (void) |
Options & | popSection (void) |
Options & | flatten (Options *root=0) |
Options & | clear (bool revert=true) |
int | size (void) const |
int | size (int selectflag) const |
bool | empty (void) const |
int | parameterSize (void) const |
int | parameterSize (int flags) const |
int | sectionsSize (void) const |
int | sectionsSize (int flags) const |
bool | exist (const string &pattern) const |
bool | existSection (const string &pattern) const |
Options & | setFlags (int flags, int selectflag=0) |
Options & | addFlags (int flags, int selectflag=0) |
Options & | delFlags (int flags, int selectflag=0) |
Options & | setValueTypeFlags (int flags, int typemask) |
Options & | addValueTypeFlags (int flags, int typemask) |
Options & | delValueTypeFlags (int flags, int typemask) |
Options & | setStyles (int style, int selectflag=0) |
Options & | addStyles (int style, int selectflag=0) |
Options & | delStyles (int style, int selectflag=0) |
int | styleSize (int style) const |
Options & | setValueTypeStyles (int style, int typemask) |
Options & | addValueTypeStyles (int style, int typemask) |
Options & | delValueTypeStyles (int style, int typemask) |
int | nameWidth (int selectmask=0, bool detailed=false, bool escape=false) const |
string | save (int selectmask=0, int flags=0) const |
ostream & | save (ostream &str, const string &start="", int selectmask=0, int flags=0, int width=-1) const |
ostream & | save (ostream &str, const string &textformat, const string &numberformat, const string &boolformat="%i=%b", const string &dateformat="%i=%04Y-%02m-%02d", const string &timeformat="%i=%02H:%02M:%02S", const string §ionformat="%i", int selectmask=0, const string &start="") const |
ostream & | saveXML (ostream &str, int selectmask=0, int flags=0, int level=0, int indent=4) const |
Options & | read (const string &opttxt, int flag, const string &assignment=":=", const string &separator=",;", int *indent=0) |
Options & | read (const string &opttxt, const string &assignment=":=", const string &separator=",;") |
istream & | read (istream &str, int flag, const string &assignment=":=", const string &comment="#", const string &stop="", Str *line=0) |
istream & | read (istream &str, const string &assignment=":=", const string &comment="#", const string &stop="", Str *line=0) |
Options & | read (const StrQueue &sq, int flag=0, const string &assignment=":=") |
bool | read (const Parameter &p, int flag=0) |
Options & | read (const Options &o, int flags=0, int flag=0) |
bool | readAppend (const Parameter &p) |
Options & | readAppend (const Options &o, int flags=0) |
Options & | load (const Str &opttxt, const string &assignment=":=", const string &separator=",;", int *indent=0, int *indentspacing=0, int *level=0) |
istream & | load (istream &str, const string &assignment=":=", const string &comment="#", const string &stop="", string *line=0) |
Options & | load (const StrQueue &sq, const string &assignment=":=") |
virtual void | notify (void) |
void | callNotifies (void) |
bool | setNotify (bool notify=true) |
bool | unsetNotify (void) |
bool | notifying (void) const |
Protected Member Functions | |
virtual int | testWriteData (OutList &sigs) |
virtual int | testWriteDevice (OutList &sigs)=0 |
void | setAnalogOutputType (int aotype) |
void | setWriteSleep (unsigned long ms) |
void | setErrorStr (const string &strg) |
void | addErrorStr (const string &strg) |
void | setErrorStr (int errnum) |
void | addErrorStr (int errnum) |
void | setErrorStr (const OutList &sigs) |
void | addErrorStr (const OutList &sigs) |
void | setInfo (void) |
void | setSettings (const OutList &sigs, int writebuffer=0) |
virtual void | startThread (QSemaphore *sp=0, bool error=false) |
virtual void | run (void) |
virtual void | stopWrite (void) |
Protected Member Functions inherited from Device | |
void | setDeviceType (int type) |
void | setDeviceClass (const string &deviceclass) |
void | setDeviceFile (const string &devicefile) |
void | setDeviceName (const string &devicename) |
void | setDeviceVendor (const string &devicevendor) |
void | addInfo (void) |
void | lock (void) const |
void | unlock (void) const |
QMutex * | mutex (void) const |
virtual void | initOptions (void) |
Additional Inherited Members | |
Static Public Member Functions inherited from Device | |
static int | deviceTypes (void) |
static string | deviceTypeStr (int type) |
static string | getErrorStr (int ern) |
Static Public Member Functions inherited from Options | |
static double | floorLog10 (double v) |
static double | floor10 (double v, double scale=1.0) |
static double | ceil10 (double v, double scale=1.0) |
Static Public Attributes inherited from Device | |
static const int | NotOpen = -1 |
static const int | InvalidDevice = -2 |
static const int | ReadError = -3 |
static const int | WriteError = -4 |
static const int | InvalidParam = -5 |
Static Public Attributes inherited from Options | |
static const int | NonDefault = Parameter::NonDefault |
static const long | TabSection = 0x04000000 |
Protected Attributes inherited from Device | |
Options | Info |
Options | Settings |
Interface for accessing analog output of a data-aquisition board.
add probe function that returns a string of possible supported devices.
add a flag for indicating whether device is capable of streaming output
In case you want to use a analog output device within RELACS, your AnalogOutput implementation needs to provide a void default constructor (i.e. with no parameters) that does not open the device. Also, include the header file <relacs/relacsplugin.h>
and make the AnalogOutput device known to RELACS with the addAnalogOutput
( ClassNameOfYourAnalogInputImplementation, PluginSetName ) macro.
enum Status |
Return values for analog output status().
Enumerator | |
---|---|
Idle |
Not running and no error. |
Running |
Anaolog output is still in progress. |
Underrun |
Buffer underrun error. |
UnknownError |
Any other error. |
AnalogOutput | ( | void | ) |
Create a new AnalogOutput without opening a device. Reimplement this constructor.
AnalogOutput | ( | int | aotype | ) |
Constructs an AnalogOutput with type id aotype.
AnalogOutput | ( | const string & | deviceclass, |
int | aotype = 0 |
||
) |
Constructs an AnalogOutput with device class deviceclass and type id aotype.
|
virtual |
Stop analog output and close the daq driver.
|
overridevirtual |
Open the analog output device specified by device. Returns zero on success, or InvalidDevice (or any other negative number indicating the error). A reimplementation of this function should extract the following options from opts if provided:
extref:
the external reference voltage to be passed to setExternalReference().
Reimplemented from Device.
Reimplemented in AOSim.
References Options::clear(), Device::Info, Device::InvalidDevice, and Device::setDeviceFile().
|
overridevirtual |
Open the analog input device specified by device. Returns zero on success, or InvalidDevice (or any other negative number indicating the error).
Reimplemented from Device.
Reimplemented in AOSim.
References Options::clear(), Device::deviceIdent(), Device::Info, Device::InvalidDevice, and Device::setDeviceFile().
|
pure virtual |
Returns true if the device is open.
Implements Device.
Implemented in AOSim.
Referenced by Acquire::addOutput(), AnalogOutput::setInfo(), and AnalogOutput::testWriteData().
|
pure virtual |
|
pure virtual |
Number of analog output channels.
Implemented in AOSim.
Referenced by AnalogOutput::delay(), AnalogOutput::setInfo(), and AnalogOutput::testWriteData().
|
pure virtual |
|
pure virtual |
Maximum sampling rate in Hz of analog output.
Implemented in AOSim.
Referenced by AnalogOutput::setInfo(), and AnalogOutput::testWriteData().
double delay | ( | int | channel | ) | const |
Delay in seconds from calling startWrite() to the actual signal start of channel channel.
References AnalogOutput::channels().
Referenced by AnalogOutput::setInfo(), AnalogOutput::setSettings(), and AnalogOutput::testWriteData().
void setDelays | ( | const vector< double > & | delays | ) |
Set for each channel the delay in seconds it takes from calling startWrite() to the actual signal start. If there are such delays, this function should be called in the implementation of the open() function to set them.
References AnalogOutput::setInfo().
void setDelay | ( | double | delay | ) |
Set the delay in seconds it takes from calling startWrite() to the actual signal start for all channels to delay. If there are such delays, this function should be called in the implementation of the open() function to set them.
References AnalogOutput::setInfo().
double externalReference | ( | void | ) | const |
The voltage of an external reference for scaling the analog output. A negative number indicates that an external reference is not connected to the daq board. Zero is returned, if the external reference is a non-constant voltage.
void setExternalReference | ( | double | extr | ) |
Set the voltage of an external reference for scaling the analog output to extr. A negative extr indicates that an external reference is not connected to the daq board. Set extr to zero if the external reference is a non-constant voltage.
Referenced by AOSim::open().
|
pure virtual |
Directly writes from each signal in sigs the first data value to the data acquisition board.
Implemented in AOSim.
|
virtual |
Test settings for analog output on the device for each output signal in sigs. First, all error flags in sigs are cleared (DaqError::clearError()). If an error ocurred in any signal, the corresponding errorflags in OutData are set and a negative value is returned. The channels in sigs are not sorted. Simply calls testWriteData() and testWriteDevice(). This function can be called any time independently of prepareWrite() and startWrite() with different sigs.
References OutList::clearError(), AnalogOutput::testWriteData(), and AnalogOutput::testWriteDevice().
|
pure virtual |
Prepare analog output of the output signals sigs on the device. If an error ocurred in any signal, the corresponding errorflags in OutData are set and a negative value is returned. In addition, according to OutData::requestedMin() and OutData::requestedMax(), the gain, the polarity, the reference, and the minimum and maximum possible output voltages for each of the traces in sigs should be set (see OutData::setGain(), OutData::setGainIndex(), OutData::setMaxData(), OutData::setMinData() ). This function assumes that sigs successfully passed testWrite(). The channels in sigs are not sorted.
Implemented in AOSim.
|
pure virtual |
Start non-blocking analog output of the output signals that were passed to the previous call of prepareWrite(). If an error ocurred in any signal, the corresponding errorflags in OutData are set and a negative value is returned. If no further calls of writeData() are required, 0 is returned, otherwise 1 is returned. Also start possible pending acquisition on other devices that are known from take(). This function is always called after a successfull prepareRead(). An implementation of startWrite() should call startThread() to start the thread.
[in] | sp | if not null, a thread is started feeding the running analog output. When the thread and analog output is finished, releases the semaphore by one. On error, the semaphore is released by 1000 so that the process waiting on the semaphore is waking up immediately. |
Implemented in AOSim.
|
pure virtual |
Write data of the output signals that were passed to the previous call of prepareWrite() to the analog output device. Returns the number of transferred data elements. Returns zero if all data are transferred and no more calls to writeData() are necessary. If an error ocurred in any channel, the corresponding errorflags in the OutData structure are filled, the error string is set, and a negative value is returned. This function is called periodically after writing has been successfully started by startWrite().
Implemented in AOSim.
Referenced by AnalogOutput::run().
|
pure virtual |
Stop any running ananlog output activity. Assumes that analog output is open. Should call stopWrite() to stop the thread. Returns zero on success.
Implemented in AOSim.
|
pure virtual |
Clear any internal data buffers and reset the device. Assumes that analog output is open and already stopped. Returns zero on success. An implementation should NOT clear the error string!
Reimplemented from Device.
Implemented in AOSim.
References Options::clear().
Referenced by AnalogOutput::run().
|
pure virtual |
Implemented in AOSim.
Referenced by AnalogOutput::run().
bool running | ( | void | ) | const |
|
virtual |
Index of signal start. The default implemetation returns -1, indicating that no index is available. If the analog output driver can return an index into the data stream of a running analog input where the last analog output started, then this function should return the this index. You also need to reimplement getAISyncDevice() to let the user know about this property.
|
virtual |
In case the analog output driver can return an index (via the index() function) into the data stream of a running analog input where the last analog output started, then this function should return the index of the corresponding analog input device in ais. This function is called once after opening the device and before any IO operation. The default implementation simply returns -1.
Reimplemented in AOSim.
|
virtual |
Return true
if the analog output is required to have the same sampling rate as the analog input returned by getAISyncDevice(). The default implementation returns false
.
|
virtual |
Check for every analog output device in aos whether it can be simultaneously started by startWrite() from this device. Add the indices of those devices to aoinx. The corresponding entries in aorate should be set to true
if these devices should use the same sampling rate as this.
|
virtual |
If the analog output device supports outputs that are not physical output lines but rather writeable parameter, like model parameter for a dynamic clamp modul, then reimplement this function. Add for each such parameter a TraceSpec to traces. deviceid is the id of the analog output device that you should pass as the device to TraceSpec.
|
virtual |
May match trace names with driver internal trace names, for example trace names of a dynamic clamp model.
int analogOutputType | ( | void | ) | const |
The id of the analog output implementation.
|
protectedvirtual |
Test each output signal in sigs for valid settings. If an error ocurred in any signal, the corresponding errorflags in the OutData are set and a negative value is returned. The following error conditions are checked: DeviceNotOpen, NoData (OutData::size() <= 0), MultipleDevices, MultipleStartSources, MultipleDelays, MultipleSampleRates, MultipleContinuous, MultipleRestart, MultipleBuffersizes (OutData::size()), MultipleBufferTimes, InvalidStartSource (OutData::startSource() < 0), InvalidDelay (OutData::delay() < 0), InvalidSampleRate (OutData::sampleRate() > maxRate() or < 1.0), InvalidChannel (OutData::channel() >= channels() or < 0), MultipleChannels. This function is called by testWrite().
References OutList::addError(), AnalogOutput::channels(), AnalogOutput::delay(), DaqError::DeviceNotOpen, OutList::failed(), DaqError::InvalidChannel, DaqError::InvalidDelay, DaqError::InvalidSampleRate, DaqError::InvalidStartSource, AnalogOutput::isOpen(), AnalogOutput::maxRate(), DaqError::MultipleBuffersizes, DaqError::MultipleChannels, DaqError::MultipleContinuous, DaqError::MultipleDelays, DaqError::MultipleDevices, DaqError::MultipleRestart, DaqError::MultipleSampleRates, DaqError::MultipleStartSources, DaqError::NoData, OutList::setContinuous(), OutList::setDelay(), OutList::setDevice(), OutList::setRestart(), OutList::setSampleRate(), OutList::setStartSource(), OutList::size(), and Options::size().
Referenced by AnalogOutput::testWrite().
|
protectedpure virtual |
Device driver specific tests on the settings in sigs for each output signal. Before this function is called, the validity of the settings in sigs was already tested by testReadData(). testWriteDevice() is called even if an error was detected by testWriteData(). This function should test whether the settings are really supported by the hardware. If an error ocurred in any trace, the corresponding errorflags in the OutData are set and a negative value is returned. In addition, according to OutData::requestedMin() and OutData::requestedMax(), the gain, the polarity, the reference, and the minimum and maximum possible output voltages for each of the traces in sigs should be set (see OutData::setGain(), OutData::setGainIndex(), OutData::setMaxData(), OutData::setMinData() ). The channels in sigs are not sorted. This function is called by testWrite().
Implemented in AOSim.
Referenced by AnalogOutput::testWrite().
|
protected |
Set id of the analog output implementation to aotype. This function should be called in the constructor of an implementation of AnalogOutput.
|
protected |
Set the time for sleeping between calls of writeData() to ms milliseconds.
|
protected |
|
protected |
Add strg to the error string.
References Device::addErrorStr().
Referenced by AnalogOutput::run().
|
protected |
Set error string to the string describing the standard C error code errnum (from errno
).
References Device::setErrorStr().
|
protected |
Add the string describing the standard C error code errnum (from errno
) to the error string.
References Device::addErrorStr().
|
protected |
If sigs.failed(), set error string to the error set in sigs otherwise clear the error string.
References Device::clearError(), OutList::errorText(), OutList::failed(), and Device::setErrorStr().
|
protected |
If sigs.failed(), add error string to the error set in sigs.
References Device::addErrorStr(), OutList::errorText(), and OutList::failed().
|
protected |
Set the device info(). Call this function from open().
References Device::addInfo(), Options::addInteger(), Options::addNumber(), AnalogOutput::bits(), AnalogOutput::channels(), Options::clear(), AnalogOutput::delay(), Device::Info, AnalogOutput::isOpen(), and AnalogOutput::maxRate().
Referenced by AOSim::open(), AnalogOutput::setDelay(), and AnalogOutput::setDelays().
|
protected |
Set the settings() for sigs. Call this function from within a successful prepareWrite().
[in] | sigs | the output data fro which the settings string should be constructed. |
[in] | writebuffer | is the size of the driver's buffer in bytes. |
References Options::addBoolean(), Options::addInteger(), Options::addNumber(), Options::clear(), AnalogOutput::delay(), and OutList::size().
Referenced by AOSim::prepareWrite().
|
protectedvirtual |
Start the thread if sp is not null. If error do not start the thread and release the semaphore sp.
|
protectedvirtual |
The thread feeding data to a running analog output.
References AnalogOutput::addErrorStr(), Device::getErrorStr(), Device::lock(), AnalogOutput::reset(), AnalogOutput::Running, AnalogOutput::status(), AnalogOutput::Underrun, Device::unlock(), and AnalogOutput::writeData().
|
protectedvirtual |
Stop the running thread.
References Device::lock(), and Device::unlock().