[INSTRM-980] provide a hxActor simulator that can fake exposure Created: 14/May/20 Updated: 20/Jul/22 Resolved: 30/Mar/22 |
|
Status: | Done |
Project: | Instrument control development |
Component/s: | ics_hxActor |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Task | Priority: | Normal |
Reporter: | arnaud.lefur | Assignee: | cloomis |
Resolution: | Done | Votes: | 0 |
Labels: | NIR, SPS | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Issue Links: |
|
||||||||||||||||||||
Story Points: | 6 | ||||||||||||||||||||
Sprint: | SM1PD-2020 K, SM1PD-2020 L, SM1PD-2021 A 2, SM1PD-2021 A 3, SM1PD-2021 A 4, SM1PD-2021 A 5, SM1PD-2021 A 6, SM1PD-2021 A7, SM1PD-2021 A8, SM1PD-2021 A9, SM1PD-2021 A10, SM1PD-2021 A 11, SM1PD-2021 A 12, SM1PD-2021 A 13, SM1PD-2021 A 14, SM1PD-2021 A 15, SM1PD-2022 B, SM1PD-2022 C |
Description |
spsActor needs to handle synchronisation between hx and ccd actors. I suspect it will require some debugging to do this correctly, and we obviously don't want to do that with real hardware. The simulator does not need to create realistic frame, an empty frame would do it. What really matters is command flow/timing etc .. |
Comments |
Comment by cloomis [ 26/Nov/20 ] |
The single command which matters is ramp nread=N visit=V. Before that is sent you will have the readTime keyword value, which is how long a single read takes. That will be between 5.57 and 11.14 seconds, depending on how we end up configuring reference pixel interleaving ("IRP"). For the purpose of SPS/ICC sequencing it is worth keeping in mind that during a ramp the detector continuously reads out from top to bottom, then immediately continues at the top. That said, we always start a ramp with a reset frame, which takes the same readTime as a real read: the start of your requested ramp will be delayed by one readTime. [ We might want to add more resets under some circumstances, but don't worry about that yet. ] Part of the puzzle will be whether we can reliably synchronize the read edges with any interesting SPS changes: shutter transitions, lamp transitions, ccd transitions. At worst we will lose a read at the start and a read at the end, because they overlap with shutter or lamp changes. [I have some more detailed notes on this which I will try to recover and merge with these comments. ] I am nearly certain that we will want to continue taking reads while the ccd are reading out, for two reasons. One is that we will not need to get the relative timings exactly right. And we will be able to get our first measurement of persistence from the exposure. I still need to understand how to figure out when the first read will start. That may not matter: if we started the ramp along with the ccd wipe (I think we will want to) we can synchronize the shutter/lamp start events after the ramp has started. At which point I think we will know when the first read started. [But remember the reset frame time. ] Given those various points I suggest that the starting design should be to send the ramp command along with the ccd wipe command (or earlier if possible), and that nread be set to the expected time between the end of the reset frame and the end of the ccd readout. [We need to generate a ccdReadTime keyword, hmm.] The main keywords are:
We will need handle the shutter close, etc. times differently from the CCDs for the purpose of EXPTIME, etc.. There is no clean wipe/read split like for the ccd. I think a shutterClosed keyword similar to the new lampX keywords will have to do. |
Comment by hassan [ 08/Dec/21 ] |
This ticket, and subsequent related tickets, will be scheduled for implementation one month prior to the shipping date of N1 to LAM. |
Comment by cloomis [ 30/Mar/22 ] |
Merged at a5afcc, tagged 2.3.0 Only simulates the ramp command and its keywords. If the actor config has simulator=True the ramp command is replaced by a simulator, which does not touch or need and hardware, nor does it create files. |