ecvs.cpp
-----------
copyright : (C) 2013 by Richard Crozier
email : richard dot crozier at yahoo dot co dot uk
***************************************************************************/
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "ecvs.h"
#include "node.h"
#include "extsimkernels/spicecompat.h"
ecvs::ecvs()
{
Description = QObject::tr("externally controlled voltage source");
Simulator = spicecompat::simQucsator;
Arcs.append(new qucs::Arc(-12,-12, 24, 24, 0, 16*360,QPen(Qt::darkBlue,2)));
Lines.append(new qucs::Line(4, -3, 4, 3,QPen(Qt::darkGreen,2)));
Lines.append(new qucs::Line(0, -3, 0, 2,QPen(Qt::darkGreen,2)));
Lines.append(new qucs::Line(-4, -3, -4, 3,QPen(Qt::darkGreen,2)));
Lines.append(new qucs::Line(4, -3, -4, -3,QPen(Qt::darkGreen,2)));
Lines.append(new qucs::Line(-30, 0,-12, 0,QPen(Qt::darkBlue,2)));
Lines.append(new qucs::Line( 30, 0, 12, 0,QPen(Qt::darkBlue,2)));
Lines.append(new qucs::Line( 18, 5, 18, 11,QPen(Qt::red,1)));
Lines.append(new qucs::Line( 21, 8, 15, 8,QPen(Qt::red,1)));
Lines.append(new qucs::Line(-18, 5,-18, 11,QPen(Qt::black,1)));
Ports.append(new Port( 30, 0));
Ports.append(new Port(-30, 0));
x1 = -30; y1 = -14;
x2 = 30; y2 = 14;
tx = x1+4;
ty = y2+4;
Model = "ECVS";
Name = "ECVS";
Props.append(new Property("U", "0 V", true,
QObject::tr("voltage in Volts")));
rotate();
}
ecvs::~ecvs()
{
}
Component* ecvs::newOne()
{
return new ecvs();
}
Element* ecvs::info(QString& Name, char* &BitmapFile, bool getNewOne)
{
Name = QObject::tr("Externally Controlled Voltage Source");
BitmapFile = (char *) "ecvs";
if(getNewOne) return new ecvs();
return 0;
}
QString ecvs::netlist()
{
QString s = Model+":"+Name;
for (Port *p1 : Ports)
s += " "+p1->Connection->Name;
for(Property *p2 : Props)
s += " "+p2->Name+"=\""+p2->Value+"\"";
return s + "\n";
}