skip fine acquisition for repeat targets - #471
Conversation
|
@astronomerdave no this doesn't stop acam acquire and offset and introduces a bug where fine acquire would never be ran on any target. repeat_target() is true for every target at line 755: move_to_target writes last_ra_hms at 2255 and is awaited at 733, so dofine is always false and fine acquire never runs. Fix: latch is_repeat_target = repeat_target() once before the workers spawn, and read that bool everywhere. for BOTH fine acquire ON and OFF you must skip acam acquire. in fine acquire ON mode both do_acam_acquire() and the target_offset() still fires applying a double offset, since its gate is_fineacquire_locked will be "true". Skip both do_acam_acqure and target_offset(), keep slit_set(VSM_EXPOSE). Also make sure to NOT do wait_for_user() in fine acquire ON mode. |
|
@cfremling Sorry, I need to picture this better and design, then code, rather than just code. Here is a flowchart of how the system works as designed: I already created a repeat function which I thought you had tied to a button. Sending the repeat command jumps directly to the green box, it just does the exposure. That works, so you are looking for something else. In your PR #457 you say that they user clicks |
|
@astronomerdave currently the gate on RA, DEC doesn't care about do one or do all modes it is active in both. (this behavior is fine, and does not need to be changed in either mode). the user clicks 'go' in the python GUI, which I believe issues startone. your interpretation is otherwise correct skip to adjust slit width + expose. do not do any acquisition steps on acam or scam fine acquire, no offset after fine acquire lock Anyway, because the repeat function does not allow changing the slit width, the observers must use 'go' on the same target to observe the same target with different configurations, which typically change slit width, binning, exptime. this is done practically every night on standard star calibrations. the repeat function could be used if it was able to change slit width and binning and exptime and then all the gating logic on same coordinates we are trying to introduce in the acquisition logic here would then be unnecessary. |
|
You say:
If that is the case then just make a standard star calibration target list! You're asking for a software redesign instead of showing observers how to use the software to do what they want. And for the record, a cleaner design would be to insert a new line in the table and click go. You used to be able to click copy/insert, and you used to have the ability to edit columns right in the table. It was so intuitive and easy and solved all the problems, no new buttons and no new code logic needed. We are doing a LOT of work-arounds in the back end to make up for functionality we lost in the new GUI. |
|
Currently, as the system is designed using several rows in a target list would not work, and it does not achieve what is needed (same coordinates, multiple settings, no re-acquisition). I am fine with creating multiple rows, or updating the db and re-sending an updated row. Any of that does not negate the need for the logic of skipping acquisitions steps. New entries in the target list would go through all the acquisition steps, which can't be happening when repeating a target. |
|
this should do what you want |
|
@astronomerdave yes this is good. cleaner than #457 and has the essentials. The one final request I would have is to allow seq clearlasttarget as a seq command that the pygui could send if manual observer really wants to force re-acquisition. (so take it off the seq test and make it official command) |
That's bigger than it appears. An observer would have to know what "clear last target" means, which is unique in the context of how the code works, an unnecessary detail. Clear it from what? or where? The database? Alternatives I considered:
The other problem is that this is silent. An observer has no way to ask "will the next target skip acquisition?" I'm sure there's a way to do what you want (everything can be done in software) but this is kinda late to get into this. I don't think that just putting something together without a though-out design at 4:58 PM on the last day that funding runs out is a good idea. |
|
@astronomerdave I see your point with that. lets keep it as seq test as is |

This is a simplification of PR #457
@cfremling please verify this meets your intent but according to our slack conversation I believe it does.