X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.fmil.core%2Fnative%2FFMILibrary%2Fsrc%2FXML%2Fsrc%2FFMI2%2Ffmi2_xml_model_description_impl.h;fp=org.simantics.fmil.core%2Fnative%2FFMILibrary%2Fsrc%2FXML%2Fsrc%2FFMI2%2Ffmi2_xml_model_description_impl.h;h=ea796b61dbaef360f62f2538cd39873d1fa456f9;hb=4bed8078f3f6d15b8539d7357b8815f8bfeec2c4;hp=0000000000000000000000000000000000000000;hpb=87cc423aefd98832c6c8d0979afc21551f8ceca3;p=simantics%2Ffmil.git diff --git a/org.simantics.fmil.core/native/FMILibrary/src/XML/src/FMI2/fmi2_xml_model_description_impl.h b/org.simantics.fmil.core/native/FMILibrary/src/XML/src/FMI2/fmi2_xml_model_description_impl.h new file mode 100644 index 0000000..ea796b6 --- /dev/null +++ b/org.simantics.fmil.core/native/FMILibrary/src/XML/src/FMI2/fmi2_xml_model_description_impl.h @@ -0,0 +1,114 @@ +#ifndef fmi2_xml_model_decription_impl_h_ +#define fmi2_xml_model_decription_impl_h_ + +#include + +#include +#include +#include +#include +#include + +#include "fmi2_xml_unit_impl.h" +#include "fmi2_xml_type_impl.h" +#include "fmi2_xml_variable_impl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum fmi2_xml_model_description_status_enu_t { + fmi2_xml_model_description_enu_empty, + fmi2_xml_model_description_enu_ok, + fmi2_xml_model_description_enu_error +} fmi2_xml_model_description_status_enu_t; + +/* ModelDescription is the entry point for the package*/ +struct fmi2_xml_model_description_t { + + jm_callbacks* callbacks; + + fmi2_xml_model_description_status_enu_t status; + + jm_vector(char) fmi2_xml_standard_version; + + jm_vector(char) modelName; + + jm_vector(char) GUID; + + jm_vector(char) description; + + jm_vector(char) author; + jm_vector(char) copyright; + jm_vector(char) license; + + jm_vector(char) version; + jm_vector(char) generationTool; + jm_vector(char) generationDateAndTime; + + fmi2_variable_naming_convension_enu_t namingConvension; + + size_t numberOfContinuousStates; + + size_t numberOfEventIndicators; + + double defaultExperimentStartTime; + + double defaultExperimentStopTime; + +#define FMI2_DEFAULT_EXPERIMENT_TOLERANCE 1e-4 + + double defaultExperimentTolerance; + +#define FMI2_DEFAULT_EXPERIMENT_STEPSIZE 1e-2 + + double defaultExperimentStepSize; + + + jm_vector(char) modelIdentifierME; + + jm_vector(char) modelIdentifierCS; + + jm_vector(jm_string) sourceFilesME; + jm_vector(jm_string) sourceFilesCS; + + jm_vector(jm_string) logCategories; + jm_vector(jm_string) logCategoryDescriptions; + + jm_vector(jm_string) vendorList; + + jm_vector(jm_named_ptr) unitDefinitions; + jm_vector(jm_named_ptr) displayUnitDefinitions; + + fmi2_xml_type_definitions_t typeDefinitions; + + jm_string_set descriptions; + + jm_vector(jm_named_ptr) variablesByName; + + jm_vector(jm_voidp)* variablesOrigOrder; + + jm_vector(jm_voidp)* variablesByVR; + + fmi2_fmu_kind_enu_t fmuKind; + + unsigned int capabilities[fmi2_capabilities_Num]; + + fmi2_xml_model_structure_t* modelStructure; +}; + +void fmi2_xml_report_error(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...); + +void fmi2_xml_report_error_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap); + +void fmi2_xml_report_warning(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...); + +void fmi2_xml_report_warning_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap); + + +#ifdef __cplusplus +} +#endif + +#endif +