====== Device plugins ======
===== Implementation =====
==== Probes ====
== double tr_probe_num(const std::string&)const ==
This function returns a probe value for DC, OP, and transient analysis, selected by a string argument. Any state variable or parameter may be selected.
Usually the code consists of a string of if - elseif statements. If none match, in most cases it should call BASE::tr_probe_num and return its result.
double DEV_CAPACITANCE::tr_probe_num(const std::string& x)const
{
if (Umatch(x, "q{cap} |ch{arge} ")) {
return _y[0].f0;
}else if (Umatch(x, "c{apacitance} ")) {
return _y[0].f1;
}else{
return STORAGE::tr_probe_num(x);
}
}
== XPROBE ac_probe_ext(const std::string&)const ==
This function returns a probe value for AC analysis, selected by a string argument. Any state variable or parameter may be selected.
It returns an XPROBE object:
enum mod_t {mtNONE, mtMAG, mtPHASE, mtREAL, mtIMAG};
class XPROBE{
private:
COMPLEX _value;
mod_t _modifier; // default
double _dbscale; // 20 for voltage, 10 for power, etc.
// .....
}
Usually, the returned value is made by a constructor with one argument, using defaults for _modifier and _dbscale. The value is a COMPLEX number.