Skip to content

An interactive program to view electrical simulation results

License

Notifications You must be signed in to change notification settings

agardelein/oscopy

Repository files navigation

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.

About

An interactive program to view electrical simulation results

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •