Open sbailey opened 4 years ago
Related to #194, these positioners should be placed at a non-colliding location.
Currently desimodel syncs the focalplane dumps from the DB and has access to the following info:
DEVICE_CLASSIFIED_NONFUNCTIONAL --> state bit STUCK is set
FIBER_INTACT --> if False, state bit BROKEN is set
CLASSIFIED_AS_RETRACTED --> state bit RESTRICTED is set
CTRL_ENABLED --> transient flag (ignored by desimodel)
How should desimodel determine which positioners are "functional" but should not be used? Once this is decided, we could add a new bit to the state definitions in desimodel and fiberassign, and then do something with them.
Add a category of positioners that are moveable but shouldn't be used for science targets, sky fibers, or standard stars, e.g. because the fiber lands on a hot column of the CCD and won't produce a useable spectrum.
These are different from broken fibers, because they can be back illuminated and safely moved to arbitrary positions; we just don't want to count that in the bookkeeping as a good assignment for a science/stdstar/sky.
These are different from stuck positioners, because they are moveable, e.g. to avoid collisions.
The implementation might be a mix of desimodel/data/focalplane/ and fiberassign code. The main point is to just assign them somewhere that doesn't collide with a good positioner, while not have it count against the NUMOBS bookkeeping or SKY/STDSTAR budget.