Qucs-GUI
0.0.18
Main Page
Related Pages
Data Structures
Files
File List
Globals
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
qucs
components
rfedd2p.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
rfedd2p.cpp
3
----------------
4
begin : Sub Feb 17 2008
5
copyright : (C) 2008 by Stefan Jahn
6
email : stefan@lkcc.org
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
#include <QtGui>
18
#include "
rfedd2p.h
"
19
#include "
main.h
"
20
#include "
schematic.h
"
21
22
#include <QFileInfo>
23
24
25
26
RFedd2P::RFedd2P
()
27
{
28
Description
= QObject::tr(
"equation defined 2-port RF device"
);
29
30
Model
=
"RFEDD2P"
;
31
Name
=
"RF"
;
32
33
// first properties !!!
34
Props
.append(
new
Property
(
"Type"
,
"Y"
,
false
,
35
QObject::tr(
"type of parameters"
)+
" [Y, Z, S, H, G, A, T]"
));
36
Props
.append(
new
Property
(
"duringDC"
,
"open"
,
false
,
37
QObject::tr(
"representation during DC analysis"
)+
38
" [open, short, unspecified, zerofrequency]"
));
39
40
// last properties
41
Props
.append(
new
Property
(
"P11"
,
"0"
,
false
,
42
QObject::tr(
"parameter equation"
) +
" 11"
));
43
Props
.append(
new
Property
(
"P12"
,
"0"
,
false
,
44
QObject::tr(
"parameter equation"
) +
" 12"
));
45
Props
.append(
new
Property
(
"P21"
,
"0"
,
false
,
46
QObject::tr(
"parameter equation"
) +
" 21"
));
47
Props
.append(
new
Property
(
"P22"
,
"0"
,
false
,
48
QObject::tr(
"parameter equation"
) +
" 22"
));
49
50
createSymbol
();
51
}
52
53
// -------------------------------------------------------
54
Component
*
RFedd2P::newOne
()
55
{
56
RFedd2P
* p =
new
RFedd2P
();
57
p->
Props
.at(0)->Value =
Props
.at(0)->Value;
58
p->
recreate
(0);
59
return
p;
60
}
61
62
// -------------------------------------------------------
63
Element
*
RFedd2P::info
(QString& Name,
char
* &BitmapFile,
bool
getNewOne)
64
{
65
Name = QObject::tr(
"Equation Defined 2-port RF Device"
);
66
BitmapFile = (
char
*)
"rfedd"
;
67
68
if
(getNewOne) {
69
RFedd2P
* p =
new
RFedd2P
();
70
p->
Props
.at(0)->Value =
"Y"
;
71
p->
recreate
(0);
72
return
p;
73
}
74
return
0;
75
}
76
77
// -------------------------------------------------------
78
QString
RFedd2P::netlist
()
79
{
80
QString s =
"RFEDD:"
+
Name
;
81
QString e =
"\n"
;
82
QString n, p;
83
84
// output all node names
85
for
(
Port
*p1 =
Ports
.first(); p1 != 0; p1 =
Ports
.next())
86
s +=
" "
+p1->Connection->Name;
// node names
87
88
// output all properties
89
Property
*p2;
90
p2 =
Props
.at(0);
91
s +=
" "
+p2->Name+
"=\""
+p2->Value+
"\""
;
92
p = p2->Value;
93
p2 =
Props
.at(1);
94
s +=
" "
+p2->Name+
"=\""
+p2->Value+
"\""
;
95
p2 =
Props
.at(2);
96
while
(p2) {
97
n = p2->Name.mid(1);
98
s +=
" "
+p2->Name+
"=\""
+
Name
+
"."
+p+n+
"\""
;
99
e +=
" Eqn:Eqn"
+
Name
+p2->Name+
" "
+
100
Name
+
"."
+p+n+
"=\""
+p2->Value+
"\" Export=\"no\"\n"
;
101
p2 =
Props
.next();
102
}
103
104
return
s+e;
105
}
106
107
// -------------------------------------------------------
108
void
RFedd2P::createSymbol
()
109
{
110
QFontMetrics metrics(
QucsSettings
.
font
);
// get size of text
111
int
fHeight = metrics.lineSpacing();
112
int
w, i;
113
QString tmp;
114
115
// draw symbol
116
#define HALFWIDTH 17
117
int
h = 15;
118
Lines
.append(
new
Line
(-
HALFWIDTH
, -h,
HALFWIDTH
, -h,QPen(Qt::darkBlue,2)));
119
Lines
.append(
new
Line
(
HALFWIDTH
, -h,
HALFWIDTH
, h,QPen(Qt::darkBlue,2)));
120
Lines
.append(
new
Line
(-
HALFWIDTH
, h,
HALFWIDTH
, h,QPen(Qt::darkBlue,2)));
121
Lines
.append(
new
Line
(-
HALFWIDTH
, -h,-
HALFWIDTH
, h,QPen(Qt::darkBlue,2)));
122
123
i = fHeight/2;
124
tmp =
Props
.at(0)->Value;
125
w = metrics.width(tmp);
126
Texts
.append(
new
Text
(w/-2, -i, tmp));
127
128
i = 0;
129
int
y = 15-h;
130
Lines
.append(
new
Line
(-30, y,-
HALFWIDTH
, y,QPen(Qt::darkBlue,2)));
131
Ports
.append(
new
Port
(-30, y));
132
tmp = QString::number(i+1);
133
w = metrics.width(tmp);
134
Texts
.append(
new
Text
(-20-w, y-fHeight-2, tmp));
135
i++;
136
137
Lines
.append(
new
Line
(
HALFWIDTH
, y, 30, y,QPen(Qt::darkBlue,2)));
138
Ports
.append(
new
Port
( 30, y));
139
tmp = QString::number(i+1);
140
Texts
.append(
new
Text
( 20, y-fHeight-2, tmp));
141
y += 60;
142
i++;
143
144
x1
= -30;
y1
= -h-2;
145
x2
= 30;
y2
= h+2;
146
147
tx
=
x1
+4;
148
ty
=
y1
- fHeight - 4;
149
}
Component::Lines
Q3PtrList< Line > Lines
Definition:
component.h:67
HALFWIDTH
#define HALFWIDTH
Element::y1
int y1
Definition:
element.h:153
tQucsSettings::font
QFont font
Definition:
main.h:46
RFedd2P::createSymbol
void createSymbol()
Definition:
rfedd2p.cpp:108
QucsSettings
tQucsSettings QucsSettings
Definition:
main.cpp:52
Component::tx
int tx
Definition:
component.h:78
RFedd2P::RFedd2P
RFedd2P()
Definition:
rfedd2p.cpp:26
Element::y2
int y2
Definition:
element.h:153
Port
Definition:
element.h:72
Element::x1
int x1
Definition:
element.h:153
RFedd2P
Definition:
rfedd2p.h:24
main.h
Definitions and declarations for the main application.
Component::ty
int ty
Definition:
component.h:78
Component::Props
Q3PtrList< Property > Props
Definition:
component.h:72
Property
Definition:
element.h:94
Text
Definition:
element.h:82
Component
Definition:
component.h:33
Line
Definition:
element.h:48
Element
Superclass of all schematic drawing elements.
Definition:
element.h:142
MultiViewComponent::recreate
void recreate(Schematic *)
Definition:
component.cpp:1250
Component::Ports
Q3PtrList< Port > Ports
Definition:
component.h:70
rfedd2p.h
RFedd2P::newOne
Component * newOne()
Definition:
rfedd2p.cpp:54
RFedd2P::netlist
QString netlist()
Definition:
rfedd2p.cpp:78
Component::Name
QString Name
Definition:
component.h:80
Component::Texts
Q3PtrList< Text > Texts
Definition:
component.h:71
Component::Model
QString Model
Definition:
component.h:80
Component::Description
QString Description
Definition:
component.h:81
schematic.h
RFedd2P::info
static Element * info(QString &, char *&, bool getNewOne=false)
Definition:
rfedd2p.cpp:63
Element::x2
int x2
Definition:
element.h:153
Generated on Mon Sep 1 2014 20:05:20 for Qucs-GUI by
1.8.6