ophyd_async.fastcs.panda
#
Package Contents#
Classes#
Pandablocks device with blocks which are common and required on introspection. |
|
Data block for the PandA. Used for writing data through the IOC. |
|
Bit input with configurable delay in the PandA. |
|
Capture mode for the |
|
Position capture block in the PandA. |
|
Position compare block in the PandA. |
|
Direction options for position compare in the PandA. |
|
Used for configuring pulses in the PandA. |
|
Sequencer block in the PandA. |
|
Options for units of time in the PandA. |
|
PandA with common blocks for standard HDF writing. |
|
For writing for PandA data from the |
|
For controlling a PCAP capture on the PandA. |
|
An abstraction of a Table where each field is a column. |
|
Dataset options for HDF capture. |
|
Data type for the panda seq table. |
|
Trigger options for the SeqTable. |
|
Info for the PandA |
|
Info for the PandA |
|
For controlling the PandA |
|
For controlling the PandA |
API#
- class ophyd_async.fastcs.panda.CommonPandaBlocks(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Pandablocks device with blocks which are common and required on introspection.
- pulse: DeviceVector[PulseBlock]#
None
- seq: DeviceVector[SeqBlock]#
None
- pcomp: DeviceVector[PcompBlock]#
None
- class ophyd_async.fastcs.panda.DataBlock(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Data block for the PandA. Used for writing data through the IOC.
- capture_mode: SignalRW[PandaCaptureMode]#
None
- datasets: SignalR[DatasetTable]#
None
- class ophyd_async.fastcs.panda.PandaBitMux[source]#
Bases:
ophyd_async.core.SubsetEnum
Bit input with configurable delay in the PandA.
- ZERO#
‘ZERO’
- ONE#
‘ONE’
- class ophyd_async.fastcs.panda.PandaCaptureMode[source]#
Bases:
ophyd_async.core.StrictEnum
Capture mode for the
DataBlock
on the PandA.- FIRST_N#
‘FIRST_N’
- LAST_N#
‘LAST_N’
- FOREVER#
‘FOREVER’
- class ophyd_async.fastcs.panda.PcapBlock(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Position capture block in the PandA.
- class ophyd_async.fastcs.panda.PcompBlock(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Position compare block in the PandA.
- dir: SignalRW[PandaPcompDirection]#
None
- enable: SignalRW[PandaBitMux]#
None
- class ophyd_async.fastcs.panda.PandaPcompDirection[source]#
Bases:
ophyd_async.core.StrictEnum
Direction options for position compare in the PandA.
- POSITIVE#
‘Positive’
- NEGATIVE#
‘Negative’
- EITHER#
‘Either’
- class ophyd_async.fastcs.panda.PulseBlock(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Used for configuring pulses in the PandA.
- class ophyd_async.fastcs.panda.SeqBlock(name: str = '', connector: DeviceConnector | None = None)[source]#
Bases:
ophyd_async.core.Device
Sequencer block in the PandA.
- prescale_units: SignalRW[PandaTimeUnits]#
None
- enable: SignalRW[PandaBitMux]#
None
- class ophyd_async.fastcs.panda.PandaTimeUnits[source]#
Bases:
ophyd_async.core.StrictEnum
Options for units of time in the PandA.
- MIN#
‘min’
- S#
‘s’
- MS#
‘ms’
- US#
‘us’
- class ophyd_async.fastcs.panda.HDFPanda(prefix: str, path_provider: PathProvider, config_sigs: Sequence[SignalR] = (), name: str = '')[source]#
Bases:
ophyd_async.fastcs.panda._block.CommonPandaBlocks
,ophyd_async.core.StandardDetector
[ophyd_async.fastcs.panda._control.PandaPcapController
,ophyd_async.fastcs.panda._writer.PandaHDFWriter
]PandA with common blocks for standard HDF writing.
- class ophyd_async.fastcs.panda.PandaHDFWriter(path_provider: PathProvider, name_provider: NameProvider, panda_data_block: DataBlock)[source]#
Bases:
ophyd_async.core.DetectorWriter
For writing for PandA data from the
DataBlock
.- async open(multiplier: int = 1) dict[str, DataKey] [source]#
Retrieve and get descriptor of all PandA signals marked for capture.
- async observe_indices_written(timeout=DEFAULT_TIMEOUT) AsyncGenerator[int, None] [source]#
Wait until a specific index is ready to be collected.
- async collect_stream_docs(indices_written: int) AsyncIterator[StreamAsset] [source]#
- class ophyd_async.fastcs.panda.PandaPcapController(pcap: PcapBlock)[source]#
Bases:
ophyd_async.core.DetectorController
For controlling a PCAP capture on the PandA.
- get_deadtime(exposure: float | None) float [source]#
For a given exposure, how long should the time between exposures be.
- async prepare(trigger_info: TriggerInfo)[source]#
Do all necessary steps to prepare the detector for triggers.
- Parameters:
trigger_info – The sort of triggers to expect.
- class ophyd_async.fastcs.panda.DatasetTable(**kwargs)[source]#
Bases:
ophyd_async.core.Table
An abstraction of a Table where each field is a column.
For example:
>>> from ophyd_async.core import Table, Array1D >>> import numpy as np >>> from collections.abc import Sequence >>> class MyTable(Table): ... a: Array1D[np.int8] ... b: Sequence[str] ... >>> t = MyTable(a=[1, 2], b=["x", "y"]) >>> len(t) # the length is the number of rows 2 >>> t2 = t + t # adding tables together concatenates them >>> t2.a array([1, 2, 1, 2], dtype=int8) >>> t2.b ['x', 'y', 'x', 'y'] >>> t2[1] # slice a row array([(2, b'y')], dtype=[('a', 'i1'), ('b', 'S40')])
- dtype: Sequence[PandaHdf5DatasetType]#
None
- class ophyd_async.fastcs.panda.PandaHdf5DatasetType[source]#
Bases:
ophyd_async.core.StrictEnum
Dataset options for HDF capture.
- FLOAT_64#
‘float64’
- UINT_32#
‘uint32’
- class ophyd_async.fastcs.panda.SeqTable(**kwargs)[source]#
Bases:
ophyd_async.core.Table
Data type for the panda seq table.
- trigger: Sequence[SeqTrigger]#
None
- static row(*, repeats: int = 1, trigger: str = SeqTrigger.IMMEDIATE, position: int = 0, time1: int = 0, outa1: bool = False, outb1: bool = False, outc1: bool = False, outd1: bool = False, oute1: bool = False, outf1: bool = False, time2: int = 0, outa2: bool = False, outb2: bool = False, outc2: bool = False, outd2: bool = False, oute2: bool = False, outf2: bool = False) SeqTable [source]#
- class ophyd_async.fastcs.panda.SeqTrigger[source]#
Bases:
ophyd_async.core.StrictEnum
Trigger options for the SeqTable.
- IMMEDIATE#
‘Immediate’
- BITA_0#
‘BITA=0’
- BITA_1#
‘BITA=1’
- BITB_0#
‘BITB=0’
- BITB_1#
‘BITB=1’
- BITC_0#
‘BITC=0’
- BITC_1#
‘BITC=1’
- POSA_GT#
‘POSA>=POSITION’
- POSA_LT#
‘POSA<=POSITION’
- POSB_GT#
‘POSB>=POSITION’
- POSB_LT#
‘POSB<=POSITION’
- POSC_GT#
‘POSC>=POSITION’
- POSC_LT#
‘POSC<=POSITION’
- class ophyd_async.fastcs.panda.PcompInfo(/, **data: ~typing.Any)[source]#
Bases:
pydantic.BaseModel
Info for the PandA
PcompBlock
for flyscanning.- direction: PandaPcompDirection#
‘Field(…)’
- class ophyd_async.fastcs.panda.SeqTableInfo(/, **data: ~typing.Any)[source]#
Bases:
pydantic.BaseModel
Info for the PandA
SeqTable
for flyscanning.
- class ophyd_async.fastcs.panda.StaticPcompTriggerLogic(pcomp: PcompBlock)[source]#
Bases:
ophyd_async.core.FlyerController
[ophyd_async.fastcs.panda._trigger.PcompInfo
]For controlling the PandA
PcompBlock
when flyscanning.
- class ophyd_async.fastcs.panda.StaticSeqTableTriggerLogic(seq: SeqBlock)[source]#
Bases:
ophyd_async.core.FlyerController
[ophyd_async.fastcs.panda._trigger.SeqTableInfo
]For controlling the PandA
SeqTable
when flyscanning.- async prepare(value: SeqTableInfo)[source]#
Move to the start of the flyscan.