Skip to content

NHQ 203M power supply #468

@canismarko

Description

@canismarko

Description of the device

Previously, we had a an ophyd implementation of this device (listed below) that was removed when ophyd support was dropped in favor of ophyd-async. If we get a request for this again, we should convert to an ophyd-async device. Was not migrated because the device was not available.

Justification

Not sure if it is. We should decide if this is worth keeping.

Special Requirements

EPICS Module Documentation

Existing Implementation

import logging

from ophyd import Device, EpicsSignal, EpicsSignalRO
from ophyd import FormattedComponent as FCpt

log = logging.getLogger(__name__)


class NHQ203MChannel(Device):
    """A single channel on a controllable power supply."""

    ch_num: int

    # Device components
    potential = FCpt(
        EpicsSignal,
        name="potential",
        suffix="{prefix}:Volt{ch_num}_rbv",
        write_pv="{prefix}:SetVolt{ch_num}",
        tolerance=2,
    )
    current = FCpt(EpicsSignalRO, name="current", suffix="{prefix}:Curr{ch_num}_rbv")
    ramp_rate = FCpt(
        EpicsSignal,
        name="ramp_rate",
        suffix="{prefix}:RampSpeed{ch_num}",
        write_pv="{prefix}:RampSpeed{ch_num}_rbv",
    )
    status = FCpt(EpicsSignalRO, name="status", suffix="{prefix}:ModStatus{ch_num}_rbv")

    def __init__(
        self,
        prefix: str,
        ch_num: int,
        name: str,
        labels={"power_supplies"},
        *args,
        **kwargs,
    ):
        self.ch_num = ch_num
        super().__init__(prefix=prefix, name=name, labels=labels, *args, **kwargs)

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions