This project is a fork of the
oscopy.git project. If you have that one
already cloned locally, you can use
git clone --reference /path/to/your/oscopy.git/incarnation mirror_URL
to save bandwidth during cloning.
oscopy -- An interactive program to view electrical results
ABOUT OSCOPY
------------
This is oscopy, a kind of oscilloscope in python, to view 2D electrical
simulation or measurement results.
It is designed to easily add new input data file formats and new types of plots.
Features highlight:
* Post-processing: math expressions, fft, diffs
* View, examine: multiple windows, cursors
* Data import: gnucap
* Data export: gnucap, pictures
* Scripting
* D-Bus support: update recursively signals
* Run netlister and simulator
There are two interfaces:
* Command-line interface (CLI): oscopy_app.py
* Graphical user interface (GUI) fully integrating the CLI: oscopy_ui.py
Scripting is supported in both application, although in the GUI some commands are disabled since plots are displayed dynamically.
Support for mathematic with signals is implemented. Supported functions:
trig, sqrt, log...
Support for (i)fft: fft(v1) + fft(v2) is possible, but please avoid things like ifft(fft(v1) + fft(v2))
First order diff is supported: diff(v1) or diff(v1, 1)
Access to X axis data is provided through Time and Freq, e.g. sin(Time(vsqu)*1e6)
In each plot window, horizontal and vertical cursors can be toggled by using keys '1', '2', '3' and '4'.
GETTING THE SOURCE
------------------
The source can be downloaded from repo.cz:
http://repo.or.cz/w/oscopy.git
To download it:
$ git clone git://repo.or.cz/oscopy.git
BUILDING FROM SOURCE
--------------------
Oscopy can work out of the box when downloaded, but it supports also installing on the system using autotools.
In the latter case:
$ ./autogen.sh && ./configure && make
Dependencies:
* python
* python-numpy
* python-matplotlib
* python-dbus
INSTALLING
----------
If you want to install oscopy on a system:
# ./autogen.sh && ./configure && make install
Note that you might need to update your PYTHONPATH, for example if you install it in ${HOME}/geda, to launch oscopy you might need the following line:
PYTHONPATH=${HOME}/geda/lib/python2.5/site-packages:$PYTHONPATH
QUICKSTART
----------
To run the program, just do ./oscopy_app or ./oscopy_ui.
To get any info on available commands, type 'help'.
A sample circuit is provided for demonstration purposes.
From oscopy directory, prepare the demo circuit files
$ cd demo
$ gnetlist -g spice-sdb -s -o demo.net demo.sch
$ gnucap -b demo.net
$ cd ..
Using the CLI:
$ ./oscopy_app.py -b demo/demo.oscopy
Using the GUI:
$ ./oscopy_ui.py &
then in the terminal window:
oscopy> exec demo/demo.oscopy
COMMAND REFERENCE
-----------------
add SIG [, SIG [, SIG]...]
Add a graph to the current figure
create [SIG [, SIG [, SIG]...]]
Create a new figure, set_ it as current, add the signals
delete GRAPH#
Delete a graph from the current figure
destroy FIG#
Destroy a figure
echo [TEXT]
Print text
exec FILENAME
execute commands from file
factors X, Y
set the scaling factor of the graph (in power of ten)
use 'auto' for automatic scaling factor
e.g. factor -3, 6 set the scale factor at 1e-3 and 10e6
figlist
Print the list of figures
freeze SIG [, SIG [, SIG]...]
Do not consider signal for subsequent updates
insert SIG [, SIG [, SIG]...]
Insert a list of signals into the current graph
layout horiz|vert|quad
Define the layout of the current figure
math destsig=mathexpr
Define a new signal destsig using mathematical expression
destsig=mathexpr is also valid.
mode MODE
Set the type of the current graph of the current figure
Available modes :
lin Linear graph
pause
Wait for the user to press enter
plot
Draw and show the figures (disabled in the GUI)
range [x|y min max]|[xmin xmax ymin ymax]|[reset]
Set the axis range of the current graph of the current figure
read DATAFILE
read signal file
remove SIG [, SIG [, SIG]...]
Delete a list of signals into from current graph
scale [lin|logx|logy|loglog]
Set the axis scale
select FIG#-GRAPH#
Select the current figure and the current graph
siglist
List loaded signals
unfreeze SIG [, SIG [, SIG]...]
Consider signal for subsequent updates
unit [XUNIT,] YUNIT
Set the unit to be displayed on graph axis
update
Reread data files
write format [(OPTIONS)] FILE SIG [, SIG [, SIG]...]
Write signals to file