Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

2. Status of the implementation .NET

2.1

...

Changes to the standard

All proposed changes resulting from the previous meeting have been realized.

2.2 Backbone

Gena update the backbone according to the latest version of the Standard. Small modifications by Stef and Adrian afterwards.
Note: the documentation is not up to date at all. Actually: the documentation of the Standard is the most important one. We could already start to work on this documentation for the more static items, like the ValueDefinition, ElementSet, etc.

2.3 Buffer

The buffer has "ported" to the latest 2.0.
However, there is an issue to adress: the extrapolation, interpolation, etc.

2.4 Time interpolation Decorator

Stef experimented a bit. Two major issues to have a look at came up:

  • when to extrapolate/interpolate
  • the component needs to know which decorator is a TimeDecorator.

2.5 GUI

2.6 SimpleRiver Model - running in GUI

...

3 Status of the Java implementation

4 Pending from previous meetings / Other items to be discussed

  1. Question: what does isAvailable() mean in case of multiple consumers. Do all consumers need to have the same time(s)?
    1. Leave in for now, review after more implementation, one suggestion of modification bool isAvailable(whosAsking);
    2. (warning) Will be discussed later during the meeting, Stef will show an example of using isAvailable(whosAsking);
  • We will introduce a boolean argument that indicates whether the component should run in a pull mode (like in OpenMI 1.4) or in loop mode
    : Discuss component operation mode here - comment from Peter Gijsbers need to be discussed
  • "string Validate()" / "bool IsValid(IExchangeItem item)" / "IsAvailable()", etc.
    • (warning) to be reviewed at this meeting
  • When we get loops in the compositions - we have to tell which component will be first! In the new GUI, we will let the user indicate the 'Start up component'.
     
  • The Timezone issue has to be re-adressed. According to Adrian it is not doing what we expected.
  • Decorator issues:
    • Do we need to recognize the type of decorator (time, space, SI-conversion)?
    • Do we want to support 3th-party decorators indeed?
    • Is is useful to let the component have a property OutputDecorators, containing the list of already created decorators?
    • How to support the end user, when "chaining" decorators?
  • IArgument needs a mechanism for identifying the type of argument e.g. File, Path, int double etc Very usful for providing customised GUI functionality
    • (question) Adrian's proposal is below
      • Code Block
        namespace OpenMI.Standard
        {
            public enum EArgType
            {
                String = 0, // default
                Bool,
                Int,
                Double,
                Path, // presummed to exist and accessable
                FilePath, // presummed to exist and accessable
                PathNew,
                FilePathNew,
                XML, // Rob: can be used together with a schema for complex argument data
                MIME, // Rob: might be useful to pass in images, or text documents, etc.
            }
        
            /// <summary>
            /// The IArgument interface defines a key - value pair. If the property ReadOnly is
            /// false the value is editable otherwise it is read-only.
            /// </summary>
            public interface IArgument : IDescribable
            {
                /// <summary>
                /// Type that string value represents and can be converted to
                /// </summary>
                EArgType ValueType { get; }
        
        	/// <summary>
                /// The key (string) in key-value pair.
        	/// </summary>
        	string Key {get;}
        
        	/// <summary>
                /// <para>The value (double) in key-value pair.</para>
                ///
                /// <para>If the ReadOnly property is true and the property is attempted to be changed
                /// from outside an exception must be thrown.</para>
        	/// </summary>
        	string Value { get; set; }
        
        	/// <summary>
                /// Defines whether the Values property may be edited from outside.
        	/// </summary>
        	bool ReadOnly {get;}
            }
        }
        

...