Expand description
§Architecture
The crate::export_fmu macro generates the necessary C-API bindings for the exported FMU.
Many of these bindings operate on a ::fmi::fmi3::binding::fmi3Instance, which is an opaque
pointer to an instance of instance::ModelInstance.
instance::ModelInstance implements the crate::fmi3::Fmi3Common trait, which provides
the actual implementation of the FMI 3.0 API. All user-model-specific functions are delegated
to the Model trait,
which the user model must implement.
Structs§
- Basic
Context - Basic context for Model-Exchange FMU instances
- Binary
- A runtime binary type for FMU variables
- CSDo
Step Result - Result payload for a Co-Simulation
do_stepimplementation. - Clock
- A runtime clock type for FMU variables
- Model
Instance - An exportable FMU instance, generic over model type M and context type C
- Variable
Builder - A builder for creating FMI variables with a fluent interface.
Enums§
- Default
Logging Category - Simple default logging category for models that don’t need custom logging
- Model
State - Specifies how Co-Simulation is implemented for a model Represents the current state of the model instance
Traits§
- Context
- Context trait for FMU instances
- Fmi3
CoSimulation - Fmi3
Common - Fmi3
Model Exchange - Fmi3
Scheduled Execution - FmiVariable
Builder - Trait for types that can be used to build FMI variables.
- Initialize
From Start - Trait for initializing fields from start value expressions
- Model
- Model trait. This trait should be implementing by deriving
FmuModelon the user model struct. - Model
GetSet - Model
GetSet States - Model
Logging Category - User
Model - User-defined model behavior trait