Relacs
0.9.8
|
#include <attenuate.h>
Public Member Functions | |
Attenuate (void) | |
Attenuate (const string &deviceclass, const string &intensityname="intensity", const string &intensityunit="dB", const string &intensityformat="%6.2f", const string &frequencyname="", const string &frequencyunit="Hz", const string &frequencyformat="%7.0f") | |
virtual | ~Attenuate (void) |
int | open (Device &att, int line) |
virtual int | open (Device &att) override |
virtual int | open (const string &device) override |
virtual bool | isOpen (void) const |
virtual void | close (void) |
void | clear (void) |
double | minIntensity (double frequency=0.0) const |
double | maxIntensity (double frequency=0.0) const |
void | intensities (vector< double > &ints, double frequency=0.0) const |
virtual void | init (void) |
virtual void | save (const string &path) const |
int | write (double &intensity, double frequency, double &level) |
int | testWrite (double &intensity, double frequency, double &level) |
int | mute (void) |
int | testMute (void) |
int | attenuate (double &level) |
int | testAttenuate (double &level) |
string | intensityName (void) const |
void | setIntensityName (const string &name) |
string | intensityUnit (void) const |
void | setIntensityUnit (const string &unit) |
string | intensityFormat (void) const |
void | setIntensityFormat (const string &format) |
string | frequencyName (void) const |
void | setFrequencyName (const string &name) |
string | frequencyUnit (void) const |
void | setFrequencyUnit (const string &unit) |
string | frequencyFormat (void) const |
void | setFrequencyFormat (const string &format) |
int | aoChannel (void) const |
void | setAOChannel (int channel) |
string | aoDevice (void) const |
void | setAODevice (const string &deviceid) |
Attenuator * | attenuator (void) |
const Attenuator * | attenuator (void) const |
bool | noAttenuator (void) const |
Public Member Functions inherited from Device | |
Device (int type=MiscellaneousType) | |
Device (const string &deviceclass, int type=MiscellaneousType) | |
virtual | ~Device (void) |
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 Attributes | |
static const double | MuteAttenuationLevel = Attenuator::MuteAttenuationLevel |
static const double | MuteIntensity = -1.0e37 |
static const int | NotOpen = Attenuator::NotOpen |
static const int | InvalidDevice = Attenuator::InvalidDevice |
static const int | ReadError = Device::ReadError |
static const int | WriteError = Device::WriteError |
static const int | Underflow = Attenuator::Underflow |
static const int | Overflow = Attenuator::Overflow |
static const int | IntensityUnderflow = -7 |
static const int | IntensityOverflow = -8 |
static const int | IntensityError = -9 |
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 Member Functions | |
virtual int | decibel (double intensity, double frequency, double &db) const =0 |
virtual void | intensity (double &intens, double frequency, double decibel) const =0 |
virtual void | initOptions () override |
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 |
Additional Inherited Members | |
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 |
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) |
Protected Attributes inherited from Device | |
Options | Info |
Options | Settings |
Attenuates a single output channel.
This class is an interface for attenuating a single output line. It allows to convert a requested intensity into an attenuation level for the attenuator device. The carrier frequency of the output signal can be used as a parameter for the conversion. You have to reimplement decibel() and intensity() with the required transformation of the intensity into an attenuation level. What physical quantities the intensity and the carrier frequency are depends on the specific implementation of the Attenuate class. The names, units, and formats of the intensity and the frequency can be retrieved by intensityName(), intensityUnit(), intensityFormat(), frequencyName(), frequencyUnit(), and frequencyFormat().
The open() function recognizes the following options:
line:
the line on the attenuatoraodevice:
the identifier analog output deviceaochannel:
the channel of the analog output deviceintensityname:
name of the intensity variableintensityunit:
unit of the intensity variableintensityformat:
format string for the intensity variablefrequencyname:
name of the frequency variablefrequencyunit:
unit of the frequency variablefrequencyformat:
format string for the frequency variableThe function init() is called before the attenuator is used. You can reimplement this function to load calibration data from a file, for example. save() may be called to save some (calibration) data into a file.
Via a constructor or the open()-function a specific attenuation device for a single output line is assigned to the Attenuate-class. The isOpen()-function checks whether the attenuator is valid and opened. With clear() Attenuate can be disconnected from the attenuator. close() additionally closes the associated attenuator. The aoChannel() function returns the number of the channel of the analog output device aoDevice() where the attenuator is connected to.
The attenuation is set by requesting an intensity using write(). This intensity is mapped into an attenuation level in decibel by the function decibel(). The intensity can be any quantity which is most usefull for your application. What exactly the intensity specifies is determined by the implementation of the decibel() function. The decibel() function gets as a second argument a frequency. This second argument can be used as an parameter for the conversion from intensites to attenuation levels. For example, if your output generates a sound wave via a loadspeaker, the necessary attenuation for getting a specific sound intensity depends on the carrierfrequency of your signal.
Attenuators usually can be set to discrete attenuation levels only. If you request a specific intensity via write(), then it is very likely that the actually set attenuation level results in a slightly different intensity. To make this intensity known to the user, write() sets the intensity variable to the actually set intensity. To be able to compute the intensity from the attenuation level you have to implement the intensity()-function as the inverse function of decibel().
To check whether a requested intensity is possible and what intensity would be set without setting the attenuation level, you can use the testWrite()-function. minIntensity() and maxIntensity() return the minimum and maximum possible intensities given the capabilities of the attenuator device. All possible intensities are returned by intensities().
The mute()-function can be used to mute the output line. testMute() checks whether muting of the output line is possible.
Possible return values of write(), testWrite() and mute() are:
0
: successNotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.WriteError:
Failed in setting the attenuation level.Underflow:
The requested attenuation level is too high, i.e. the requested signal amplitude is too small.Overflow:
The requested attenuation level is too low, i.e. the requested signal amplitude is too large.IntensityUnderflow:
The requested intensity is too small to be converted into an attenuation level by the decibel()-function.IntensityOverflow:
The requested intensity is too large to be converted into an attenuation level by the decibel()-function.IntensityError:
Another error occured during conversion of an intensity into an attenuation level by the decibel()-function.In case you want to use a attenuate interface within RELACS, your Attenuate 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 Attenuate device known to RELACS with the addAttenuate
( ClassNameOfYourAttenuateImplementation, PluginSetName ) macro.
Attenuate | ( | void | ) |
Constructor.
Attenuate | ( | const string & | deviceclass, |
const string & | intensityname = "intensity" , |
||
const string & | intensityunit = "dB" , |
||
const string & | intensityformat = "%6.2f" , |
||
const string & | frequencyname = "" , |
||
const string & | frequencyunit = "Hz" , |
||
const string & | frequencyformat = "%7.0f" |
||
) |
Construct Attenuate with device class deviceclass. The Attenuate implementation defines the intensity as intensityname with unit intensityunit and format intensityformat and uses for the conversion a frequency with name frequencyname, unit freqencyunit and format frequencyformat. An empty frequencyname indicates that a frequency is not used for the conversion of intensity to an attenuation level.
|
virtual |
Destructor.
References Attenuate::close().
int open | ( | Device & | att, |
int | line | ||
) |
Assign output line line of the attenuator att to this. Returns zero on success, or InvalidDevice (or any other negative number indicating the error).
References Options::clear(), Device::deviceIdent(), Device::Info, Attenuate::InvalidDevice, Device::isOpen(), relacs::line(), Attenuate::NotOpen, and Device::setDeviceFile().
Referenced by Attenuate::open().
|
overridevirtual |
Evaluates opts, calls open(Device&,int,const Options&), and sets name, unit, and format of intensity and frequency. You certainly do not need to reimplement this function.
Reimplemented from Device.
References Options::exist(), Options::integer(), relacs::line(), Attenuate::open(), Attenuate::setAOChannel(), Attenuate::setAODevice(), Attenuate::setFrequencyFormat(), Attenuate::setFrequencyName(), Attenuate::setFrequencyUnit(), Attenuate::setIntensityFormat(), Attenuate::setIntensityName(), Attenuate::setIntensityUnit(), and Options::text().
|
overridevirtual |
Does nothing (needed for compatibility to other devices). Do not reimplement this function.
Reimplemented from Device.
References Options::clear(), Options::exist(), Device::Info, Options::integer(), Attenuate::InvalidDevice, relacs::line(), Attenuate::setAOChannel(), Attenuate::setAODevice(), Device::setDeviceFile(), Attenuate::setFrequencyFormat(), Attenuate::setFrequencyName(), Attenuate::setFrequencyUnit(), Attenuate::setIntensityFormat(), Attenuate::setIntensityName(), Attenuate::setIntensityUnit(), and Options::text().
|
virtual |
True if the hardware driver is open and the device index is supported.
Implements Device.
References Device::isOpen(), and Attenuator::lines().
Referenced by Acquire::addAttLine().
|
virtual |
Close the attenuator wrapper and the associated attenuator device.
Implements Device.
References Options::clear(), Device::close(), Device::Info, and Device::isOpen().
Referenced by Attenuate::~Attenuate().
void clear | ( | void | ) |
Close the attenuator wrapper without closing the associated attenuator device.
References Options::clear(), and Device::Info.
double minIntensity | ( | double | frequency = 0.0 | ) | const |
Returns the minimum possible intensity that can be set by the current attenuator device at the given stimulus frequency.
References Attenuate::intensity(), Attenuator::maxLevel(), and Attenuator::minLevel().
Referenced by Attenuate::init().
double maxIntensity | ( | double | frequency = 0.0 | ) | const |
Returns the maximum possible intensity that can be set by the current attenuator device at the given stimulus frequency.
References Attenuate::intensity(), Attenuator::maxLevel(), and Attenuator::minLevel().
Referenced by Attenuate::init().
void intensities | ( | vector< double > & | ints, |
double | frequency = 0.0 |
||
) | const |
Returns in ints all possible intensities that can be set by the current attenuator device at the given stimulus frequency sorted by increasing intensities.
References Attenuate::intensity(), and Attenuator::levels().
|
virtual |
This function is called after an attenuator is assigned to this class and before the attenuator is used. The default implementation sets the info(). You can reimplement this function to load calibration data, for example. Don't forget to call Attenuate::init() or set info() yourself.
References Device::addInfo(), Options::addInteger(), Options::addNumber(), Options::addText(), Attenuate::aoChannel(), Attenuate::aoDevice(), Options::clear(), Device::deviceIdent(), Device::Info, Attenuate::maxIntensity(), and Attenuate::minIntensity().
Referenced by Acquire::addAttLine().
|
virtual |
Save some data into a file in directory path. The default implementation does nothing. However, you can reimplement this function to save calibration data, for example.
Referenced by SaveFiles::RelacsFiles::writeStimulus().
int write | ( | double & | intensity, |
double | frequency, | ||
double & | level | ||
) |
Set intensity to intensity. The parameter frequency may be used for calculating the right attenuation level. In most cases frequency might be the carrier frequency of the signal. See intensityName(), intensityUnit(), intensityFormat(), frequencyName(), frequencyUnit(), and frequencyFormat() for the names and the corresponding units and formats of intensity and frequency. The function decibel() is used to calculate the attenuation level. This function might also define an intensity (in addition to MuteIntensity) for which the attenuator is muted. Since attenuators have a certain resolution, the actually set intensity may differ from the requested intensity intensity. The set intensity is returned in intensity and the set attenuation level in level. If you want to mute the output line, call mute().
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.WriteError:
Failed in setting the attenuation level.Underflow:
The requested attenuation level is too high, i.e. the requested signal amplitude is too small. In this case, the minimum possible intensity is returned.Overflow:
The requested attenuation level is too low, i.e. the requested signal amplitude is too large. In this case, the maximum possible intensity is returned.IntensityUnderflow:
The requested intensity is too small to be converted into an attenuation level by the decibel()-function. In this case, the minimum possible intensity is returned.IntensityOverflow:
The requested intensity is too large to be converted into an attenuation level by the decibel()-function. In this case, the maximum possible intensity is returned.IntensityError:
Another error occured during conversion of an intensity into an attenuation level by the decibel()-function. References Options::addNumber(), Attenuator::attenuate(), Options::clear(), Attenuate::decibel(), Attenuate::intensity(), Device::isOpen(), and Device::NotOpen.
int testWrite | ( | double & | intensity, |
double | frequency, | ||
double & | level | ||
) |
Does the same as write() except setting the attenuator. Using this function it can be checked whether the intensities are valid and to what value the intensity will be actually adjusted.
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.Underflow:
The requested attenuation level is too high, i.e. the requested signal amplitude is too small. In this case, the minimum possible intensity is returned.Overflow:
The requested attenuation level is too low, i.e. the requested signal amplitude is too large. In this case, the maximum possible intensity is returned.IntensityUnderflow:
The requested intensity is too small to be converted into an attenuation level by the decibel()-function. In this case, the minimum possible intensity is returned.IntensityOverflow:
The requested intensity is too large to be converted into an attenuation level by the decibel()-function. In this case, the maximum possible intensity is returned.IntensityError:
Another error occured during conversion of an intensity into an attenuation level by the decibel()-function. References Attenuate::decibel(), Attenuate::intensity(), Device::isOpen(), Device::NotOpen, Attenuate::Overflow, Attenuator::testAttenuate(), and Attenuate::Underflow.
int mute | ( | void | ) |
Mute the output channel.
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.WriteError:
Failed in setting the attenuation level. References Options::addText(), Options::clear(), Device::isOpen(), Attenuator::mute(), and Device::NotOpen.
int testMute | ( | void | ) |
Test muting the output channel.
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.WriteError:
Failed in setting the attenuation level. References Device::isOpen(), Device::NotOpen, and Attenuator::testMute().
int attenuate | ( | double & | level | ) |
Set the attenuation level directly to level decibel. level can also be set to MuteAttenuationLevel for requesting to mute the attenuator. Returns the actually set level in level. In case the attenuator was muted, MuteAttenuationLevel is returned in level. If the requested attenuation level is too high or too low (Underflow or Overflow), then the maximum or minimum possible attenuation level is set and returned in level.
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.WriteError:
Failed in setting the attenuation level.Underflow:
The requested attenuation level is too high, i.e. the requested signal amplitude is too small.Overflow:
The requested attenuation level is too low, i.e. the requested signal amplitude is too large. References Attenuator::attenuate(), Options::clear(), Device::isOpen(), and Device::NotOpen.
int testAttenuate | ( | double & | level | ) |
Tests setting the attenuation level directly to level decibel. level can also be set to MuteAttenuationLevel for requesting to mute the attenuator. Returns the level that would be set in level. In case the attenuator would be muted, MuteAttenuationLevel is returned in level. If the requested attenuation level is too high or too low (Underflow or Overflow), then the maximum or minimum possible attenuation level is returned in level.
NotOpen:
The device driver for the attenuator is not open.InvalidDevice:
An invalid device index is requested, i.e. the requested output line is not supported by the attenuator device.Underflow:
The requested attenuation level is too high, i.e. the requested signal amplitude is too small.Overflow:
The requested attenuation level is too low, i.e. the requested signal amplitude is too large. References Device::isOpen(), Device::NotOpen, Attenuate::Overflow, Attenuator::testAttenuate(), and Attenuate::Underflow.
string intensityName | ( | void | ) | const |
The name of the intensity the specific implementation of Attenuate is using.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), and SaveFiles::writeStimulus().
void setIntensityName | ( | const string & | name | ) |
Set the name of the intensity the specific implementation of Attenuate is using to name.
References Options::name().
Referenced by Attenuate::open().
string intensityUnit | ( | void | ) | const |
The unit of the intensity the specific implementation of Attenuate is using.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), and SaveFiles::writeStimulus().
void setIntensityUnit | ( | const string & | unit | ) |
Set the unit of the intensity the specific implementation of Attenuate is using to unit.
References Options::unit().
Referenced by Attenuate::open().
string intensityFormat | ( | void | ) | const |
A C-style format string to be used for formatting the intensity the specific implementation of Attenuate is using.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), and SaveFiles::writeStimulus().
void setIntensityFormat | ( | const string & | format | ) |
Set the format of the intensity the specific implementation of Attenuate is using to format.
References Options::format().
Referenced by Attenuate::open().
string frequencyName | ( | void | ) | const |
The name of the frequency the specific implementation of Attenuate is using for computing the intensity. An empty frequencyName() indicates that a frequency is not used for the conversion of intensity in an attenuation level.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), SaveFiles::writeStimulus(), and SaveFiles::RelacsFiles::writeStimulus().
void setFrequencyName | ( | const string & | name | ) |
Set the name of the frequency the specific implementation of Attenuate is using for computing the intensity to name.
References Options::name().
Referenced by Attenuate::open().
string frequencyUnit | ( | void | ) | const |
The unit of the frequency the specific implementation of Attenuate is using for computing the intensity.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), and SaveFiles::writeStimulus().
void setFrequencyUnit | ( | const string & | unit | ) |
Set the unit of the frequency the specific implementation of Attenuate is using for computing the intensity to unit.
References Options::unit().
Referenced by Attenuate::open().
string frequencyFormat | ( | void | ) | const |
A C-style format string to be used for formatting the frequency the specific implementation of Attenuate is using for computing the intensity.
Referenced by SaveFiles::RelacsFiles::openStimulusFiles(), and SaveFiles::writeStimulus().
void setFrequencyFormat | ( | const string & | format | ) |
Set the format of the frequency the specific implementation of Attenuate is using for computing the intensity to format.
References Options::format().
Referenced by Attenuate::open().
int aoChannel | ( | void | ) | const |
Returns the channel number of the analog output device which is attenuated by this instance of the Attenuate class.
Referenced by Attenuate::init().
void setAOChannel | ( | int | channel | ) |
Set the channel number for the analog output device which should be attenuated by this instance of the Attenuate class to channel.
Referenced by Acquire::addAttLine(), and Attenuate::open().
string aoDevice | ( | void | ) | const |
Returns the identifier string of the analog output device which is attenuated by this instance of the Attenuate class.
Referenced by Acquire::addAttLine(), and Attenuate::init().
void setAODevice | ( | const string & | deviceid | ) |
Set the identifier string for the analog output device which should be attenuated by this instance of the Attenuate class to channel.
Referenced by Acquire::addAttLine(), and Attenuate::open().
Attenuator * attenuator | ( | void | ) |
Returns the attenuator device that is used by this Attenuate class.
const Attenuator * attenuator | ( | void | ) | const |
Returns the attenuator device that is used by this Attenuate class.
bool noAttenuator | ( | void | ) | const |
Returns true
if no attenuator is actually used.
|
protectedpure virtual |
Transforms the requested intensity intensity for the carrier frequency frequency of the signal into an attenuation level db for the attenuator. This function is used by write() to set the attenuator to the requested intensity. The implementation of this function must set db to MuteAttenuationLevel in case intensity equals MuteIntensity. For certain other values of intensity db might be also set to MuteAttenuationLevel for muting the attenuator. If the computation of db fails, db should be set to a meaningful value.
IntensityUnderflow:
The requested intensity is too small to be converted into an attenuation level. In this case, the attenuation db corresponding to the minimum possible intensity is returned.IntensityOverflow:
The requested intensity is too large to be converted into an attenuation level. In this case, the attenuation db corresponding to the maximum possible intensity is returned.IntensityError:
Another error occured during conversion of an intensity into an attenuation level. Referenced by Attenuate::testWrite(), and Attenuate::write().
|
protectedpure virtual |
Transform the attenuation level decibel for the carrier frequency frequency of the signal into the intensity intens. This function should be the inverse function of decibel() and is used by write() to return the actually set intensity from the set attenuation level. If the attenuator was muted (decibel equals MuteAttenuationLevel), intens is set to MuteIntensity.
Referenced by Attenuate::intensities(), Attenuate::maxIntensity(), Attenuate::minIntensity(), Attenuate::testWrite(), and Attenuate::write().
|
overrideprotectedvirtual |
Initzializes default Attenuate options
Reimplemented from Device.
References Options::addInteger(), Options::addText(), and Device::initOptions().
|
static |
The attenuation level for which an outputline is muted.
Referenced by Acquire::directWrite(), and Acquire::write().
|
static |
The intensity for which an outputline is muted.
|
static |
Return code indicating that the device driver is not opened.
Referenced by Attenuate::open().
|
static |
Return code indicating an invalid output line of the attenuator.
Referenced by Attenuate::open().
|
static |
Return code indicating a failure in reading the attenuation level from the device.
Referenced by DaqError::addAttError().
|
static |
Return code indicating a failure in writing the attenuation level to the device.
|
static |
Return code indicating a too high requested attenuation level, i.e. the requested signal amplitude is too small.
Referenced by Attenuate::testAttenuate(), and Attenuate::testWrite().
|
static |
Return code indicating a too low requested attenuation level, i.e. the requested signal amplitude is too large.
Referenced by Attenuate::testAttenuate(), and Attenuate::testWrite().
|
static |
Return code indicating an underflow in calculating the level, i.e. the requested intensity is too small.
|
static |
Return code indicating an overflow in calculating the level, i.e. the requested intensity is too large.
|
static |
Return code indicating an unspecific error in calculating the level.
Referenced by DaqError::addAttError().