[INSTRM-2132] Send visit number to Gen2 Created: 19/Dec/23  Updated: 31/Jan/24

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

Type: Task Priority: Normal
Reporter: yuki.moritani Assignee: cloomis
Resolution: Unresolved Votes: 0
Labels: EngRun
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

At present, `PFS.DESIGN.VISIT` is updated only when a given pfsDesign is declared. In other cases, observer (SA) don't know which visit is used now, and it is difficult to take a set of data keeping the same visit (e.g., focusing using AG, take a set of MCS data). We are setting the visit manually sometimes. It will be helpful if the current visit id is sent to Gen2 side always.



 Comments   
Comment by cloomis [ 20/Dec/23 ]

I think I misunderstood an earlier conversation. Don't you want to allocate a new visit for certain Gen2 scripts? Not just track which visit `iic` has allocated? We can (easily) do both, but I am not sure they can safely use the same status dictionary name.

Comment by yuki.moritani [ 20/Dec/23 ]

For now knowing the allocated visit ID is ok..
AG case, take one exposure, and this visitId can be used if we need to keep it. (Actually, this schema is used with PFS.DESIGN.VISIT for focusing sequence now..)
MCS case, maybe we can take one MCS exposure and use allocated visitId by making a loop starting with 1.. (iic fpsloop
took care MCS multiple exposure in the past, but I'm not sure if it works now and there is no iic command directly to send mcs to take multiple frames now.

Shintaro Koshida Do you have usecase to allocate new visit?

Comment by cloomis [ 20/Dec/23 ]

For MCS, I think you are better off allocating a new visit, then calling MCS exposure with that + frameId. Safer, cleaner.

The "allocated visit id" is in general ill-defined, because we can be starting/running several exposure sequences at one time. Which is why we always start with iic allocating a visit and passing it down. So if Gen2 is controlling a sequence, I think it should do the same. Basically, iic or Gen2 allocates a visit, then "loans" it to the sub-actors. Unambiguous.

Comment by yuki.moritani [ 20/Dec/23 ]

Well... then for MCS, it is the cleanest making "iic fpsloop" work back (or have its analogs) for Gen2 to send command?

Comment by cloomis [ 20/Dec/23 ]

We should certainly fix `iic fpsLoop` if it is not working. But I thought you wanted to change Popt2 focus between MCS exposures?

Comment by yuki.moritani [ 20/Dec/23 ]

I'm sorry I was not clear... what I had in mind is, set hexapod z position, take ~5 frames, move hexapod, take ~5 frames, and then... For now, if we call mcs Actor, 5 frames has different visit ID. 

But as you suggest, if Gen2 get new visit, changing Popt2 focus between MCS exposure should work.. and it sounds nice. (I'm slightly getting concerned about difference between agcc (using visit only) and mcs (specifying frameId).. but we can use what we have now.)

Comment by arnaud.lefur [ 21/Dec/23 ]

yeah, we should fix fpsLoop or add new commands if necessary.
It should work the same way as the boresight acquisition, where iic hold on a visit an then you move the rotator, then ask for a mcs exposure .. etc

Comment by yuki.moritani [ 23/Dec/23 ]

We used fpsLoop on 12/20 and confirmed it works.

Generated at Sat Feb 10 16:43:19 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.