@@ -6,8 +6,8 @@ We collected some guidelines and conventions for ourselves, which are listed bel
Module functionality often falls in one of the following sub-categories for which we set up naming and timing guidelines:
1.**Switching type functions** which do not change the timeline and are fast: `device_set()`, `device_on()`, `device_off()`. For convenience, these functions often are combined with a `device_pulse()` function which does change the timeline in the *expected manner only*.
1.**Configuring type functions** which change the timeline at will and are considered slow: `device_config()`, `device_reset()`, `device_config_amp()`, `device_reset_amp()`. Slow configuration functions are explicitly separated from fast switching functions. We allow arbitrary timeline modification for configuration functions to enhance abstraction. If there is a desire to have real-time variations of such functions that do not alter the timeline, an optional `realtime=False` argument can be added to bypass any timeline modifications.
1.**Subroutine type functions** which performs functionality that takes full control of the timeline for an undetermined duration: `load_ions()`, `ramp_trap_rf()`. These functions often rely on sync RPC calls and provide an entry point to complex behavior. These functions can be named in an individual descriptive way and no naming conventions apply.
1.**Configuring type functions** which change the timeline at will and are considered slow: `config_device()`, `device_config()`, `reset_device()`, `device_reset()`, `config_device_amp()`, `device_config_amp()`, `device_reset_amp()`. Slow configuration functions are explicitly separated from fast switching functions. We allow arbitrary timeline modification for configuration functions to enhance abstraction. If there is a desire to have real-time variations of such functions that do not alter the timeline, an optional `realtime=False` argument can be added to bypass any timeline modifications or compensate any latencies.
1.**Subroutine type functions** which performs functionality that takes full control of the timeline for an undetermined duration: `load_ions()`, `ramp_rf()`. These functions often rely on sync RPC calls and provide an entry point to complex behavior. These functions can be named in an individual descriptive way and no naming conventions apply.