[INSTRM-1297] Add visit= argument to main fps commands Created: 21/Jun/21  Updated: 03/Aug/21  Resolved: 03/Aug/21

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

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

Issue Links:
Blocks
blocks INSTRM-1296 Add IIC commands for main FPS routines. Done

 Description   

In order to run at Subaru, the FPS commands which take exposures take their visit id from IIC. See INSTRM-1296. The proposed command list is currently:

  ('moveToPfsDesign', '<visit>', ),
  ('movePhiToAngle', '<visit> <angle> <iteration>', ),
  ('moveToHome', '<visit> @(phi|theta|all)', ),
  ('moveToSafePosition', '<visit>', ),
  ('gotoVerticalFromPhi60', '<visit>', ),
  ('makeMotorMap', '<visit> @(phi|theta) <stepsize> <repeat> [@slowOnly]', ),
  ('makeOntimeMap', '<visit> @(phi|theta)', ),
  ('angleConvergenceTest', '<visit> @(phi|theta) <angleTargets>', ),
  ('targetConvergenceTest', '<visit> @(ontime|speed) <totalTargets> <maxsteps>', ),
  ('motorOntimeSearch', '<visit> @(phi|theta)', ),


 Comments   
Comment by cloomis [ 16/Jul/21 ]

This will require some changes to the fps/cobraCharmer commands in order to follow the current id conventions: within a visit we can have up to 100 mcs frames, and that the visit generally comes from iic.

I think that for most of the main operations (simple tests, real target convergence, single motor maps) we are fine. But some of the current fps commands can easily run past 100 frames. In particular, the testConverge command can make an arbitrary number of ~10 frame tests, and the motorMap commands can generate up to N*four motormaps (always forward and reverse; always slow and optionally also fast. All multiplied by a arbitrary repeat count.). I think repeats and fast can (and should!) be pulled out into the fps caller, but am wondering how often a single motormap or fwd/rev motormap pair takes more than 100 frames? 50 frames for the standard max theta range of 10000 steps limits us to 200 steps/iteration, which seems high.

chihyi? chyan, how often would that be a real issue? For 2021 I see the following directories with >100 frames:

directory #frames outputFiles
20210703_008 150 2021-07-03-phi-slow.xml
20210703_009 150 2021-07-03-phi-final.xml  2021-07-03-phi-newcnt.xml
20210703_016 150 2021-07-03-phi-slow.xml
20210703_017 150 2021-07-03-phi-final.xml
20210703_021 102 2021-07-03-phi_opt.xml
20210704_007 102 2021-07-04-phi_opt.xml
20210705_002 102 2021-07-05-phi_opt.xml
20210705_012 150 2021-07-05-phi-slow.xml
20210705_013 150 2021-07-05-phi-final-flagbad.xml  2021-07-05-phi-final.xml
20210705_016 367
20210705_017 353
20210705_023 102 2021-07-05-theta_opt.xml
20210706_002 246 2021-07-06-theta-slow.xml
20210706_003 246 2021-07-06-theta-final.xml
20210706_005 246 2021-07-06-theta-slow.xml
20210706_006 246 2021-07-06-theta-finalflag.xml	2021-07-06-theta-final.xml
20210707_001 1098
20210707_002 713

Also, the primitive fps (cobraCharmer) operations each create a directory inside which they aggregate logs, images, and both intermediate and final data files. This is very convenient and, I think, still desirable. I'll write a separate ticket to rephrase that, but the mcsActor now saves raw files in /data/raw/$date/mcs/ without any of the additional structure. They can be symlinked to.

Finally, I'm inclined to leave many engineering commands in fps, and do not feel the need to require going through iic for those.

Comment by chihyi [ 16/Jul/21 ]

For the motor maps, we choose two on-times for fast(0.12 deg/step) and slow(0.06 deg/step) average speeds in each direction. For theta motors, it's about 400/0.12=3333 steps for fast maps and 400/0.06=6666 steps for slow maps. Usually I use large steps/iteration like 250 for one module test. But Chi-Hung uses smaller steps/iteration to build the motor maps. He should know the optimized steps/iteration for building the motor maps.

Comment by cloomis [ 03/Aug/21 ]

Implemented this by adding a Visitor class which the commands update with new visits and which the image acquisition layer updates with new frames. In other words, little code was changed.

Generated at Fri Apr 18 04:43:24 JST 2025 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.