Skip to content

Add apple2 energy device to i06 #2003

@Relm-Arrowny

Description

@Relm-Arrowny

see DiamondLightSource/sm-bluesky#195 for detail and task list.

Unlike other Apple2 insertion devices that rely on static lookup tables for energy-to-gap conversion, I06 stores its conversion polynomials directly in EPICS PVs. Since I06 utilises a single polynomial for the entire energy range and does not require polarization changes via LH, we will implement a dynamic EnergyMotorConvertor that reads parameters from EPICS on demand.

Goals

Acceptance criteria :

  • To be able to control pgm and apple2 devices via set.
  • To be able to read and set polarisation.
  • To perform energy scan with both pgm and insertion devices.

Tasks

base on the goals, deduce the tasks required. check them off once they're done

  • Implement I06EnergyMotorConverter: Create a device that reads polynomial parameters from EPICS and performs the conversion calculation.
  • Combine I06EnergyMotorConverter with Apple2 controller and the PGM into a single BeamEnergy device for synchronized motion.
  • Add the new devices to the I06 beamline configuration within dodal.
  • Unit Tests: Verify the polynomial calculation matches expected gap outputs for given energies.

###Implementation note

  • No Lookup Table: EnergyMotorLookup is not required. This avoids the overhead of generating and storing large tables at startup.
  • Standardization: By using the Apple2Controller with a custom EnergyMotorConvertorDevice, we maintain a common API while handling I06's unique hardware interface.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions