Skip to content

Commit

Permalink
manual/faq: cleanup/update
Browse files Browse the repository at this point in the history
sbourdeauducq committed Apr 5, 2016
1 parent eba90c8 commit f4c5403
Showing 1 changed file with 9 additions and 17 deletions.
26 changes: 9 additions & 17 deletions doc/manual/faq.rst
Original file line number Diff line number Diff line change
@@ -11,17 +11,10 @@ prevent my first RTIO command from causing an underflow?

The first RTIO event is programmed with a small timestamp above the value of the timecounter at the start of the experiment. If the kernel needs more time than this timestamp to produce the event, an underflow will occur. You can prevent it by calling ``break_realtime`` just before programming the first event, or by adding a sufficient delay.

organize parameters in folders?
-------------------------------
organize datasets in folders?
-----------------------------

Folders are not supported yet, use GUI filtering for now. Names need to be unique.

enforce functional dependencies between parameters?
---------------------------------------------------

If you want to override a parameter ``b`` in the PDB to be ``b = 2*a``,
use wrapper experiments, overriding parameters by passing them to the
experiment's constructor (``param_override`` argument).
Use the dot (".") in dataset names to separate folders. The GUI will automatically create and delete folders in the dataset tree display.

write a generator feeding a kernel feeding an analyze function?
---------------------------------------------------------------
@@ -58,21 +51,20 @@ Use ``threading.Thread``: portable, fast, simple for one-shot calls.
write part of my experiment as a coroutine/asyncio task/generator?
------------------------------------------------------------------

You can not change the API that your experiment exposes: ``__init__()``,
``build()``, ``run()`` and ``analyze()`` need to be regular functions, not
You can not change the API that your experiment exposes: ``build()``,
``prepare()``, ``run()`` and ``analyze()`` need to be regular functions, not
generators or asyncio coroutines. That would make reusing your own code in
sub-experiments difficult and fragile. You can however always use the
scheduler API to achieve the same (``scheduler.yield(duration=0)``)
or wrap your own generators/coroutines/tasks in regular functions that
you then expose as part of the API.
sub-experiments difficult and fragile. You can however wrap your own
generators/coroutines/tasks in regular functions that you then expose as part
of the API.

determine the pyserial URL to attach to a device by its serial number?
----------------------------------------------------------------------

You can list your system's serial devices and print their vendor/product
id and serial number by running::

$ python3 -m serial.tools.list_ports -v
$ python3.5 -m serial.tools.list_ports -v

It will give you the ``/dev/ttyUSBxx`` (or the ``COMxx`` for Windows) device
names.

0 comments on commit f4c5403

Please sign in to comment.