示例#1
0
        public override void DefaultValues()
        {
            IList <double> elementValue = new List <double> {
                _defaultValue
            };
            IList <IList <double> > list = new List <IList <double> > {
                elementValue
            };

            Values = new TimeSpaceValueSet <double>(list);
        }
 private void ProduceOutput(IEnumerable <EngineOutputItem> requiredOutputItems)
 {
     foreach (EngineOutputItem engineOutputItem in requiredOutputItems)
     {
         if (engineOutputItem.Values == null)
         {
             TimeSpaceValueSet <double> defaultValueSet = new TimeSpaceValueSet <double>();
             defaultValueSet.Values2D.Add(new List <double> {
                 0
             });
             engineOutputItem.Values = defaultValueSet;
         }
         double value = (double)engineOutputItem.Values.Values2D[0][0];
         value += _deltaT;
         engineOutputItem.Values.Values2D[0][0] = value;
         engineOutputItem.TimeSet.SetSingleTimeStamp(_currentTime);
     }
 }
        public override ITimeSpaceValueSet GetValues(IBaseExchangeItem querySpecifier2)
        {
            ITimeSpaceExchangeItem timeSpaceQuery = querySpecifier2 as ITimeSpaceExchangeItem;

            if (timeSpaceQuery == null)
            {
                throw new ArgumentException("querySpecifier must be an ITimeSpaceExchangeItem - add an adaptor");
            }

            if (!(timeSpaceQuery is ITimeSpaceInput))
            {
                throw new OpenMIException("Get Values can only be called with an Input as argument")
                      {
                          Component = Adaptee.Component, Output = this
                      };
            }


            /// Using a _query item in the
            ///     _adaptee.GetValues(_query)
            /// instead of
            ///     _adaptee.GetValues(this)
            ///
            /// Reason:
            /// The latter would need to set internal
            ///     TimeSet = timeSpaceQuery.TimeSet;
            /// but then internal Values does not match TimeSet
            /// (and also the TimeSet is set to override and return _adaptee.TimeSet)

            // Before uncommenting this, comment out the overidden TimeSet property above
            //TimeSet = timeSpaceQuery.TimeSet;

            // Set query time to internal query item
            _query.TimeSet = timeSpaceQuery.TimeSet;

            ITimeSpaceValueSet         incomingValues = _adaptee.GetValues(_query);
            TimeSpaceValueSet <double> resultValues   = ElementMapper.CreateResultValueSet(incomingValues.TimesCount(), SpatialDefinition.ElementCount);

            // Transform the values from the adaptee
            _elementMapper.MapValues(resultValues, incomingValues);
            return(resultValues);
        }
        public ITimeSpaceValueSet GetValues(IBaseExchangeItem querySpecifier)
        {
            ITimeSpaceExchangeItem timeSpaceQuery = querySpecifier as ITimeSpaceExchangeItem;

            if (timeSpaceQuery == null)
            {
                throw new ArgumentException("Must be an ITimeSpaceExchangeItem, add an adaptor", "querySpecifier");
            }

            if (_children.Count == 0)
            {
                return(null); // TODO: Or throw an exception?
            }
            TimeSpaceValueSet <double> resultSet = ElementMapper.CreateResultValueSet(timeSpaceQuery.TimeSet.Times.Count, this.ElementSet().ElementCount);

            // Get values from all adaptees/children, and add them together
            for (int i = 0; i < _children.Count; i++)
            {
                _children[i].GetValues(resultSet, querySpecifier);
            }
            return(resultSet);
        }
示例#5
0
 public override void DefaultValues()
 {
     Values = new TimeSpaceValueSet <double>(_defaultValues);
 }