The idea is to do more or less the same as for magnets except that BPM names have to be unique in the lattice. An abstract BpmModel has to be implemented as for magnet.
However 2 cases appears:
Control system BPM having offsets (and tilt) implemented and BPM having only a position.
- First case 5 DevciceAccess are required in the pydantic model: h,v,offseth,offsetv,tiltangle (in that case, h,v reading from the CS already add the offsets and already rotate the coordinates)
- Second case only raw h and v come from the CS and offseth, offsetv and tilt angle have to be handled internally in pyaml.
We can focus first on the second case.
Concerning the CS, RBpmArray,RWBpmTiltScalar and RWBpmOffsetArray has to be implemented here and added here
Concerning simulators, RBpmArray, RWBpmTiltScalar and RWBpmOffsetArray has to be implemented here and added here
RBpmArray for [h,v]
RWBpmOffsetArray for [offseth,offsetv]
RWBpmTiltScalar for the tilt angle
For arrays of BPM, it has also be implemented here following same magnet arrays implementation.
The idea is to do more or less the same as for magnets except that BPM names have to be unique in the lattice. An abstract
BpmModelhas to be implemented as for magnet.However 2 cases appears:
Control system BPM having offsets (and tilt) implemented and BPM having only a position.
We can focus first on the second case.
Concerning the CS,
RBpmArray,RWBpmTiltScalarandRWBpmOffsetArrayhas to be implemented here and added hereConcerning simulators,
RBpmArray,RWBpmTiltScalarandRWBpmOffsetArrayhas to be implemented here and added hereRBpmArrayfor [h,v]RWBpmOffsetArrayfor [offseth,offsetv]RWBpmTiltScalarfor the tilt angleFor arrays of BPM, it has also be implemented here following same magnet arrays implementation.