As this differental relates to parking states, use a basic scheduler job with only tracking set.
Uncheck "Stop Ekos After Shutdown" in the Ekos options to avoid losing driver states when the job finishes.
- Start Scheduler, check job/Ekos/INDI are started, executed and terminated.
- Test with "UnPark Mount" and "Park Mount" checked and unchecked.
- Test with a Scheduler stop in the middle of slewing or capturing, and a restart.
Observe that if "UnPark Mount" is unchecked, the mount is still unparked ; this is by design.
Option "UnPark Mount" is here to make sure the order of unparking is honored.
This will be replaced later by one single checkbox with that specific meaning.
BUG - Observe that if "Park Mount" is unchecked, the mount is NOT unparked at the end of the procedure.
This is by design, and is clearly not symmetric with the "UnPark Mount" option, thus needs to be reworked.
- Remove the capture storage.
- Start Scheduler, check job/Ekos/INDI are started, and kill/disconnect indiserver.
- Check that Scheduler cancels the running action, and attempts to restore connection with devices.
- If indiserver is still accessible, Scheduler will reconnect and restart the job.
- If indiserver is not accessible anymore, Scheduler will attempt to reconnect multiple times then stop.
- If indiserver is accessible but not responsive, Scheduler will attempt to reconnect devices, fail then stop.
Note that using a local Simulator makes it difficult to test because the system is really quick to recover.
During that test, a remote indiserver is easier to test with, and allows for various test cases with the network.
BUG - Observe the issue that Scheduler is unable to handle the case of a single device being disconnected.
- Remove the capture storage.
- Start Scheduler, check job/Ekos/INDI are started, wait for mount slew to start.
- Abort the slew while it is running.
- Check that Scheduler does notice the problem and restarts the slew.
- Park the mount while it is slewing.
- Check that Scheduler does NOT notice the problem until the mount is parked, but then unparks and restarts the slew.
- Park the mount then abort the park while it is running by unparking the mount, this causes IPS_ALERT on the parking property.
- Check that Scheduler does notice the problem and restarts the slew.
Originally a parking property in IPS_ALERT would cause the Mount interface to return PARKING_ERROR, causing confusion and hanging Scheduler.
Next test requires two runs, one with guiding NOT set, the other with guiding set. This is obviously an edge case.
- Remove the capture storage.
- Start Scheduler, check jobs/Ekos/INDI are started, wait for the mount to capture.
- Park the mount.
- Check that Scheduler does NOT notice the problem if guiding is NOT set, and continues to capture until the end of the job.
- Check that Guider notices the problem though, but nonetheless resumes guiding before the mount is fully parked.
- Check that situation cannot be recovered.
BUG - Observe the issue that while Guider notices mount is parking, guiding is resumed by stubborn Scheduler, and successfully guides when close to the pole because of the lower slew speed.
This is obviously an edge case, and probably cannot be considered a valid test case as a mount that is parking may not answer to guide commands. Simulator does.
Next test requires the Dome Simulator, and two distant jobs - one that executes now, one that executes later on (repeated duplicate is ok).
- Remove the capture storage.
- Check Unpark Dome, Unpark Mount.
- Start Scheduler, check jobs/Ekos/INDI are started, wait for the end of the first job.
- Check that Scheduler shuts observatory down if job is farther than preemptive shutdown delay and that option is set.
- Check that Scheduler parks the setup then sleeps if job is farther than lead time.
- Check that Scheduler waits if job is sooner than lead time.
- Abort Scheduler, remove capture storage.
- Uncheck Unpark Dome, Unpark Mount, and pay attention to current state of those.
- Start Scheduler, check jobs/Ekos/INDI are started, wait for the end of the first job.
- Check that Scheduler shuts observatory down if job is farther than preemptive shutdown delay and that option is set.
- Check that Scheduler does not park the setup then sleeps if job is farther than lead time.
- Check that Scheduler waits if job is sooner than lead time.
BUG - Observe the issue that if Unpark Dome is not checked, Scheduler is unable to unpark the dome device.
The issue was fixed for the mount device, but is probably the same for the dome and needs to be revisited.
BUG - Observe the issue that if Unpark options are checked, and the first job is farther than the lead time, Scheduler will open the dome, then either shut the dome
immediately if preemptive shutdown is enabled, or leave the dome open while sleeping.