-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roads.Interfaces.Base functions are not constrained to be of the type declared in Roads.Interfaces #21
Comments
Well, to my knowledge this is a short form of class (function) definition, as described in Modelica Specification 3.4, Section 4.5.1. Thus
is identical to
|
Additionally section 7.3.2 (with anything in the Modelica specification you always need to cross-reference multiple sections!!) describes the "constraining-clause", for which the default is the declared type. Therefore for A pattern that might be clearer would be to have default implementations of the functions and then explicitly declare the constraining-clause, as follows: This would make checking of the model(s) easier as the declared functions wouldn't be partial. |
This would require to define such "dummy" functions in |
Absolutely they would be just a dummy, it's just a question of what is clearer, sometimes it's good to have a dummy implementation to copy. But it's just a case of style. |
OK, so question is rather how is a common solution of such an issue. Is there any similar case e.g. in Modelica Standard library? If we go that way, the functions positionDefault, etc., could be defined for an ideal straight road. Thus, those functions would not necessarilly have to be replaced in a particular road model. But it doesn't mean I prefer this solution ;-) |
I have a doubt that, if you confirm, can be an issue.
Look at Roads.Interfaces.Base. There are 5 variables (position, trackOffset, etc...).
These 5 variables are of type
replaceable function
thus can be replaced by any class that extendsfunction
.The question is: is this the intended behaviour? Shouldn't these variable be constrained to be of type
Roads.Interfaces.positionBase
instead of the more generalfunction
?Shouldn't they be declared as
replaceable VehicleInterfaces.Roads.Interfaces.positionBase position;
for example?
The text was updated successfully, but these errors were encountered: