Relacs
0.9.8
|
#include <device.h>
Public Types | |
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 | |
Device (int type=MiscellaneousType) | |
Device (const string &deviceclass, int type=MiscellaneousType) | |
virtual | ~Device (void) |
virtual int | open (const string &device) |
virtual int | open (Device &device) |
virtual bool | isOpen (void) const =0 |
virtual void | close (void)=0 |
virtual int | reset (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 |
Static Public Member Functions | |
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 | |
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 Member Functions | |
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) |
Protected Attributes | |
Options | Info |
Options | Settings |
Friends | |
ostream & | operator<< (ostream &str, const Device &d) |
Basic interface for accessing a device.
The Device class defines the interface for the basic operations open(), close(), and reset() of a device. You have to implement at least the isOpen(), close() and one of the two open() functions.
In case you want to use a device within RELACS, your Device implementation needs to provide a void default constructor (i.e. with no parameters) that does not open the device. Make sure your constructor calls initOptions()
once which registers configuation options, do not forget to also call the base class implementation. Also, include the header file <relacs/relacsplugin.h>
and make the Device known to RELACS with the addDevice
( ClassNameOfYourDeviceImplementation, PluginSetName ) macro or one of the derived macros for any specialized DeviceType.
A subclass of Device can be identified by its deviceType(). For example, the Temperature class provides a uniqe interface for measuring temperatures. All classes derived from the Temperature class then share the same deviceType(). The type of a Device class should be set in the constructor of the interface class either directly using setDeviceType() or by passing the type to the constructor of the Device class.
A name for class of devices a particular implementation of the Device class is handling is returned by deviceClass(). Usually deviceClass() is the name of the class derived from Device. Set the class-name for the devices in the constructor with setDeviceClass() or by passing the name to the constructor of the Device class.
Each individual physical device may have an unique identifier string deviceIdent() that can be set by setDeviceIdent(). The identifier string should be unique for each instance of a device class. The name and the vendor of the physical device is returned by deviceName() and deviceVendor(). Both should be set from within the open() function using setDeviceName() and setDeviceVendor(). The device file on which the device was opened is returned by deviceFile().
The info() function returns Options that contain some usefull information about the capabilities of the specific device. The settings() functions returns Options containing information about the current settings of the specific device. You should fill in both info() and settings() in an implementation of the Device class.
There are four flags for indicating errors with handling the device: NotOpen, InvalidDevice, ReadError, and WriteError. In addition an arbitrary error string errorStr() can be set with setErrorStr() and addErrorStr() to indicate a failure in detail.
Each device has its own mutex() for locking critical sections. Use lock() and unlock() for locking the device.
enum DeviceTypes |
Predefined device types.
Enumerator | |
---|---|
MiscellaneousType | |
AnalogInputType | |
AnalogOutputType | |
DigitalIOType | |
TriggerType | |
AttenuatorType | |
AttenuateType | |
ManipulatorType | |
TemperatureType | |
CameraType |
Device | ( | int | type = MiscellaneousType | ) |
Construct a Device of type type. This constructor is used by the more specific but still abstract device classes like AnalogInput, AnalogOutput, etc.
Device | ( | const string & | deviceclass, |
int | type = MiscellaneousType |
||
) |
Construct a Device with class-name deviceclass and type type. Use this constructor if your device does not fit in the predefined DeviceTypes.
|
virtual |
Open the device specified by device with options opts. On success, in your implementation device should be passed to setDeviceFile() and the name and the vendor of the device should be set with setDeviceName() and setDeviceVendor(). The info() should be set in the implementation of open() by the info().addNumber(), info().addText(), etc. functions. For adding some default information to info() you may use addInfo(). Returns zero on success, or InvalidDevice (or any other negative number indicating the error).
Reimplemented in Attenuate, AnalogOutput, DigitalIO, AnalogInput, DIOSim, AISim, AttSim, and AOSim.
References Device::InvalidDevice, Device::setDeviceFile(), and Device::setErrorStr().
Referenced by DeviceList< T, PluginID >::create().
|
virtual |
Open the device specified by device with options opts. On success, in your implementation device should be passed to setDeviceFile() and the name and the vendor of the device should be set with setDeviceName() and setDeviceVendor(). The info() should be set in the implementation of open() by the info().addNumber(), info().addText(), etc. functions. For adding some default information to info() you may use addInfo(). Returns zero on success, or InvalidDevice (or any other negative number indicating the error).
Reimplemented in Attenuate, AnalogOutput, DigitalIO, AnalogInput, DIOSim, AISim, and AOSim.
References Device::deviceClass(), Device::deviceIdent(), Device::InvalidDevice, Device::setDeviceFile(), and Device::setErrorStr().
|
pure virtual |
Returns true if the device is open.
Implemented in Attenuate, AnalogOutput, DigitalIO, AnalogInput, DIOSim, AISim, AttSim, and AOSim.
Referenced by Device::addInfo(), Attenuate::attenuate(), Attenuate::close(), Attenuate::isOpen(), Attenuate::mute(), Attenuate::open(), Attenuate::testAttenuate(), Attenuate::testMute(), Attenuate::testWrite(), and Attenuate::write().
|
pure virtual |
Close the device. info() should be cleared in an implementation of close() by caling Info.clear().
Implemented in Attenuate, AnalogOutput, DigitalIO, AnalogInput, DIOSim, AISim, AttSim, and AOSim.
Referenced by Attenuate::close().
|
virtual |
Reset the device. Returns zero on success, otherwise one of the flags NotOpen, InvalidDevice, WriteError. An implementation should not clear the error string and should onlyadd error strings using addErrorStr().
Reimplemented in Trigger, AnalogOutput, AnalogInput, AISim, and AOSim.
|
virtual |
Returns some information about the capabilities of the device (for example, maximum possible sampling rate). This function can be reimplemented to set the the infos right before returning them.
References Device::Info.
Referenced by SaveFiles::ODMLFiles::open(), and relacs::operator<<().
|
virtual |
Returns some information about the current settings of the device (for example, the currently used sampling rate). This function can be reimplemented to set the the settings right before returning them.
Reimplemented in DigitalIO, DIOSim, and AttSim.
References Device::Settings.
int deviceType | ( | void | ) | const |
The id of the device type.
Referenced by Device::addInfo(), and SaveFiles::ODMLFiles::open().
string deviceTypeStr | ( | void | ) | const |
Referenced by SaveFiles::ODMLFiles::open().
|
static |
|
static |
References Options::type().
string deviceClass | ( | void | ) | const |
The name for the device(s) a particular implementation of the Device class is handling.
Referenced by Device::addInfo(), and Device::open().
string deviceFile | ( | void | ) | const |
The name of the device file on which the device was opened.
Referenced by Device::addInfo(), and AOSim::getAISyncDevice().
string deviceName | ( | void | ) | const |
The name of the particular physical device that is handled by this instance of the Device class.
Referenced by Device::addInfo().
string deviceVendor | ( | void | ) | const |
The vendor of the particular physical device that is handled by this instance of the Device class.
Referenced by Device::addInfo().
string deviceIdent | ( | void | ) | const |
The uniqe identifier string of an individual physical device.
Referenced by Device::addInfo(), Attenuate::init(), AOSim::open(), AISim::open(), AnalogInput::open(), DigitalIO::open(), AnalogOutput::open(), Device::open(), and Attenuate::open().
|
virtual |
Set the identifier string of an individual physical device to ident.
References Device::Info, and Options::setText().
|
virtual |
Clear the error string.
Referenced by AnalogOutput::setErrorStr().
|
virtual |
Return error string of the last operation.
void setErrorStr | ( | const string & | strg | ) |
Set error string to strg.
Referenced by Device::open(), and AnalogOutput::setErrorStr().
void addErrorStr | ( | const string & | strg | ) |
Add strg to the error string.
Referenced by AnalogOutput::addErrorStr(), and AnalogInput::run().
void setErrorStr | ( | int | errnum | ) |
Set error string to the string describing the standard C error code errnum (from errno
).
void addErrorStr | ( | int | errnum | ) |
Add the string describing the standard C error code errnum (from errno
) to the error string.
|
static |
Translates the error code ern returned by open(), reset(), etc. into a string.
References Device::InvalidDevice, Device::NotOpen, Device::ReadError, and Device::WriteError.
Referenced by AnalogInput::run(), and AnalogOutput::run().
|
virtual |
Return true
if the last operation was successfull and did not set an error string, i.e. errorStr().empty().
|
virtual |
Return true
if the last operation failed and did set an error string, i.e. not errorStr().empty().
|
protected |
Set id of the device class to type. This function should be called in the constructor of an device interface class.
References Options::type().
|
protected |
Set the name for the class of devices a particular implementation of the Devive class is handling to deviceclass. This function should be called in the constructor and/or the open function of the Device class implementation.
|
protected |
Set the device file for which the device was opened.
Referenced by AOSim::open(), AttSim::open(), AISim::open(), AnalogInput::open(), DigitalIO::open(), AnalogOutput::open(), Device::open(), and Attenuate::open().
|
protected |
Set the name of the particular physical device that is handled by this instance of the Device class to devicename.
Referenced by AOSim::open(), AttSim::open(), and AISim::open().
|
protected |
Set the vendor of the particular physical device that is handled by this instance of the Device class to devicevendor.
Referenced by AOSim::open(), AttSim::open(), and AISim::open().
|
protected |
Adds the device's type (deviceType()), class (deviceClass()), identifier (deviceIdent()), name (deviceName()), vencdor (deviceVendor()), file (deviceFile()), and status (isOpen()) to info().
References Options::addInteger(), Options::addText(), Device::deviceClass(), Device::deviceFile(), Device::deviceIdent(), Device::deviceName(), Device::deviceType(), Device::deviceVendor(), Options::empty(), Device::Info, and Device::isOpen().
Referenced by Attenuate::init(), Attenuator::setInfo(), DigitalIO::setInfo(), AnalogInput::setInfo(), and AnalogOutput::setInfo().
|
protected |
Lock the mutex of this device.
Referenced by AnalogInput::run(), AnalogOutput::run(), AnalogInput::stopRead(), and AnalogOutput::stopWrite().
|
protected |
Unlock the mutex of this device.
Referenced by AnalogInput::run(), AnalogOutput::run(), AnalogInput::stopRead(), and AnalogOutput::stopWrite().
|
protected |
|
protectedvirtual |
Intializes available options
Reimplemented in Attenuate, Trigger, AISim, and AOSim.
References Options::addText().
Referenced by AttSim::AttSim(), AOSim::initOptions(), AISim::initOptions(), and Attenuate::initOptions().
|
static |
Return code indicating that the device driver is not opened.
Referenced by Attenuate::attenuate(), Device::getErrorStr(), Attenuate::mute(), Attenuate::testAttenuate(), Attenuate::testMute(), Attenuate::testWrite(), and Attenuate::write().
|
static |
Return code indicating an invalid device or subdevice.
Referenced by AttSim::attenuate(), DigitalIO::clearSyncPulse(), Device::getErrorStr(), AnalogInput::open(), DigitalIO::open(), AnalogOutput::open(), Device::open(), DigitalIO::setSyncPulse(), and AttSim::testAttenuate().
|
static |
Return code indicating a failure in reading from the device.
Referenced by Device::getErrorStr().
|
static |
Return code indicating a failure in writing to the device.
Referenced by DigitalIO::allocateLine(), DigitalIO::configureLine(), and Device::getErrorStr().
|
static |
Return code indicating an invalid parameter.
|
mutableprotected |
Referenced by Device::addInfo(), Attenuate::clear(), AOSim::close(), AttSim::close(), AISim::close(), Attenuate::close(), Device::info(), Attenuate::init(), AOSim::open(), AttSim::open(), AISim::open(), AnalogInput::open(), DigitalIO::open(), AnalogOutput::open(), Attenuate::open(), Device::setDeviceIdent(), Attenuator::setInfo(), DigitalIO::setInfo(), AnalogInput::setInfo(), and AnalogOutput::setInfo().
Referenced by AttSim::settings(), DigitalIO::settings(), and Device::settings().