forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

511 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 2b3641ac0a db,worker: fix realtime result initialization 2015-03-13 15:12:55 +01:00
Sebastien Bourdeauducq 5ca4821a29 ctlmgr: use workaround for asyncio.wait_for(process.wait()... Python bug 2015-03-11 16:48:16 +01:00
Sebastien Bourdeauducq d5795fd619 master: watchdog support
Introduces a watchdog context manager to use in the experiment code that
terminates the process with an error if it times out. The syntax is:

with self.scheduler.watchdog(20*s):
   ...

Watchdogs timers are implemented by the master process (and the worker
communicates the necessary information about them) so that they can be
enforced even if the worker crashes. They can be nested arbitrarily.
During yields, all watchdog timers for the yielding worker are
suspended [TODO]. Setting up watchdogs is not supported in kernels,
however, a kernel can be called within watchdog contexts (and terminating
the worker will terminate the kernel [TODO]).

It is possible to implement a heartbeat mechanism using a watchdog, e.g.:

for i in range(...):
    with self.scheduler.watchdog(...):
        ....

Crashes/freezes within the iterator or the loop management would not be
detected, but they should be rare enough.
2015-03-11 16:43:14 +01:00
Sebastien Bourdeauducq 4c280d5fcc master: use a new worker process for each experiment 2015-03-09 16:22:41 +01:00
Sebastien Bourdeauducq ec1d082730 remove timeout from run_params (to be replaced by a better mechanism) 2015-03-09 10:51:32 +01:00
Sebastien Bourdeauducq d95a9cac9a move realtime result registration into dbh, simplify syntax 2015-03-08 17:27:27 +01:00
Sebastien Bourdeauducq f2e3dfb848 Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +01:00
Sebastien Bourdeauducq 0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01:00
Yann Sionneau 14c759ff89 add Thorlabs T-Cube NDSP 2015-03-04 14:30:49 +00:00
Sebastien Bourdeauducq 0abd41a04a pc_rpc: trace support in server 2015-02-27 00:17:11 -07:00
Sebastien Bourdeauducq 651ed71b79 master: basic automatic experiment list 2015-02-21 20:34:31 -07:00
Sebastien Bourdeauducq 4267e0deab master,artiq_run: simplify unit autodetection 2015-02-21 20:26:58 -07:00
Sebastien Bourdeauducq 387de11e56 artiq_run: fix import 2015-02-21 20:09:46 -07:00
Sebastien Bourdeauducq 6601bebcfe master: make RIDs unique across restarts 2015-02-21 18:41:07 -07:00
Sebastien Bourdeauducq 965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -07:00
Sebastien Bourdeauducq 65555a3a09 artiq_run,master: introduce __artiq_unit__ attribute to mark and name experiments 2015-02-20 14:01:34 -07:00
Sebastien Bourdeauducq 0dd5692c32 master,run: pass run_params to experiment 2015-02-19 20:05:12 -07:00
Sebastien Bourdeauducq 4d21b78314 master,client,gui: factor timeout into run_params 2015-02-19 20:03:55 -07:00
Sebastien Bourdeauducq d01ba8e644 artiq_run: provide dummy scheduler API 2015-02-19 12:09:37 -07:00
Sebastien Bourdeauducq c69c4d5ce9 master: expose scheduler API to experiments 2015-02-19 12:09:11 -07:00
Sebastien Bourdeauducq 9ffc370416 master,run: automatically call analyze function 2015-02-19 09:40:15 -07:00
Sebastien Bourdeauducq 656099a331 artiq_run: sort result output alphabetically 2015-02-17 16:12:21 -07:00
Sebastien Bourdeauducq 8c4fb2d534 novatech409b: add sim mode help 2015-02-16 04:39:41 -07:00
Sebastien Bourdeauducq 17611e9899 lda_controller: add description 2015-02-15 17:32:08 -07:00
Joe Britton a3494c57cc add Novatech 409B controller 2015-02-15 17:31:37 -07:00
Sebastien Bourdeauducq e196ef9c48 lda_controller: style 2015-02-15 15:00:55 -07:00
Sebastien Bourdeauducq 17596f4ad8 tools,frontend: print default ports 2015-02-15 14:58:57 -07:00
Sebastien Bourdeauducq 79a5d8a12a tools,frontend: common network arguments 2015-02-15 14:55:43 -07:00
Sebastien Bourdeauducq 6d4b9e5fca frontend: remove lda_client (use artiq_rpctool instead) 2015-02-12 09:34:17 +08:00
Yann Sionneau af4be9a2e2 rpctool: change call syntax 2015-02-12 09:31:04 +08:00
Yann Sionneau b396f5dd43 pc_rpc: support for method listing, frontend: artiq_rpctool, +fixes by SB 2015-02-12 00:38:30 +08:00
Sebastien Bourdeauducq c91705c5d1 ctlmgr: support hostnames in DDB 2015-02-09 20:03:34 +08:00
Sebastien Bourdeauducq 542e047f5a ctlmgr: clean shutdown 2015-02-08 21:44:49 +08:00
Sebastien Bourdeauducq a50c74523f ctlmgr: split command arguments properly 2015-02-08 12:18:57 +08:00
Sebastien Bourdeauducq abb7d9f911 ctlmgr: catch create_subprocess_exec errors and retry 2015-02-08 12:15:22 +08:00
Sebastien Bourdeauducq 96a01efc48 ctlmgr: wait for processes to terminate before starting new ones 2015-02-08 00:59:08 +08:00
Sebastien Bourdeauducq e7d85c5b87 ctlmgr: basic working implementation 2015-02-07 23:52:05 +08:00
Sebastien Bourdeauducq aba749093b ctlmgr: get local bind address, format commands 2015-02-07 01:14:27 +08:00
Sebastien Bourdeauducq f9d3bd107e ctlmgr: retry connection to master, print received ddb 2015-02-06 18:58:54 +08:00
Sebastien Bourdeauducq 17685d1e98 controller manager skeleton 2015-02-06 12:17:51 +08:00
Sebastien Bourdeauducq 8df1b03f0f artiq_run: add verbosity config 2015-02-04 19:09:54 +08:00
Sebastien Bourdeauducq 0e65f71705 artiq_run: HDF5 output support 2015-02-04 18:46:55 +08:00
Sebastien Bourdeauducq 2f4a83b97a gui: access to parameter DB from GUI files 2015-02-04 16:13:56 +08:00
Sebastien Bourdeauducq 1b122dd887 sync_struct,gui: refactor Subscriber data distribution to support access to parameter DB from GUI file 2015-02-04 15:06:25 +08:00
Sebastien Bourdeauducq 186aa7fdb7 style 2015-02-04 14:44:39 +08:00
Yann Sionneau fc92a66e51 asyncio: Use ProactorEventLoop on Windows 2015-02-03 22:29:03 +08:00
Sebastien Bourdeauducq 2fbe22e15e master,client: support changing real-time results group 2015-01-30 20:36:54 +08:00
Yann Sionneau 526887140d Set WARNING as default log level + update documentation 2015-01-30 19:04:04 +08:00
Sebastien Bourdeauducq 9aa7155502 gui: use experiment registry 2015-01-29 19:59:44 +08:00
Sebastien Bourdeauducq e7dac4ab43 master: experiment registry 2015-01-29 19:59:16 +08:00
Yann Sionneau 5ba7218cc1 Factorize argparser for debug level 2015-01-29 10:07:12 +08:00
Sebastien Bourdeauducq 71c5115c11 gui: handle exit in explorer 2015-01-27 23:51:23 +08:00
Sebastien Bourdeauducq db3114f79b serve GUI and Glade file from master 2015-01-26 23:37:33 +08:00
Sebastien Bourdeauducq 8904d963d2 gui: add explorer window + rough prototype of control widgets defined with glade 2015-01-26 19:56:15 +08:00
Sebastien Bourdeauducq 82330b3c2a gui: save layout 2015-01-23 19:00:09 +08:00
Sebastien Bourdeauducq 9fb42e4952 doc: use sphinx-argparse 2015-01-23 00:52:13 +08:00
Sebastien Bourdeauducq 47aa634ab5 replace periodic schedule with timed schedule 2015-01-23 00:23:00 +08:00
Sebastien Bourdeauducq 569600b607 frontend/pdq2_client: fix entry point 2015-01-22 10:38:47 +08:00
Sebastien Bourdeauducq 0c2e960c85 frontend: restore artiq_ prefix 2015-01-17 19:41:00 +08:00
Sebastien Bourdeauducq 3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
Robert Jördens 6cc3a9d973 frontend/*: move to artiq.frontend, make entry_points
* solves the trouble of having to setup PATH and PYTHONPATH in a project
  specific way and keep them changing
* works well with virtualenvs
* works under windows where the shebang is meaningless
* works if your python is not named "python3"

* can use "pip3 install --user --editable ."
  * creates an egg-link in ~/.local/share/... pointing to $PWD
  * generates the scripts and copies them to ~/.local/bin which is likely
    already in your $PATH
  * analogously under windows

* or call scripts as "python3 -m artiq.frontend.master"
2015-01-17 16:02:43 +08:00