File: gwave-projects.html

package info (click to toggle)
lepton-eda 1.9.18-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,024 kB
  • sloc: ansic: 66,688; lisp: 29,508; sh: 6,792; makefile: 3,111; perl: 1,404; pascal: 1,161; lex: 887; sed: 16; cpp: 8
file content (147 lines) | stat: -rw-r--r-- 6,444 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">

<h3 class="sectionedit1"><a name="gwave_--_analog_waveform_viewer" id="gwave_--_analog_waveform_viewer">Gwave -- analog waveform viewer</a></h3>
<div class="level3">

<p>
Gwave is an analog waveform viewer which is used to view the output files produced by ngspice or gnucap.  Here are some feature suggestions.  You might choose a large handful of features to implement as your GSoC project.
</p>

</div>

<h5><a name="geda_integration" id="geda_integration">gEDA integration</a></h5>
<div class="level5">

<p>
This project involves improving the integration of gwave into the 
interprocess-communication to and from the other tools, especialy gschem
and gnucap.  While gwave has an X11-based remote mechanism, Dbus is now the
standard, and should probably be used instead.
</p>

</div>

<h5><a name="developing_unit_tests_for_gtk_-20" id="developing_unit_tests_for_gtk_-20">Developing unit tests for GTK+-2.0</a></h5>
<div class="level5">

<p>
Gwave has been ported to Gtk2.  As part of this effort, developing a battery of unit tests for gwave would be useful.  The idea is to create a variety of different input files which exercise gwave&#039;s ability to import and display waveforms.  An important feature for testing will be to compare the displayed waveform against a “golden” waveform to verify rendering correctness.
</p>

</div>

<h5><a name="user_interface" id="user_interface">User Interface</a></h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> Replace the existing variable-list with a tree-style variable-selector. allow multiple ways of organizing the tree: file/sweep/variable vs.  file/variable/sweep, extract circuit heirarchy from variable names, etc.  Perhaps a two-pane tree browser, with the internal nodes of the tree in one pane, and the leaf nodes (variables that can be displayed) in another.</div>
</li>
<li class="level1"><div class="li"> Add icons to the toolbar elements</div>
</li>
<li class="level1"><div class="li"> Enhance use of Gtk2.0 file chooser: wildcards for selecting particular types of files,</div>
</li>
<li class="level1"><div class="li"> Accept drag-and-drop from a file manager to add files, run scripts </div>
</li>
<li class="level1"><div class="li"> Allow drag-and-drop from one wavepanel to another to move wave</div>
</li>
<li class="level1"><div class="li"> Remember/restore the position of the windows, both most-recent-session, and also save it in the scripts.</div>
</li>
<li class="level1"><div class="li"> Add keybinding mechanism</div>
</li>
<li class="level1"><div class="li"> An undo stack for operations that change the view</div>
</li>
<li class="level1"><div class="li"> Add a guile console window, where expressions can be typed to query/manipulate/debug gwave objects and variable data.</div>
</li>
</ul>

</div>

<h5><a name="data_visualization_and_analysis" id="data_visualization_and_analysis">Data visualization and analysis</a></h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> Draw a real graticule in wave panels, including a grid of faint/dotted lines and numeric scales</div>
</li>
<li class="level1"><div class="li"> Add ability to customize measurements</div>
</li>
<li class="level1"><div class="li"> Add additional drawing styles: dotted/dashed lines, symbols showing actual datapoints, </div>
</li>
<li class="level1"><div class="li"> Add user-configurable colors</div>
</li>
<li class="level1"><div class="li"> waveform calculations (Requires some of the infrastructure work below)</div>
<ul>
<li class="level2"><div class="li"> display-functions of a single wavevar and scalars</div>
</li>
<li class="level2"><div class="li"> display-functions of wavevars sharing the same independent var</div>
</li>
<li class="level2"><div class="li"> more general stuff that computes a new wavevar</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> Additional types of wavepanels for different types of viewing/analsis. (best done after refactoring the wavepanel UI elements into a class heirarchy of proper Gtk widgets)</div>
</li>
</ul>

</div>

<h5><a name="datafile_variable_infrastructure" id="datafile_variable_infrastructure">Datafile/Variable Infrastructure</a></h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> Readers for additional file-formats: wdf, sst2, psf have been mentioned</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Convert from ad-hoc data structures to a glib/GObject class heirarchy</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Ability to add a variable to a file after it is read in, to support  computing a new variable as a function of existing ones</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Deferred read: initialy read only the independent variable from a datafile,  then read the others when they are first displayed.</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Add a new class of variable, which is a function of other variables and constants to computed on the fly as it is displayed</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> New class of variable for digital data; reader and display capability for verilog vcd</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Ability to create new datafile-like constructs programaticly, to hold  the result of computations involving variables in two or more exisiting files. </div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Handle creation of the independent-variable intelligently.</div>
</li>
</ul>

</div>

<h5><a name="other_infrastructure" id="other_infrastructure">Other infrastructure</a></h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> convert other data structure from ad-hoc structures wrapped as custom SMOBs to GObject wrapped with guile-gobject.</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Convert the wavepanel drawing-area code into a new Gtk widget type</div>
</li>
</ul>

</div>
</div>
</body>
</html>