Comments (10)
The expiration date should be stored in the model internally, so that we can return
fmi2status = fmi2warning
when callingfmi2SetupExperiment
from an expired FMU
Couldn't you do this already now? The FMU could inquire the system time and return fmi2status = fmi2warning
if it considers itself obsolete. Explanations of this behavior can be stored in the FMUs documentation.
What would be the benefit of standardizing an obsolete
attribute?
from fmi-standard.
As a side note, there are efforts underway in the SmartSE project, and other places, to standardize a set of model meta data (using the SRMD format from SSP Traceability, or alternatively other formats). Embedding this kind of meta data into an FMU is one of the approaches of using it. I think that additional information like release status, obsoleteness, etc. should be handled in these kinds of standards, and not the core FMI standard.
from fmi-standard.
I understand we have interface definition stuff like protobuf
or SSP
, but it involves more communication sometimes.
from fmi-standard.
It is found that variable names (especially IOs and parameters) are very difficult to modify once we distribute the first functioning version of an FMU to the users. Updating IOs usually involves a lot of communication and meetings with different teams and users in a large organization or across different suppliers. I am sure it is a pain point for a lot of FMU users. It would be great if we can solve this in future fmi standards.
Maybe like the proposal in #1817?
from fmi-standard.
Yeah, I think the proposal should be able to fix the issue. However, personally speaking, I think a dynamic FMU might be an overkill, and sometimes people want to be able to unzip the fmu and browse through the modelDescription.xml to understand what's actually inside the model.
Or maybe add attributes like an expirationDate
or maintenancePeriod
to the fmu itself would be great too, we can have LTS (long term support) FMUs and we can have experimental FMUs. Just like food, it is the buyers' (fmu importers) opinion if consuming expired food (fmu) is healthy or not.
from fmi-standard.
The expiration date should be stored in the model internally, so that we can return fmi2status = fmi2warning
when calling fmi2SetupExperiment
from an expired FMU
from fmi-standard.
@hyumo : Could you please explain the use-case and the semantics of the proposed "obsolete" attribute for variables? To be honest, I don't really understand the intention.
from fmi-standard.
The expiration date should be stored in the model internally, so that we can return
fmi2status = fmi2warning
when callingfmi2SetupExperiment
from an expired FMUCouldn't you do this already now? The FMU could inquire the system time and return
fmi2status = fmi2warning
if it considers itself obsolete. Explanations of this behavior can be stored in the FMUs documentation.What would be the benefit of standardizing an
obsolete
attribute?
Sorry, I was jumping roles between an importer and an exporter, and this idea is for sure not very ripe. I want to tell the user story a bit more in detail below.
As a user/importer, I might want to get a fmi2warning
if the FMU is expired, and I also want to know the reason for the warning. It could be logged to the console if logging is enabled. However, as a user I don't want to get this warning as a surprise, it would be great if the FMU expiration information is stored in the modelDescription.xml
so that a good import tool can choose to warn e.g. 1 month ahead of the expiration date. Just like Dymola, it warns its user that the license expires in 1 month in the graphics viewer, it is annoying, but its existence is to annoy people
As an FMU exporter, yes, I can definitely embed this time bomb information into an FMU, but this information is only stored internally in the FMU binary, it might surprise my user if they don't have too much knowledge about the FMU suddenly become "broken" (user yelling: why the FMU was returning fmi2success
for the last 10 months, but now it always returns fmi2warning
).
from fmi-standard.
I propose to use existing mechanisms like fmi2warning
in combination with a information provided in the FMUs documentation, or use addetional meta-information e.g. from the SSP Tracebility information for your purpose, and not extend the FMI standard with this information.
from fmi-standard.
FMI design meeting:
Pierre: meta-data should handled by SSP traceability or other layered standards.
Attribute per variable: This would be a separate issue.
Expiration can be handled inside the binary and documented in the FMU documentation.
from fmi-standard.
Related Issues (20)
- Interpretation of fmi3GetBinary with array variables HOT 2
- Forbid or discourage nameclashes of terminal names with normal model variables HOT 1
- Layered standard for reference solutions in an FMU HOT 1
- PDF in 2.0.4 "Complete package" Zip file marked as "rc2" HOT 1
- Non-normative text states that importers can deactivate output clocks HOT 2
- Handling of time-based Clocks with interval=0 HOT 5
- Standard is not clear about the information flow of Clocks HOT 5
- LICENSE.TXT of full package of FMI 2.0.4 release still contains "non-commercial" version of CC license HOT 1
- Usage of FMI for steady state simulation HOT 6
- Glossary clarifications for "simulator - simulation program - simulation tool"
- Clarify lifetime of argument functions in fmi2Instantiate() HOT 3
- Define legal values for currentCommunicationPoint after t = startTime HOT 1
- FMI 2.0.4 PDF displays version 2.0.3 in header HOT 1
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" HOT 4
- fmi2_import_get_variable_has_start(fmi2_import_variable_t*) API is returning zero (0) for Outputs and Global Block Outputs HOT 2
- Define allowed call sequence when terminateSimulation = true HOT 3
- Handling of file access and pathname parameters HOT 1
- Clarify allowed call sequence after fmi3Error has been returned HOT 1
- Bump Reference FMUs submodule to latest version prior to release
- Clarify meaning of DefaultExperiment.stepSize for Model Exchange HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fmi-standard.