public void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar) { if (m_RunAutoFocusNow && locatedGuidingStar != null && locatedGuidingStar.IsLocated && m_ObservatoryController.IsConnectedToTelescope()) { // TODO: Start the auto focusing and monitor it. Do we want to use a state machine for this?? } else if (m_IsAutoFocusing && m_ObservatoryController.IsConnectedToTelescope()) { // TODO: Check the effect of the last focuser movement and issue a correction or end the focusing // TODO: Use a state machine to manage this. } }
internal override void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar) { if (!m_FirstFrameReceived) { // TODO: Record the starting position m_FirstFrameReceived = true; m_StateMachine.ObservatoryController.TelescopePulseGuide(GuideDirections.guideEast, PulseRate.Fast, CallType.Async, m_ObservatoryControlLock, ObservatoryController_SlewCompleted); m_PulseIssued = true; } else if (m_PulseFinished) { // TODO: Recod last position } }
internal abstract void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar);
internal override void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar) { // This is the idle state. Nothing to do. }
public void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar) { m_CurrentState.ProcessFrame(frame, locatedGuidingStar); }
public void Reset() { LastTrackedFrameNo = -1; GuidingStar = null; TargetStar = null; IsTracking = false; TrackedObjectId = -1; GuidingObjectId = -1; }