示例#1
0
        private ITime DetermineFinalTime(ITime currentTime)
        {
            foreach (KeyValuePair <string, ExchangeItem> output in _outputs)
            {
                if (output.Value.Times != null && output.Value.Times.Length > 0)
                {
                    double timeAsMJD = output.Value.Times[output.Value.Times.Length - 1];

                    currentTime = new DotNet.Bridge.Time(timeAsMJD);
                    break;
                }
            }
            foreach (KeyValuePair <string, ExchangeItem> inout in _inout)
            {
                if (inout.Value.Times != null && inout.Value.Times.Length > 0)
                {
                    double timeAsMJD = inout.Value.Times[inout.Value.Times.Length - 1];
                    currentTime = new DotNet.Bridge.Time(timeAsMJD);
                    break;
                }
            }

            if (currentTime == null)
            {
                currentTime = TimeHorizon.BeginTime;
            }
            return(currentTime);
        }
示例#2
0
        private ITime DetermineCurrentTime(ITime currentTime)
        {
            /* In case the component implements some extensions, use them */
            if (_openMIComponent is ITimeSpaceComponentExtensions)
            {
                ITimeSpaceComponentExtensions extendedComponent = (ITimeSpaceComponentExtensions)_openMIComponent;
                double now = extendedComponent.currentTime().StampAsModifiedJulianDay;
                return(new DotNet.Bridge.Time(now));
            }
            /* We have to fall back on a proper time administration in the exhange items */

            foreach (KeyValuePair <string, ExchangeItem> output in _outputs)
            {
                if (output.Value.Times != null && output.Value.Times.Length > 0)
                {
                    double timeAsMJD = output.Value.Times[output.Value.Times.Length - 1];
                    currentTime = new DotNet.Bridge.Time(timeAsMJD);
                    if (currentTime != null)
                    {
                        return(currentTime);
                    }
                }
            }

            foreach (KeyValuePair <string, ExchangeItem> inout in _inout)
            {
                if (inout.Value.Times != null && inout.Value.Times.Length > 0)
                {
                    double timeAsMJD = inout.Value.Times[inout.Value.Times.Length - 1];
                    currentTime = new DotNet.Bridge.Time(timeAsMJD);

                    break;
                }
                break;
            }

            if (currentTime == null)
            {
                currentTime = TimeHorizon.BeginTime;
            }
            return(currentTime);
            // }
        }