示例#1
0
 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.
     }
 }
示例#2
0
        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
            }
        }
示例#3
0
 internal abstract void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar);
示例#4
0
 internal override void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar)
 {
     // This is the idle state. Nothing to do.
 }
示例#5
0
 public void ProcessFrame(VideoFrameWrapper frame, LastTrackedPosition locatedGuidingStar)
 {
     m_CurrentState.ProcessFrame(frame, locatedGuidingStar);
 }
示例#6
0
 public void Reset()
 {
     LastTrackedFrameNo = -1;
     GuidingStar = null;
     TargetStar = null;
     IsTracking = false;
     TrackedObjectId = -1;
     GuidingObjectId = -1;
 }