Skip to content

Commit f789345

Browse files
committed
Squashed commit of the following:
commit bb9f6f5 Merge: 0f1cacd 091110b Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Fri Jun 19 17:57:15 2020 +1000 Merge pull request #56 from philipstarkey/master Empty sphinx project following our template commit 091110b Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Fri Jun 19 17:42:46 2020 +1000 Empty sphinx project following our template commit 0f1cacd Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Wed Jun 17 16:39:08 2020 +1000 Added missing devices to README.md commit 5347098 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Wed Jun 17 11:38:03 2020 +1000 Populated README.md with styling, iconogrpahy, prose, and badges
1 parent 535c9b3 commit f789345

17 files changed

+1843
-11
lines changed

.gitignore

Lines changed: 160 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,161 @@
1-
*.pyc
2-
.eggs/*
1+
# This gitignore file consists of 2 parts:
2+
# * The standard Python .gitignore rules from GitHub
3+
# * custom ignore rules for the labscript suite.
4+
#
5+
# These should be kept separate so that the generic rules can be updated with a
6+
# copy/paste without having to worry about whether we are removing custom rules
7+
8+
# Byte-compiled / optimized / DLL files
9+
__pycache__/
10+
*.py[cod]
11+
*$py.class
12+
13+
# C extensions
14+
*.so
15+
16+
# Distribution / packaging
17+
.Python
18+
build/
19+
develop-eggs/
20+
dist/
21+
downloads/
22+
eggs/
23+
.eggs/
24+
lib/
25+
lib64/
26+
parts/
27+
sdist/
28+
var/
29+
wheels/
30+
share/python-wheels/
331
*.egg-info/
4-
dist
32+
.installed.cfg
33+
*.egg
34+
MANIFEST
35+
36+
# PyInstaller
37+
# Usually these files are written by a python script from a template
38+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
39+
*.manifest
40+
*.spec
41+
42+
# Installer logs
43+
pip-log.txt
44+
pip-delete-this-directory.txt
45+
46+
# Unit test / coverage reports
47+
htmlcov/
48+
.tox/
49+
.nox/
50+
.coverage
51+
.coverage.*
52+
.cache
53+
nosetests.xml
54+
coverage.xml
55+
*.cover
56+
*.py,cover
57+
.hypothesis/
58+
.pytest_cache/
59+
cover/
60+
61+
# Translations
62+
*.mo
63+
*.pot
64+
65+
# Django stuff:
66+
*.log
67+
local_settings.py
68+
db.sqlite3
69+
db.sqlite3-journal
70+
71+
# Flask stuff:
72+
instance/
73+
.webassets-cache
74+
75+
# Scrapy stuff:
76+
.scrapy
77+
78+
# Sphinx documentation
79+
docs/_build/
80+
81+
# PyBuilder
82+
.pybuilder/
83+
target/
84+
85+
# Jupyter Notebook
86+
.ipynb_checkpoints
87+
88+
# IPython
89+
profile_default/
90+
ipython_config.py
91+
92+
# pyenv
93+
# For a library or package, you might want to ignore these files since the code is
94+
# intended to run in multiple environments; otherwise, check them in:
95+
.python-version
96+
97+
# pipenv
98+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
99+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
100+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
101+
# install all needed dependencies.
102+
#Pipfile.lock
103+
104+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
105+
__pypackages__/
106+
107+
# Celery stuff
108+
celerybeat-schedule
109+
celerybeat.pid
110+
111+
# SageMath parsed files
112+
*.sage.py
113+
114+
# Environments
115+
.env
116+
.venv
117+
env/
118+
venv/
119+
ENV/
120+
env.bak/
121+
venv.bak/
122+
123+
# Spyder project settings
124+
.spyderproject
125+
.spyproject
126+
127+
# Rope project settings
128+
.ropeproject
129+
130+
# mkdocs documentation
131+
/site
132+
133+
# mypy
134+
.mypy_cache/
135+
.dmypy.json
136+
dmypy.json
137+
138+
# Pyre type checker
139+
.pyre/
140+
141+
# pytype static type analyzer
142+
.pytype/
143+
144+
# Cython debug symbols
145+
cython_debug/
146+
147+
#
148+
# Custom labscript suite .gitignore rules start below
149+
#
150+
151+
# Editors
152+
.vscode/
153+
154+
# conda build results
155+
conda_build/
156+
conda_packages/
157+
158+
# Sphinx documentation
159+
docs/html/
160+
docs/source/_build/
161+
docs/source/components.rst

README.md

Lines changed: 71 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,75 @@
1-
# labscript_devices
1+
<img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/labscript_32nx32n.svg" height="64" alt="the labscript suite" align="right">
22

3-
Device drivers for the labscript suite
3+
# the _labscript suite_ » labscript-devices
44

5-
(
6-
[view on Github](https://github.com/labscript-suite/labscript_devices)
7-
)
5+
### Plugin architecture for controlling experiment hardware
86

7+
[![Actions Status](https://github.com/labscript-suite/labscript-devices/workflows/Build%20and%20Release/badge.svg?branch=maintenance%2F3.0.x)](https://github.com/labscript-suite/labscript-devices/actions)
8+
[![License](https://img.shields.io/pypi/l/labscript-devices.svg)](https://github.com/labscript-suite/labscript-devices/raw/master/LICENSE.txt)
9+
[![Python Version](https://img.shields.io/pypi/pyversions/labscript-devices.svg)](https://python.org)
10+
[![PyPI](https://img.shields.io/pypi/v/labscript-devices.svg)](https://pypi.org/project/labscript-devices)
11+
[![Conda Version](https://img.shields.io/conda/v/labscript-suite/labscript-devices)](https://anaconda.org/labscript-suite/labscript-devices)
12+
[![Google Group](https://img.shields.io/badge/Google%20Group-labscriptsuite-blue.svg)](https://groups.google.com/forum/#!forum/labscriptsuite)
13+
<!-- [![DOI](http://img.shields.io/badge/DOI-10.1063%2F1.4817213-0F79D0.svg)](https://doi.org/10.1063/1.4817213) -->
914

15+
16+
A modular and extensible plugin architecture to control experiment hardware using the [*labscript suite*](https://github.com/labscript-suite/labscript-suite).
17+
18+
The *labscript suite* supports a range of commercial and open-source hardware, and is modular by design. Adding support for new devices involves writing Python functions for a well-defined set of primitives to program instructions, and transition between buffered I/O and manual states. See the [documentation](http://labscriptsuite.org/documentation) for more details on adding new devices.
19+
20+
21+
## Supported hardware
22+
23+
The following devices have been implemented in the _labscript suite_:<sup>†</sup>
24+
* [AlazarTech](https://www.alazartech.com) PCI Express Digitizers (e.g. [ATS9462](https://www.alazartech.com/Product/ATS9462); PR [#41](http://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/41))
25+
* [LightCrafter DMD](http://www.ti.com/tool/DLPLCR4500EVM) Digital Micro-mirror Device (PR [#43](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/43))
26+
* [MOGLabs Agile RF Synthesizers](https://www.moglabs.com/products/rf-electronics/agile-rf-synth) (ARF/XRF)
27+
* [National Instruments Data Acquisition](http://www.ni.com/data-acquisition/) ([DAQmx](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P8baSAC)) devices:
28+
* [cDAQ-9184](https://www.ni.com/en-us/support/model.cdaq-9184.html) CompactDAQ Chassis
29+
* [PCI 6251](https://www.ni.com/en-au/support/model.pci-6251.html) Multifunction I/O Device
30+
* [PCI 6533/6534](http://www.ni.com/pdf/manuals/371464d.pdf) High-Speed Digital Pattern I/O
31+
* [PCI-6713](https://www.ni.com/en-au/support/model.pci-6713.html) Analog Output Device
32+
* [PCI-6733](https://www.ni.com/en-au/support/model.pci-6733.html) Analog Output Device
33+
* PCI-DIO-32HS High-Speed Digital I/O
34+
* [PCIe-6363](https://www.ni.com/en-us/support/model.pcie-6363.html) Multifunction I/O Device
35+
* [PCIe-6738](https://www.ni.com/en-us/support/model.pcie-6738.html) Analog Output Device
36+
* [PXI-6733](https://www.ni.com/en-au/support/model.pxi-6733.html) PXI Analog Output Module
37+
* [PXIe-6361](https://www.ni.com/en-au/support/model.pxie-6361.html) PXI Multifunction I/O Module
38+
* [PXIe-6535](https://www.ni.com/en-ie/support/model.pxie-6535.html) PXI Digital I/O Module
39+
* [PXIe-6738](https://www.ni.com/en-au/support/model.pxie-6738.html) PXI Analog Output Module
40+
* [USB-6008](https://www.ni.com/en-au/support/model.usb-6008.html) Multifunction I/O Device
41+
* [USB-6229](https://www.ni.com/en-my/support/model.usb-6229.html) Multifunction I/O Device
42+
* [USB-6343](https://www.ni.com/en-us/support/model.usb-6343.html) Multifunction I/O Device
43+
* [Quicksyn FSW-0010](http://ni-microwavecomponents.com/quicksyn-full) Microwave Synthesizer (formerly PhaseMatrix)
44+
45+
**Note:** Since v2.5.0 (June 2019), [`labscript_devices.NI_DAQmx`](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/NI_DAQmx) can be used to automatically generate a labscript device class for _any_ NI-DAQmx device! (PR [#56](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/56))
46+
47+
* [NovaTech DDS9m](http://www.novatechsales.com/PDF_files/dds9mds_lr.pdf) 170MHz Four Channel Direct Digital Synthesized Signal Generator (see [blog post](http://labscriptsuite.org/blog/tag/novatech-dds9m/))
48+
* [OpalKelly XEM3001](https://opalkelly.com/products/xem3001/) FPGA Boards used by the Cicero control system (PR [#50](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/50))
49+
* [PineBlaster](http://labscriptsuite.org/hardware/pineblaster) Open-source Digital Pattern Generator
50+
* [SpinCore](https://www.spincore.com/products/#pulsegeneration) Programmable Pulse Generators and Direct Digital Synthesis
51+
* [PulseBlasterDDS-II-300-AWG](http://www.spincore.com/products/PulseBlasterDDS-II-300/)
52+
* [PulseBlasterESR-PRO](https://www.spincore.com/products/PulseBlasterESR-PRO/)
53+
* [PulseBlasterESR-CompactPCI](https://www.spincore.com/products/PulseBlasterESR-CompactPCI/)
54+
* [PulseBlaster](https://www.spincore.com/products/PulseBlaster/) e.g. SP2 Model: PB24-100-32k
55+
* [PulseBlasterUSB](https://www.spincore.com/products/PulseBlasterUSB/)
56+
* [Tektronix oscilloscopes](https://www.tek.com/oscilloscope) (PR [#61](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/56))
57+
* [Zaber](https://www.zaber.com) Motion Controllers, e.g. linear translation stages (PR [#85](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/85))
58+
59+
60+
### Supported cameras
61+
62+
The following cameras are implemented by subclassing [`labscript_devices.Camera`](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/Camera.py), a Python-based camera server which can be controlled directly from [**blacs**](https://github.com/labscript-suite/blacs).
63+
64+
* [FLIR](https://www.flir.com) cameras (e.g. [FlyCapture 2](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/FlyCapture2Camera)) using the free PyCapture2 API (PR [#71](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/9))
65+
* [Andor](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/AndorSolis) cameras (PR [#80](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/AndorSolis))
66+
* [Basler pylon](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/PylonCamera) (PRs [#69](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/69) and [#74](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/74)).
67+
* Any camera compatible with National Instruments [IMAQdx](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/IMAQdxCamera) (PRs [#70](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/70), [#72](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/72), [#73](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/73), [#77](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/77), [#79](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/79), [#83](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/83)).
68+
* This includes most cameras compliant with the [GigE Vision](https://en.wikipedia.org/wiki/GigE_Vision) interface standard, such as [Allied Vision](https://www.alliedvision.com/en/products/cameras.html) cameras.
69+
70+
† We do not endorse the use of any particular hardware.
71+
72+
73+
## Installation
74+
75+
labscript-devices is distributed as a Python package on [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/labscript-suite), and should be installed with other components of the _labscript suite_. Please see the [installation guide](https://docs.labscriptsuite.org/en/latest/installation) for details.

docs/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Minimal makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line, and also
5+
# from the environment for the first two.
6+
SPHINXOPTS ?=
7+
SPHINXBUILD ?= sphinx-build
8+
SOURCEDIR = source
9+
BUILDDIR = build
10+
11+
# Put it first so that "make" without argument is like "make help".
12+
help:
13+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14+
15+
.PHONY: help Makefile
16+
17+
# Catch-all target: route all unknown targets to Sphinx using the new
18+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19+
%: Makefile
20+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

docs/make.bat

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
@ECHO OFF
2+
3+
pushd %~dp0
4+
5+
REM Command file for Sphinx documentation
6+
7+
if "%SPHINXBUILD%" == "" (
8+
set SPHINXBUILD=sphinx-build
9+
)
10+
set SOURCEDIR=source
11+
set BUILDDIR=build
12+
13+
if "%1" == "" goto help
14+
15+
%SPHINXBUILD% >NUL 2>NUL
16+
if errorlevel 9009 (
17+
echo.
18+
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19+
echo.installed, then set the SPHINXBUILD environment variable to point
20+
echo.to the full path of the 'sphinx-build' executable. Alternatively you
21+
echo.may add the Sphinx directory to PATH.
22+
echo.
23+
echo.If you don't have Sphinx installed, grab it from
24+
echo.http://sphinx-doc.org/
25+
exit /b 1
26+
)
27+
28+
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29+
goto end
30+
31+
:help
32+
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33+
34+
:end
35+
popd

docs/source/_static/custom.css

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* Add space between collapsible details HTML tags */
2+
details {
3+
margin-bottom: 1em;
4+
}
5+
6+
/* Darker pygment highlighing of console input/output */
7+
.highlight .go {
8+
color: #404040;
9+
}
10+
11+
/* White captions in sidebar */
12+
.wy-nav-side p.caption {
13+
color: #f5f5f5;
14+
}
15+
16+
/* labscript blue, alpha = 83% */
17+
.wy-side-nav-search {
18+
background: #2946bbd3;
19+
}
20+
21+
.wy-nav-top {
22+
background: #2946bbd3;
23+
}
24+
25+
/* labscript green, alpha = 75% */
26+
.rst-content .note .admonition-title {
27+
background: #00804fbf;
28+
}
29+
30+
/* labscript green, alpha = 25% */
31+
.rst-content .note {
32+
background: #00804f3f;
33+
}
34+
35+
/* labscript red, alpha = 75% */
36+
.rst-content .warning .admonition-title {
37+
background: #bc294cbf
38+
}
39+
40+
/* labscript red, alpha = 25% */
41+
.rst-content .warning {
42+
background: #bc294c3b;
43+
}
44+
45+
/* Elevation
46+
*
47+
* Style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
48+
*
49+
* https://github.com/material-components/material-components-web
50+
* https://material-components-web.appspot.com/elevation.html
51+
*/
52+
53+
.rst-content img.screenshot {
54+
border: none;
55+
/* MD Elevation 8 */
56+
box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2),
57+
0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
58+
margin-bottom: 24px;
59+
}
60+
61+
img.labscript-suite-icon {
62+
min-width: 32px;
63+
}

0 commit comments

Comments
 (0)