| While (NotEmpty ScheduleList) |
| TriggerTime = ScheduleList.CurrentTime() |
| GPSTime = GPSReceiver.GetTimeNonBlocking() |
| If (TriggerTime-GPSTime < 2 s) |
| While (GPSTime < TriggerTime) |
| GPSTime=GPSReceiver.GetTimeBlocking() |
| End While |
| Camera.Trigger() |
| ScheduleList.NextTime() |
| End If |
| End While |