Skip to main content Link Menu Expand (external link) Document Search Copy Copied

COMET

Control and Measurement Toolkit

A Qutie powered rapid development tool for creating graphical measurement desktop applications for scientific laboratory use. Inspired by QCoDeS, Lantz, Slave, FluidLab and Dash.

Getting started

Dependencies

COMET depends on PyVISA for instrument communication and Qutie for the graphical user interface. It runs on both Linux and Windows operating systems.

Install

Install from GitHub using pip

pip install git+https://github.com/hephy-dd/comet.git@0.13.2

Quick start

COMET provides a basic application window and a set of modules for instrument communication and threaded processes.

The following minimal example registers a VISA compatible instrument, a callback action and invokes the application’s main window providing a layout with a text field and a button.

import comet
from comet import ui

# Create application
app = comet.Application("example")
app.title = "Example"
app.width = 460
app.height = 240

# Register a VISA resource
app.resources.add("instr", comet.Resource("ASRL2::INSTR", visa_library="@sim"))

# Load stored resource settings (optional)
app.resources.load_settings()

# Define a callback
def on_update():
    with app.resources.get("instr") as instr:
        idn_text.value = instr.query("*IDN?")

# Create read-only text input
idn_text = ui.Text(readonly=True)

# Create read button with on-click callback
read_button = ui.Button("Read IDN", clicked=on_update)

# Create window layout
app.layout = ui.Column(
    ui.Row(
        idn_text,
        read_button
    ),
    ui.Spacer()
)

# Run event loop
app.run()

Example application

About the project

COMET is © 2019-2021 by Bernhard Arnold, Institute of High Energy Physics, Austrian Academy of Sciences.

License

COMET is licensed under the GNU General Public License Version 3.