Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/agardelein/oscopy

An interactive program to view electrical simulation results
https://github.com/agardelein/oscopy

Last synced: 23 days ago
JSON representation

An interactive program to view electrical simulation results

Awesome Lists containing this project

README

        

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

Support for arithmetic with signals is implemented.

In each plot window, horizontal and vertical cursors can be toggled by using
keys '1', '2', '3' and '4'.

Support for drag'n drop from signal window to graphs is implemented.

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 shall be installed on the system using autotools.
In the latter case:
$ ./autogen.sh && ./configure && make

Dependencies:
* ipython
* python-dbus
* python-xdg

Documentation can be built by passing the option '--with-doc' to the configure
script. It will build the user manual (ioscopy-manual.pdf) and the oscopy API
manual (oscopy-api.pdf). You will need LaTeX and graphviz to be installed on
your system.

INSTALLING
----------
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.X/site-packages:$PYTHONPATH

If you want to use gschem integration, you will need to use the same --prefix
that you used to install gschem.

QUICKSTART
----------
To run the program, just do ./ioscopy

To get any info on available commands, type 'help'.

A sample circuit is provided for demonstration purposes.

$ cd demo
$ ioscopy
Just do "File>Run Netlister and simulate..." and fill in the window with the
commands provided below
then in the terminal window:
ioscopy> oexec demo.oscopy

Using gschem integration:
If you want to use gschem integration, add (load-from-path "oscopy.scm") to your
gschemrc, and you shoud see the oscopy menu on the next start of gschem. Note
that you should have done ./configure --prefix="same prefix as gschem"
Then assuming you are in the oscopy directory:
* launch gschem
* open demo/demo.sch
* oscopy>Launch oscopy
* Follow the previous instructions
* Once the script finished to execute, go back to gschem and change the value
of a component e.g. the capacitor C.
* oscopy>Update oscopy
* once netlister and simulator ran, figures should have changes, e.g. figure 3
vout should have moved and vo not.

COMMAND REFERENCE
-----------------
oadd SIG [, SIG [, SIG]...]
Add a graph to the current figure

ocreate [SIG [, SIG [, SIG]...]]
Create a new figure, set it as current, add the signals

ocontext
Return the Context object used within ioscopy

odelete GRAPH#
Delete a graph from the current figure

odestroy FIG#
Destroy a figure

oexec FILENAME
execute commands from file

ofactors 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

ofiglist
Print the list of figures

ofreeze SIG [, SIG [, SIG]...]
Do not consider signal for subsequent updates

ogui
Show the GUI

oimport SIG [, SIG [, SIG]...]
Import a list of signals into oscopy to handle dependencies during updates
Example:
oscopy> oread demo/trans.dat
oscopy> pwr=iRD*vds
oscopy> oimport pwr
oscopy> oadd pwr
oscopy> oupdate #if iRD or vds changed, pwr will be automatically updated

oinsert SIG [, SIG [, SIG]...]
Insert a list of signals into the current graph

olayout horiz|vert|quad
Define the layout of the current figure

omode MODE
Set the type of the current graph of the current figure
Available modes :
lin Linear graph
polar Polar graph
smith Smith Chart graph
eye Eye diagram graph

orange [x|y min max]|[xmin xmax ymin ymax]
Set the axis range of the current graph of the current figure

oread DATAFILE
Read signal file

orefresh FIG#|on|off|current|all
Force/toggle autorefresh of current/#/all figures on update

oremove SIG [, SIG [, SIG]...]
Delete a list of signals into from current graph

oscale [lin|logx|logy|loglog]
Set the axis scale

oselect FIG#-GRAPH#
Select the current figure and the current graph

osiglist
List loaded signals

ounfreeze SIG [, SIG [, SIG]...]
Consider signal for subsequent updates

ounit [XUNIT,] YUNIT
Set the unit to be displayed on graph axis

oupdate
Reread data files

owrite format [(OPTIONS)] FILE SIG [, SIG [, SIG]...]
Write signals to file

numpy.ufuncs and numpy.fft functions are supported with their direct name.