Skip to main content

Python interface for the Harp class of PicoQuant's time interval analysers and photon counters

Project description

EPICS IOC for the PicoQuant HydraHarp 400

release pipeline coverage

Introduction

The HydraHarp 400 is advertized as a "multichannel picosecond event timer module" by its manufacturer, PicoQuant GmbH in Germany.

This is an EPICS Input-Output Controller (IOC) application for the HydraHarp. It uses the EMMI API, which in turn uses Diamond Light Source's EPICS wrapper pythonSoftIOC (as of September 2023). This means that miniquant-ioc's EPICS CA stack is essentially the "original" C/C++ implementation, merely interfaced by Python.

The hardware access layer is being published as miniquant -- a truly Python'esque :) API layer on top of the proprietary HydraHarp API of PicoQuant, but without the EPICS specific code.

Installation

Miniquant-ioc itself is installed fairly easy via PyPI:

pip install miniquant-ioc

Or via direct clone from Gitlab:

git clone https://gitlab.com/codedump2/miniquant-ioc \
    && pip install ./miniquant-ioc

If miniquant (the API layer) is not already installed, it will be automatically pulled from PyPI as a dependency of miniquant-ioc. In that case, you will most certainly have to go through a mildly elaborate set of post-install procedures to make sure that miniquant is, in fact, able to find and access your HydraHarp. (This is owing for one to the proprietary nature of the original PicoQuant C/C++ API for the HydraHarp, and for another to the fact that the HydraHarp 400 has a quirky USB controller; it works with any modern upstream Linux kernel, but requires specialized kernel boot parameter or USB driver module settings.)

Configuration

A specific IOC configuration file is necessary to run the Miniquant IOC. By default, the IOC loads its configuration from /etc/miniquant/harp.yaml, but that behaviour can be overridden using the -c or --harp-config command line parameter of miniquant-ioc.

The PyPI installation might have placed a copy of a usable harp.yaml in your /etc/miniquant/... directory. If it hasn't, obtain one e.g. from here.

The configuration file has two distinct sets of options, organized in as many top-level YAML sections:

  • harp: general HydraHarp device settings, like measurement mode, histogram size and resolution, offsets and zero-crossing levels; contains the following subkeys:

    • device: should have a string as value with one of "first", "any", or a HydraHarp device; the IOC will only connect to the device as specified ("first" and "any" is a good choice if you have only one device attached to a computer's USB ports)

    • presets:

    • settings:

  • epics: application settings that directly influence the IOC behavior; in turn, these are divided in:

    • prefix: single key, contains the EPICS prefix as a string value

    • defaults: default settings to be used for all exported properties, can individually be overridden

    • harpBase: contains PV definitions all non channel specific properties of a HydraHarp device to export as PVs (stuffed in a subsection exports),

    • harpChannels: contains PV definitions for all channel specific properties. The subkey interfix contains a string to use in naming the channel-specific PVs (should contain {} format specifier for the channel index), and an exports section with actual PV definitions.

  • IOC-specific settings about which properties to export as process variables (PVs).

Running

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miniquant_ioc-0.1.10.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

miniquant_ioc-0.1.10-py3-none-any.whl (37.3 kB view details)

Uploaded Python 3

File details

Details for the file miniquant_ioc-0.1.10.tar.gz.

File metadata

  • Download URL: miniquant_ioc-0.1.10.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for miniquant_ioc-0.1.10.tar.gz
Algorithm Hash digest
SHA256 db70b330e3d096ead2fbd06ec4c2775ed9c47b3297c05b4818fb967c2ccbe365
MD5 02e0a9bb26ab39a5e5f504d3befd243a
BLAKE2b-256 5a9f006af1341f379d4d9f845eb4dd3c71eaa87c0a7d77baa78406a8d3447117

See more details on using hashes here.

File details

Details for the file miniquant_ioc-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for miniquant_ioc-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 01b2e97015ffa9d25bac087cf53c11750d75899e1edd46c12d4bb569b2aa4f80
MD5 5dc1ca2e39f4c9daf497bf6dd7999ac7
BLAKE2b-256 4de6fa9ee85f002ed52ed9ddd0a2bb33bffbcada0416d667ac3024abc05247a3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page