1
0
forked from M-Labs/artiq

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. 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. Use the dot (".") in dataset names to separate folders. The GUI will automatically create and delete folders in the dataset tree display.
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).
write a generator feeding a kernel feeding an analyze function? 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? write part of my experiment as a coroutine/asyncio task/generator?
------------------------------------------------------------------ ------------------------------------------------------------------
You can not change the API that your experiment exposes: ``__init__()``, You can not change the API that your experiment exposes: ``build()``,
``build()``, ``run()`` and ``analyze()`` need to be regular functions, not ``prepare()``, ``run()`` and ``analyze()`` need to be regular functions, not
generators or asyncio coroutines. That would make reusing your own code in generators or asyncio coroutines. That would make reusing your own code in
sub-experiments difficult and fragile. You can however always use the sub-experiments difficult and fragile. You can however wrap your own
scheduler API to achieve the same (``scheduler.yield(duration=0)``) generators/coroutines/tasks in regular functions that you then expose as part
or wrap your own generators/coroutines/tasks in regular functions that of the API.
you then expose as part of the API.
determine the pyserial URL to attach to a device by its serial number? 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 You can list your system's serial devices and print their vendor/product
id and serial number by running:: 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 It will give you the ``/dev/ttyUSBxx`` (or the ``COMxx`` for Windows) device
names. names.