[INSTRM-2307] MCS should check for the fiber illuminator status Created: 07/Jun/24  Updated: 16/Sep/24  Resolved: 16/Sep/24

Status: Done
Project: Instrument control development
Component/s: ics_mcsActor
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Normal
Reporter: chyan Assignee: karr
Resolution: Done Votes: 0
Labels: EngRun
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to INSTRM-2299 Improve no-lamps-so-no-spots error me... Done
relates to INSTRM-2330 Create more robust error trapping for... Done
Sprint: preRun18August1, EngRun18August

 Description   

Adding a checking for the fiber illumination status. Otherwise MCS should send error message.



 Comments   
Comment by karr [ 19/Jun/24 ]

Looking at the code, the best place to check for this is when the fiducial fibre matching fails. Counting the number of detected spots is a poor test, as due to the black spots the number of detected dots varies (even with the illuminator on) and is not completely predictable ahead of time (due to cobras ending up behind black dotes during moves). 

The fidicual fibre matching will fail (returning 0 matches) if the illuminator is not on, or if the fiducial fibres are not on. It will produce similar results (typically 0 to 2 matches) if the cobras are illuminated but the rotation angle is wrong. 

In all three cases, the code should abort the convergence sequence in a graceful, non-crashing fashion. I will consult Craig and Chi-Hung about the best was of doing this, as it involves higher level actors (and maybe IIC). 

This ticket connects with INSTRM-2299, in which unexpected behaviour was produced by nonsense input from cobra_target. The diagnostics are different, but the result should be the same; aborting the convergence sequence and producing a clear and impossible to miss error message.  

 

Comment by karr [ 21/Jun/24 ]

Addendum: the cobra matching failure will also catch if the camera name is wrong, or the initial transformation otherwise wildly off. 

Comment by arnaud.lefur [ 17/Aug/24 ]

So from the sps actorkeys, the keyword to check is biaStatus, the first field correspond the the power, anything >0 means that the illuminator is on.

Key('biaStatus',
 Int(name='power', units='percent', invalid=-1, help='bia power(%)',
 FITS=('W_BIAPOW', 'W_SPS_BIA_POWER')),
 Int(name='period', units='ms', invalid=-1, help='bia strobe period',
 FITS=('W_BIAPER', 'W_SPS_BIA_STROBE_PERIOD')),
 Int(name='strobeDuty', units='percent', invalid=-1, help='bia strobe duty cycle',
 FITS=('W_BIADTY', 'W_SPS_BIA_STROBE_DUTY')),
 Int(name='pulseOn', units='ms', invalid=-1, help='bia pulse high duration',
 FITS=('W_BIAON', 'W_SPS_BIA_PULSE_ON')),
 Int(name='pulseOff', units='ms', invalid=-1, help='bia pulse low duration',
 FITS=('W_BIAOFF', 'W_SPS_BIA_PULSE_OFF'))),

for the fiducials, the keyword to check is peb.dutycycle, same logic, first field is the power, anything >0 means that the illuminator is on. 

Key('dutycycle',
 Float(name='Now', units='%'),
 Float(name='On', units='%'),
 Float(name='Flash', units='%'),
 help='PFI Ebox LED dutycycle'),
Comment by karr [ 16/Sep/24 ]

It was decided that checking fibre illuminator status should be done in a different actor; MCS will check for number of spots and return a cmd.fail if zero spots are detected when doCentroid is called.

Comment by karr [ 16/Sep/24 ]

See ticket INSTRM-2330 for conclusion

Generated at Sun Apr 13 21:36:38 JST 2025 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.