Hi there,
we are working on integration our RPC implementation based on crossbar and PyQt (used for signals and threading) into artiq. Our goal is to basically use it alongside the sipyco-based RPC which is already supported.

To not constantly mess with our running experiment it would be nice to have a separate testing environment.
Is that possible in a way? I looked at the unittests, but they did not seem to mock any hardware.
Basically what I imagine is an artiq_master connected to some kind of dummy coredevice. Clearly there is no real time stuff going on. But since RPC is executed as a host function it does not bother me.

Am I missing something and it is already possible to start an artiq_master against a dummy coredevice?

Best,
Suthep

a year later

Ran into this thread by coincidence, and quite late I see. Anyway, we have developed a simulation platform for ARTIQ that can run ARTIQ code without the need of core devices. We have simulated drivers for most common devices and we use this platform to test/debug code before running it on actual hardware. Simulation output is dumped in a VCD file. See https://gitlab.com/duke-artiq/dax .

Thanks!
The install instructions for external users warn they should build the Nix package
https://gitlab.com/duke-artiq/dax#installation

For internal users, installation instructions can be found on the DAX wiki installation page. External users can build the DAX Nix package locally using the provided Nix scripts.

...and for internal users Conda is mentioned, but I think it's also on Linux, and on Duke's VPN
https://gitlab.com/duke-artiq/dax/-/wikis/DAX/Installation

Note: the following instructions assume that you are connected to the Duke network either directly or via VPN.

Is it only available under Linux? Just to be totally certain, since the intructions are pretty clear :-|

    Hi jfernand . So we build a conda package on our own servers, but that is only for internal (Duke) usage. For conda, I guess you could just pip install the package? Never tried that tbh. If there is a way to add a "conda package description" or so that would allow you to easy install this package in conda, than I would be happy to help you out with that.

    Oh an just to add, our software works both under Windows and Linux. We mainly run on Linux here, but we have 2 internal people or so who use Windows. Let me know how it goes, I will probably update the readme/wiki based on your experience.

      so eventually the DAX package will appear as available on channel https://conda.m-labs.hk/artiq? On the next Hydra build?
      I can currently search for flake8-artiq

      (artiq6) C:\Users\...\work>conda search flake8-artiq --channel https://conda.m-labs.hk/artiq
      Loading channels: done
      # Name                       Version           Build  Channel
      flake8-artiq                   0.1.0               0  artiq

      but dax doesn't appear yet.

      (artiq6) C:\Users\...\work>conda search dax --channel https://conda.m-labs.hk/artiq
      Loading channels: done
      No match found for: dax. Search: *dax*
      # Name                       Version           Build  Channel
      pegasus-wms.dax                5.0.0    pyhd3deb0d_0  conda-forge
      r-rgdax                        1.0.0   r36h6115d3f_0  pkgs/r
      sdaxen_python_utilities           0.1.4    pyh9f0ad1d_0  conda-forge
      sdaxen_python_utilities           0.1.4    pyhd3deb0d_0  conda-forge

      Is that how I should look for it? Should I install it using conda install -n artiq6 dax dax-applets?
      Thanks

        jfernand The M-labs channel only builds once a day or so. I guess the next trigger is a few hours from now. After the channel is rebuild successfully the packages should be available and the package name is dax (just as in Conda install manual for Duke users). The dax-applets package is not needed for dax.sim, but I added it anyway for completeness (for dax.util.ccb).

        Next week or so I will update the README and wiki of DAX to make sure instructions are available for external users using the M-labs channels.