Versions Compared

Key

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

...

3.2 OpenMI 2.0 architecture

3.2.1 DataOperation (suggestion from Adrian Harper)

Code Block
IDataOperation
{
     int StatusSourceElement(int nSourceElementIndex);
     int StatusTargetElement(int nTargetElementIndex);
}

...

The gui could use
status = NearestPoint.StatusSourceElement(0..N);
to determine what colour color to display each of the elements in the source elementset. ie for the NearestPoint dataoperation StatusSourceElement could return zero for all element indexsindexes
except for the one that is actually nearest. The Gui could then paint all elements in the source element set as black except for one red one.

Of course the gui does not necesarily necessarily know what the dataoperation does. Hence all the GUI could do is colour/label the elements based on what integer was returned and the user
would have to refer to the dataoperation user manual to determine what the codes indicate in that specific case.
We could even state that the returned integer is actually an rgb value.

...

Another example could be a RegularExpression DataOperation. The source element set could be 100 IDBased items, the user sets the RegularExpression.Arg to a regular expression and the gui uses the StatusSourceElement method to hide all non matching elements. Thus giving ConfigurationEditor a Filtering mechanism on the Link connnection connection dialog.

3.2.2 ValuesSet (from ~don (Gena))

...

However I do not understand why do we duplicate .NET in the current implementation and wrapping double[] by something like IValueSet, sounds a bit overkill. I can understand meaning of asking something like an entity representing Value of a certain Quantity on a specific ElementSet, which in my oppinion opinion should at least keep references to instances of those classes:

...

Please check a complete and working example in attachment. Hope you'll have time to have a look at it next week (wink). In example a method GetValues() should use seme different strategy instead of all those if(...).

In general this way can be a very powerful since it allows all functionality of current version and will also allow to provide conversions on-the-fly in case if someone will want to get value back in some specific format, and user implementation of IExchangeItem will be able to provide it.See also source code example

3.3 Development and release roadmap

...