Skip to content

Make a PMAC flyer that is implemented with a Trajectory scan Device #427

Open
@coretl

Description

@coretl

Make a TriggerLogic that will do a Trajectory scan with the following restrictions:

  • No gaps
  • Fill the buffers up front
  • GPIOs are always start of row trigger
  • ScanSpec only includes trajectory scannable axes

Make the matching IO class with the PV interface.
Make a epics.pmac.PmacMotor(epics.motor.Motor) that tells it what CS and CS Axis it is in (like Malcolm). There might be a PmacCSMotor and PmacRawMotor, or possibly one that is told at init what sort of thing it is. Either way we want a single method async def get_cs_number_and_axis() attached to the motor so we can use it in prepare.

prepare

Take a List[scanspec.Frames[PmacMotor]], calculate the entire trajectory (this will later be only the first 4000 points), calculate where the start position of the motors is based on first point of the trajectory (as per #376), then move the motors to the start position and send down the trajectory

kickoff

Hit start

complete

Observe points scanned and yield WatcherStatusUpdate to say how far we have got (like in StandardDetector). When it's done check it did the right number of points and didn't get an error

Metadata

Metadata

Assignees

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