2
0
mirror of https://github.com/m-labs/artiq.git synced 2024-12-25 11:18:27 +08:00

manual/faq: cleanup/update

This commit is contained in:
Sebastien Bourdeauducq 2016-04-05 14:17:06 +08:00
parent 6304b3f319
commit e1da9de39d

View File

@ -20,17 +20,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?
---------------------------------------------------------------
@ -67,13 +60,12 @@ 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?
----------------------------------------------------------------------
@ -81,7 +73,7 @@ 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.