====== 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.