From 9b7094470b4bbc96757698367d791f276419ba91 Mon Sep 17 00:00:00 2001 From: Stephan Brown Date: Thu, 5 Nov 2020 12:14:57 -0800 Subject: [PATCH] Add QDOSequencer, QDOSlowFluxChannel, and QDOFastFluxChannel. --- rpcq/core_messages.py | 51 +++++++++++++++++++++++++++++++++- src/core-messages.lisp | 63 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 2 deletions(-) diff --git a/rpcq/core_messages.py b/rpcq/core_messages.py index 256de2f..81c28d4 100644 --- a/rpcq/core_messages.py +++ b/rpcq/core_messages.py @@ -692,7 +692,7 @@ class QFDChannel(Message): """Delay [seconds] to account for inter-channel skew.""" flux_current: Optional[float] = None - """Slow flux current [Amps].""" + """Flux current [Amps].""" relay_closed: Optional[bool] = None """Set the state of the Flux relay. @@ -792,6 +792,45 @@ class CWChannel(Message): """The state (on/off) of CW generator's output.""" +@dataclass(eq=False, repr=False) +class QDOSlowFluxChannel(Message): + """ + Configuration for a single QDO Slow Flux Channel. + """ + + channel_index: int + """The channel index on the QDO, zero indexed from the + lowest channel, as installed in the box. Flux index typically starts at 4.""" + + flux_current: Optional[float] = None + """Flux current [Amps].""" + + relay_closed: Optional[bool] = False + """Set the state of the Flux relay. + True - Relay closed, allows flux current to flow. + False - Relay open, no flux current can flow.""" + + +@dataclass(eq=False, repr=False) +class QDOFastFluxChannel(Message): + """ + Configuration for a single QDO Fast Flux Channel. + """ + + channel_index: int + """The channel index on the QDO, zero indexed from the + lowest channel, as installed in the box.""" + + direction: Optional[str] = "tx" + """The QDO is a device that transmits pulses.""" + + delay: float = 0.0e+0 + """Delay [seconds] to account for inter-channel skew.""" + + flux_current: Optional[float] = None + """Flux current [Amps].""" + + @dataclass(eq=False, repr=False) class LegacyUSRPSequencer(Message): """ @@ -815,6 +854,16 @@ class QFDSequencer(Message): """The label of the associated channel.""" +@dataclass(eq=False, repr=False) +class QDOSequencer(Message): + """ + Configuration for a single QDO Sequencer. + """ + + tx_channel: str + """The label of the associated channel.""" + + @dataclass(eq=False, repr=False) class QFDx2Sequencer(Message): """ diff --git a/src/core-messages.lisp b/src/core-messages.lisp index 68ef50e..dce35a9 100644 --- a/src/core-messages.lisp +++ b/src/core-messages.lisp @@ -868,7 +868,7 @@ :default 0.0) (|flux_current| - :documentation "Slow flux current [Amps]." + :documentation "Flux current [Amps]." :type :float :required nil :default nil) @@ -1019,6 +1019,58 @@ :documentation "Configuration for a single CW Generator Channel.") +(defmessage |QDOSlowFluxChannel| () + ( + (|channel_index| + :documentation "The channel index on the QDO, zero indexed from the\ + lowest channel, as installed in the box. Flux index typically starts at 4." + :type :integer + :required t) + + (|flux_current| + :documentation "Flux current [Amps]." + :type :float + :required nil + :default nil) + + (|relay_closed| + :documentation "Set the state of the Flux relay.\ + True - Relay closed, allows flux current to flow.\ + False - Relay open, no flux current can flow." + :type :bool + :required nil + :default nil)) + + :documentation "Configuration for a single QDO Slow Flux Channel.") + +(defmessage |QDOFastFluxChannel| () + ( + (|direction| + :documentation "The QDO is a device that transmits pulses." + :type :string + :required nil + :default "tx") + + (|channel_index| + :documentation "The channel index on the QDO, zero indexed from the\ + lowest channel, as installed in the box." + :type :integer + :required t) + + (|delay| + :documentation "Delay [seconds] to account for inter-channel skew." + :type :float + :required t + :default 0.0) + + (|flux_current| + :documentation "Flux current [Amps]." + :type :float + :required nil + :default nil)) + + :documentation "Configuration for a single QDO Fast Flux Channel.") + (defmessage |LegacyUSRPSequencer| () ( (|tx_channel| @@ -1042,6 +1094,15 @@ :documentation "Configuration for a single QFD Sequencer.") +(defmessage |QDOSequencer| () + ( + (|tx_channel| + :documentation "The label of the associated channel." + :type :string + :required t)) + + :documentation "Configuration for a single QDO Sequencer.") + (defmessage |QFDx2Sequencer| () ( (|tx_channel|