Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
SchematicContent.h
Go to the documentation of this file.
1
7
8#ifndef SCHEMATICCONTENT_H
9#define SCHEMATICCONTENT_H
10
11#include <QGraphicsTextItem>
12#include <QPen>
13#include <QRegularExpression>
14#include <QMessageBox> // Needed to show warnings during export process
15#include <utility> // std::as_const()
16
17#include "Misc/general.h"
19#include "Schematic/structures.h"
20
22
23class Component;
24
28 public:
31
34
37 QString getSParameterNetlist();
38
41 void setNetlist(QString netlist) { this->netlist = netlist; }
42
43 QString Name;
44 QString Type;
45
47 QList<ComponentInfo> Comps;
48 QList<WireInfo> Wires;
49 QList<NodeInfo> Nodes;
50
55 QString exportSchematic(QString environment, QString backend);
56
57
61 QString export2QucsS(QString); // Convert the schematic content to Qucs-S format
62
67 void setFrequencySweep(QString f1, QString f2, int N) {
68 f_start = f1;
69 f_stop = f2;
70 n_points = N;
71 }
72
74 QString f_start, f_stop;
76
77 private:
81 void assignNetToWiresConnectedToNode(QString, QString);
82
83 public:
86
89 void appendComponent(struct ComponentInfo C) {Comps.append(C);}
90
93 void appendWire(WireInfo WI);
94
100 void appendWire(QString O, int ON, QString D, int DN);
101
108 void appendWire(QString O, int ON, QString D, int DN, QColor c);
109
112 void appendNode(struct NodeInfo N){ Nodes.append(N); }
113
116 void appendText(QGraphicsTextItem* text) {Texts.append(text);}
118
123 double getZin() { return Comps[0].val["Z"].toDouble(); }
124
127 double getZout() {
128 return Comps[Comps.size() - 1].val["Z"].toDouble();
129 }
130
133 QString getZinString() { return Comps[0].val["Z"]; }
134
139 QString getZoutString(){
140 return Comps[Comps.size() - 1].val["Z"];
141 }
143
146 QList<ComponentInfo> getComponents() { return Comps; }
147
150 void setComponents(QList<ComponentInfo> C) { Comps = C; }
151
154 QList<WireInfo> getWires() { return Wires; }
155
158 QList<NodeInfo> getNodes() { return Nodes; }
159
162 void setNodes(QList<NodeInfo> N) { Nodes = N; }
163
166 QList<QGraphicsTextItem*> getTexts() { return Texts; }
167
171 int getComponentCounter(ComponentType);
172
173
174 QMap<ComponentType, int> NumberComponents;
175 unsigned int NumberWires;
176
177 private:
178 QList<QGraphicsTextItem*> Texts;
179 QString Description;
180 QString netlist;
181};
182
183#endif // SCHEMATICCONTENT_H
Qucs-S schematic export class (definition)
Component information container.
Definition infoclasses.h:18
Graphical component representation in schematic.
Definition component.h:33
Wiring node information class.
Definition infoclasses.h:241
Container for schematic circuit data.
Definition SchematicContent.h:27
double getZout()
Get output impedance value.
Definition SchematicContent.h:127
void appendComponent(struct ComponentInfo C)
Add component to schematic.
Definition SchematicContent.h:89
void setFrequencySweep(QString f1, QString f2, int N)
Set frequency sweep parameters for export.
Definition SchematicContent.h:67
QString f_start
Frequency sweep settings (required for exporting)
Definition SchematicContent.h:74
QList< WireInfo > getWires()
Get wire list.
Definition SchematicContent.h:154
void setNodes(QList< NodeInfo > N)
Set node list.
Definition SchematicContent.h:162
void setComponents(QList< ComponentInfo > C)
Set component list.
Definition SchematicContent.h:150
int getComponentCounter(ComponentType)
Get count of specific component type.
Definition SchematicContent.cpp:519
void setNetlist(QString netlist)
Set netlist directly.
Definition SchematicContent.h:41
QString getSParameterNetlist()
Generate netlist for the built-in S-parameter simulator.
Definition SchematicContent.cpp:42
QString Type
Schematic type (filter, attenuator, etc.)
Definition SchematicContent.h:44
QString getZoutString()
Get output impedance string.
Definition SchematicContent.h:139
unsigned int NumberWires
Total wire count.
Definition SchematicContent.h:175
QString Name
Schematic name.
Definition SchematicContent.h:43
QList< NodeInfo > getNodes()
Get node list.
Definition SchematicContent.h:158
QList< QGraphicsTextItem * > getTexts()
Get text list.
Definition SchematicContent.h:166
void appendWire(WireInfo WI)
Add wire to schematic.
Definition SchematicContent.cpp:494
QString exportSchematic(QString environment, QString backend)
Export schematic to specified environment (so far, Qucs-S only)
Definition SchematicContent.cpp:536
QList< NodeInfo > Nodes
Node list.
Definition SchematicContent.h:49
QList< WireInfo > Wires
Wire list.
Definition SchematicContent.h:48
QMap< ComponentType, int > NumberComponents
Number of elements of each component type (#caps, #res, etc.)
Definition SchematicContent.h:174
QList< ComponentInfo > getComponents()
Get component list.
Definition SchematicContent.h:146
QList< ComponentInfo > Comps
Schematic elements.
Definition SchematicContent.h:47
int n_points
Number of frequency points.
Definition SchematicContent.h:75
QString export2QucsS(QString)
Convert schematic to Qucs-S format.
~SchematicContent()
Class destructor.
Definition SchematicContent.h:33
QString f_stop
Frequency sweep start and stop.
Definition SchematicContent.h:74
QString getZinString()
Get input impedance string.
Definition SchematicContent.h:133
void appendText(QGraphicsTextItem *text)
Add text annotation.
Definition SchematicContent.h:116
void appendNode(struct NodeInfo N)
Add node to schematic.
Definition SchematicContent.h:112
SchematicContent()
Class constructor.
Definition SchematicContent.cpp:10
Wire connection information.
Definition infoclasses.h:153
Utility functions needed across the whole project.
Definition of the classes related to the component, nodes and wires data.