4
4
How do I ...
5
5
============
6
6
7
- override the sysclk frequency of just one dds?
8
- ----------------------------------------------
7
+ override the ` sysclk ` frequency of just one dds?
8
+ ------------------------------------------------
9
9
10
10
Override the parameter using an argument in the ddb.
11
11
@@ -18,12 +18,13 @@ Names need to be unique.
18
18
enforce functional dependencies between parameters?
19
19
---------------------------------------------------
20
20
21
- Use wrapper experiments, overriding parameters of arguments.
21
+ If you want to slave a parameter `b ` in the pdb to be `b = 2*a `,
22
+ use wrapper experiments, overriding parameters of arguments.
22
23
23
- get rid of `DbKeys `?
24
+ get rid of `DBKeys `?
24
25
--------------------
25
26
26
- `DbKeys ` enforces valid parameter/argument names, references
27
+ `DBKeys ` enforces valid parameter/argument names, references
27
28
keys in pdb and hints at metadata on how values can be retrieved.
28
29
29
30
write a generator feeding a kernel feeding an analyze function?
@@ -61,8 +62,10 @@ Use `threading.Thread`: portable, fast, simple for one-shot calls
61
62
write part of my experiment as a coroutine/Task/generator?
62
63
----------------------------------------------------------
63
64
64
- You want to write experiment preparation (`__init__() ` or `build() `)
65
- or analysis (`analyze() `)
66
-
67
- No. That would make reusing your own code in sub-experiments difficult and
68
- fragile.
65
+ You can not change the API that your experiment exposes: `__init__() `,
66
+ `build() `, and `analyze() ` need to be regular functions, not generators,
67
+ coroutines. or `asyncio.Tasks `. That would make reusing your own code in
68
+ sub-experiments difficult and fragile. You can however always use the
69
+ scheduler API to achieve the same (`scheduler.suspend(duration=0) `)
70
+ or wrap your own generators/coroutines/Tasks in regular functions that
71
+ you then expose as part of the API.
0 commit comments