= The sequencer2 server =
== Overview ==
The sequencer2 is a compiler for the FPGA experiment control system known as Pauls Box.
More information may be found on
link:http://pulse-sequencer.sf.net[http://pulse-sequencer.sf.net]
It consists of two different modules:
[grid="all"]
`-----------------`----------------------------------------------
sequencer2 The Bytecode compiler
server A TCP server for interfacing with LabView
-----------------------------------------------------------------
The LabView interface documentation and a general overview may be found in
the old documentation:
link:http://sourceforge.net/project/showfiles.php?group_id=129764&package_id=220283[pcp-doc.pdf]
Please note that this manual refers to the "old" sequencer and is not generally
valid for the sequencer2. The LabView interface is identical in the two servers.
== Installing the server ==
For installing the server the Python programming language in
version 2.4 or higher is required.
The python programming language can be downloaded
link:http://python.org[http://python.org]
== Configuring the server ==
The configration is stored in the file config/sequencer2.ini
For a new setup make sure that at least following settings are correct:
[grid="all"]
.-----------------------------.----------------------------------
Setting Value
-----------------------------------------------------------------
box_ip_address See PTP manual
DIO_configuration_file Your hardware configuration file
sequence_dir The directory of your sequence files
include_dir The directory of your include files
nonet False
reference_frequency Your DDS reference frequency
-----------------------------------------------------------------
After that the server may be started with:
.................................
python start_box_server.py
.................................
== Reporting Bugs ==
If you encounter any bugs in the software/hardware your experiment write an email to:
philipp.schindler@uibk.ac.at
== Testing the sequencer2 ==
The sequencer may be tested with following command:
.................................
python sequencer2_unittest.py
.................................
If this finishes without any error message your sequencer2 setup should work.
== More documentation ==
The server uses the epydoc markup language inside the source code.
An (presumably) outdated snapshot is available at:
link:http://pulse-sequencer.sf.net/innsbruck/sequencer2[http://pulse-sequencer.sf.net/innsbruck/sequencer2]
To generate the documentation the epydoc interpreter is needed.
It is available from: http://epydoc.sf.net
The documentation is generated with the command:
............................................
epydoc -v --top=server server sequencer2
............................................
== Debugging the server with ipython ==
This debugging method is foe low level debugging if the server.
You might not need it anyway....
For debugging the server the ipython python shell is recommended.
Ipython is available at:
link:http://ipython.scipy.org[http://ipython.scipy.org]
Start the ipython shell in the root directory of the server.
Generate the necessarry variables and includes by running folling command:
........................
%run test_ipython.py
........................
A simple sequence consiting of two ttl pulses is then generated with the commands
....................
ttl_pulse("1",10)
ttl_pulse("2",10)
....................
The sequence list is generated with the command
....................................................................
user_api.final_array = user_api.get_sequence_array(sequence_var)
....................................................................
Compiling the sequence is done with the command
..............................
user_api.compile_sequence()
..............................
The sequence is displayed with the following command:
.................................................
user_api.sequencer.debug_sequence(force=True)
.................................................
== COPYING ==
Copyright (C) 2008 Philipp Schindler, Max Harlander, Lutz Peterson
Free use of this software is granted under the terms of the
GNU General Public License (GPL).