Esempio n. 1
0
        /// <summary>
        /// Processes one frame. Generally should be run once per update loop.
        /// </summary>
        public virtual void ProcessFrame()
        {
            if (SourceClock == null)
            {
                return;
            }

            pClock.ProcessFrame();
            SourceClock.ProcessFrame();

            LastInterpolatedTime = CurrentTime;

            if (!SourceClock.IsRunning)
            {
                return;
            }

            CurrentInterpolatedTime += pClock.ElapsedFrameTime * Rate;

            if (Math.Abs(SourceClock.CurrentTime - CurrentInterpolatedTime) > AllowableErrorMilliseconds)
            {
                // -If we've exceeded the allowable error, we should use the source clock's time value.
                CurrentInterpolatedTime = SourceClock.CurrentTime;
            }
            else
            {
                // - If we differ from the elapsed time of the source, let's adjust for the difference.
                CurrentInterpolatedTime += (SourceClock.CurrentTime - CurrentInterpolatedTime) / 8;
            }
        }
Esempio n. 2
0
        public void SourceClockShouldBe(IAWG awg, string clockNumber, SourceClock shouldBe)
        {
            string clockSource         = awg.ClockSource(clockNumber);
            string possibleErrorString = "Checking the source for clock " + clockNumber;

            switch (shouldBe)
            {
            case SourceClock.Internal:
                Assert.AreEqual("INT", clockSource, possibleErrorString);
                break;

            case SourceClock.External:
                Assert.AreEqual("EXT", clockSource, possibleErrorString);
                break;

            case SourceClock.Fixed:
                Assert.AreEqual("EFIX", clockSource, possibleErrorString);
                break;

            case SourceClock.Variable:
                Assert.AreEqual("EVAR", clockSource, possibleErrorString);
                break;
            }
        }
Esempio n. 3
0
        // Unkown 01/01/01
        /// <summary>
        ///
        /// </summary>
        /// <param name="awg"></param>
        /// <param name="clockNumber"></param>
        /// <param name="setValue"></param>
        public void SetClockSource(IAWG awg, string clockNumber, SourceClock setValue)
        {
            var clockSource = "INT";

            switch (setValue)
            {
            case SourceClock.Internal:
                clockSource = "INT";
                break;

            case SourceClock.External:
                clockSource = "EXT";
                break;

            case SourceClock.Fixed:
                clockSource = "EFIX";
                break;

            case SourceClock.Variable:
                clockSource = "EVAR";
                break;
            }
            awg.SetClockSource(clockNumber, clockSource);
        }