From 4e76c66c7a4266932ff6a8bf0402c00a25db0458 Mon Sep 17 00:00:00 2001 From: PeterMeisrimelModelon <92585725+PeterMeisrimelModelon@users.noreply.github.com> Date: Fri, 6 Sep 2024 15:04:07 +0200 Subject: [PATCH] Cleaning up unused arguments from fmi3_import_instantiate_x calls (#140) --- RELEASE_NOTES.md | 7 +++++++ Test/FMI3/fmi3_capi_basic_test.cpp | 15 +-------------- Test/FMI3/fmi3_import_sim_cs_test.cpp | 2 -- Test/FMI3/fmi3_import_sim_me_test.cpp | 8 ++------ Test/FMI3/fmi3_import_sim_se_test.cpp | 15 --------------- src/CAPI/include/FMI3/fmi3_capi.h | 14 +------------- src/CAPI/src/FMI3/fmi3_capi.c | 12 +++--------- src/Import/include/FMI3/fmi3_import_capi.h | 17 +---------------- src/Import/src/FMI3/fmi3_import_capi.c | 16 ++-------------- 9 files changed, 17 insertions(+), 89 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 10d4b264..3afbf595 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,13 @@ The release notes are typically a highlighting subset of all changes made. For f Note that version 2.1 is the first version with release notes. Please see the commit history for older versions. +## Future + +### Changes + +- [BREAKING] Removed unused `instanceEnvironment` and `logMessage` inputs from `fmi3_import_instantiate_*` functions. + - The corresponding CAPI calls use `instanceEnvironment` and `logMessage` from `fmi3_import_create_dllfmu`. + ## 3.0a4 ### Improvements diff --git a/Test/FMI3/fmi3_capi_basic_test.cpp b/Test/FMI3/fmi3_capi_basic_test.cpp index 5b50fbff..ba7336e5 100644 --- a/Test/FMI3/fmi3_capi_basic_test.cpp +++ b/Test/FMI3/fmi3_capi_basic_test.cpp @@ -23,13 +23,6 @@ #include "catch.hpp" -void dummy_log_message_callback( - fmi3_instance_environment_t* env, - fmi3_status_t status, - fmi3_string_t category, - fmi3_string_t message) { - /* Empty by design */ -} void dummy_clock_update_callback(fmi3_instance_environment_t* env) { /* Empty by design */} void dummy_lock_preemption_callback() { /* Empty by design */} void dummy_unlock_preemption_callback() { /* Empty by design */} @@ -123,9 +116,7 @@ TEST_CASE("Test CAPI methods using a Model Exchange FMU", test_file_name) instanceName, resourcePath, visible, - loggingOn, - ((fmi3_instance_environment_t)&instance_env), - (fmi3_log_message_callback_ft)dummy_log_message_callback + loggingOn ); test_int_get_set(fmu, instantiate_status); @@ -183,8 +174,6 @@ TEST_CASE("Test CAPI methods using a Co-Simulation FMU", test_file_name) earlyReturnAllowed, requiredIntermediateVariables, nRequiredIntermediateVariables, - NULL, - NULL, NULL ); @@ -236,8 +225,6 @@ TEST_CASE("Test CAPI methods using a Scheduled-Execution FMU", test_file_name) resourcePath, visible, loggingOn, - ((fmi3_instance_environment_t)&instance_env), - (fmi3_log_message_callback_ft)dummy_log_message_callback, (fmi3_clock_update_callback_ft)dummy_clock_update_callback, (fmi3_lock_preemption_callback_ft)dummy_lock_preemption_callback, (fmi3_unlock_preemption_callback_ft)dummy_unlock_preemption_callback diff --git a/Test/FMI3/fmi3_import_sim_cs_test.cpp b/Test/FMI3/fmi3_import_sim_cs_test.cpp index ba73ab6a..ae863096 100644 --- a/Test/FMI3/fmi3_import_sim_cs_test.cpp +++ b/Test/FMI3/fmi3_import_sim_cs_test.cpp @@ -118,8 +118,6 @@ void test_simulate_cs(fmi3_import_t* fmu) { earlyReturnAllowed, requiredIntermediateVariables, nRequiredIntermediateVariables, - NULL, - NULL, NULL); REQUIRE(jmstatus == jm_status_success); diff --git a/Test/FMI3/fmi3_import_sim_me_test.cpp b/Test/FMI3/fmi3_import_sim_me_test.cpp index 8805ef06..65257138 100644 --- a/Test/FMI3/fmi3_import_sim_me_test.cpp +++ b/Test/FMI3/fmi3_import_sim_me_test.cpp @@ -68,9 +68,7 @@ void test_capi_wrappers_me(fmi3_import_t* fmu) { "Test ME model instance", NULL, fmi3_false, - fmi3_false, - NULL, - NULL + fmi3_false ); REQUIRE(jmstatus == jm_status_success); @@ -128,9 +126,7 @@ void test_simulate_me(fmi3_import_t* fmu) { "Test ME model instance", NULL, fmi3_false, - fmi3_false, - NULL, - NULL + fmi3_false ); REQUIRE(jmstatus == jm_status_success); diff --git a/Test/FMI3/fmi3_import_sim_se_test.cpp b/Test/FMI3/fmi3_import_sim_se_test.cpp index ff47d0e9..b5ced882 100644 --- a/Test/FMI3/fmi3_import_sim_se_test.cpp +++ b/Test/FMI3/fmi3_import_sim_se_test.cpp @@ -35,7 +35,6 @@ static int g_dummy_clock_callbacks; typedef struct { fmi3_boolean_t clock_update_callback_called; /* Boolean used to test the call to fmi3ClockUpdateCallback */ - fmi3_boolean_t log_message_callback_called; /* Boolean used to test the call to fmi3LogMessageCallback */ } dummy_fmi3_instance_environment_t; void importlogger(jm_callbacks* c, jm_string module, jm_log_level_enu_t log_level, jm_string message) @@ -43,15 +42,6 @@ void importlogger(jm_callbacks* c, jm_string module, jm_log_level_enu_t log_leve printf("module = %s, log level = %s: %s\n", module, jm_log_level_to_string(log_level), message); } -void dummy_log_message_callback( - fmi3_instance_environment_t env, - fmi3_status_t status, - fmi3_string_t category, - fmi3_string_t message) -{ - ((dummy_fmi3_instance_environment_t*)env)->log_message_callback_called = fmi3_true; -} - void dummy_clock_update_callback() { g_dummy_clock_callbacks++; } @@ -75,7 +65,6 @@ void test_capi_wrappers_se(fmi3_import_t* fmu) { fmi3_boolean_t loggingOn = fmi3_false; dummy_fmi3_instance_environment_t instance_env; instance_env.clock_update_callback_called = fmi3_false; - instance_env.log_message_callback_called = fmi3_false; g_dummy_clock_callbacks = 0; @@ -93,8 +82,6 @@ void test_capi_wrappers_se(fmi3_import_t* fmu) { resourcePath, visible, loggingOn, - ((fmi3_instance_environment_t)&instance_env), - &dummy_log_message_callback, &dummy_clock_update_callback, &dummy_lock_preemption_callback, &dummy_unlock_preemption_callback @@ -102,8 +89,6 @@ void test_capi_wrappers_se(fmi3_import_t* fmu) { REQUIRE(jmstatus == jm_status_success); INFO("Verify callbacks"); - REQUIRE(instance_env.log_message_callback_called == fmi3_true); - REQUIRE(g_dummy_clock_callbacks > 0); REQUIRE(G_dummy_lock_preemption_callback_called == fmi3_true); REQUIRE(G_dummy_unlock_preemption_callback_called == fmi3_true); diff --git a/src/CAPI/include/FMI3/fmi3_capi.h b/src/CAPI/include/FMI3/fmi3_capi.h index 5f1cc00f..c947d386 100644 --- a/src/CAPI/include/FMI3/fmi3_capi.h +++ b/src/CAPI/include/FMI3/fmi3_capi.h @@ -162,8 +162,6 @@ fmi3_status_t fmi3_capi_set_debug_logging(fmi3_capi_t* fmu, fmi3_boolean_t loggi * @param resourcePath Absolute path to the FMU archive resources. * @param visible Indicates whether or not the simulator application window shoule be visible. * @param loggingOn Enable or disable the debug logger. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @return An instance of a model, or NULL if call failed. */ fmi3_instance_t fmi3_capi_instantiate_model_exchange(fmi3_capi_t* fmu, @@ -171,9 +169,7 @@ fmi3_instance_t fmi3_capi_instantiate_model_exchange(fmi3_capi_t* fmu, fmi3_string_t instantiationToken, fmi3_string_t resourcePath, fmi3_boolean_t visible, - fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage); + fmi3_boolean_t loggingOn); /** @@ -193,8 +189,6 @@ fmi3_instance_t fmi3_capi_instantiate_model_exchange(fmi3_capi_t* fmu, * that the simulation algorithm intends to set/get during intermediate updates. * @param nRequiredIntermediateVariables Specifies the number of entries in array * 'requiredIntermediateVariables'. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @param intermediateUpdate Callback for performing intermediate updates. * @return An instance of a model, or NULL if call failed. */ @@ -209,8 +203,6 @@ fmi3_instance_t fmi3_capi_instantiate_co_simulation( fmi3_boolean_t earlyReturnAllowed, const fmi3_value_reference_t requiredIntermediateVariables[], size_t nRequiredIntermediateVariables, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_intermediate_update_callback_ft intermediateUpdate); /** @@ -224,8 +216,6 @@ fmi3_instance_t fmi3_capi_instantiate_co_simulation( * @param resourcePath Absolute path to the FMU archive resources. * @param visible Indicates whether or not the simulator application window shoule be visible. * @param loggingOn Enable or disable the debug logger. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @param clockUpdate Callback for clock update. * @param lockPreemption Callback for locking preemption. * @param unlockPreemption Callback for unlocking preemption. @@ -238,8 +228,6 @@ fmi3_instance_t fmi3_capi_instantiate_scheduled_execution( fmi3_string_t resourcePath, fmi3_boolean_t visible, fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_clock_update_callback_ft clockUpdate, fmi3_lock_preemption_callback_ft lockPreemption, fmi3_unlock_preemption_callback_ft unlockPreemption); diff --git a/src/CAPI/src/FMI3/fmi3_capi.c b/src/CAPI/src/FMI3/fmi3_capi.c index 5ff95fac..203eed07 100644 --- a/src/CAPI/src/FMI3/fmi3_capi.c +++ b/src/CAPI/src/FMI3/fmi3_capi.c @@ -375,9 +375,7 @@ fmi3_instance_t fmi3_capi_instantiate_model_exchange(fmi3_capi_t* fmu, fmi3_string_t instantiationToken, fmi3_string_t resourcePath, fmi3_boolean_t visible, - fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage) + fmi3_boolean_t loggingOn) { return fmu->inst = fmu->fmi3InstantiateModelExchange(instanceName, instantiationToken, @@ -399,8 +397,6 @@ fmi3_instance_t fmi3_capi_instantiate_co_simulation( fmi3_boolean_t earlyReturnAllowed, const fmi3_value_reference_t requiredIntermediateVariables[], size_t nRequiredIntermediateVariables, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_intermediate_update_callback_ft intermediateUpdate) { return fmu->inst = fmu->fmi3InstantiateCoSimulation( @@ -425,8 +421,6 @@ fmi3_instance_t fmi3_capi_instantiate_scheduled_execution( fmi3_string_t resourcePath, fmi3_boolean_t visible, fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_clock_update_callback_ft clockUpdate, fmi3_lock_preemption_callback_ft lockPreemption, fmi3_unlock_preemption_callback_ft unlockPreemption) @@ -437,8 +431,8 @@ fmi3_instance_t fmi3_capi_instantiate_scheduled_execution( resourcePath, visible, loggingOn, - instanceEnvironment, - logMessage, + fmu->instanceEnvironment, + fmu->logMessage, clockUpdate, lockPreemption, unlockPreemption); diff --git a/src/Import/include/FMI3/fmi3_import_capi.h b/src/Import/include/FMI3/fmi3_import_capi.h index c8814aa1..e1bbd5df 100644 --- a/src/Import/include/FMI3/fmi3_import_capi.h +++ b/src/Import/include/FMI3/fmi3_import_capi.h @@ -119,7 +119,6 @@ FMILIB_EXPORT fmi3_status_t fmi3_import_set_debug_logging(fmi3_import_t* fmu, fm * \brief Wrapper for the FMI function fmi3InstantiateModelExchange(...) * * Arguments 'instanceEnvironment' and 'logMessage' are reused from #fmi3_import_create_dllfmu. - * Argument 'loggingOn' is reused from #fmi3_import_parse_xml(). * * @param fmu A model description object returned by fmi3_import_parse_xml() that has loaded the FMI functions, see * fmi3_import_create_dllfmu(). @@ -128,8 +127,6 @@ FMILIB_EXPORT fmi3_status_t fmi3_import_set_debug_logging(fmi3_import_t* fmu, fm * path to the unzipped location. * @param visible Indicates whether or not the simulator application window shoule be visible. * @param loggingOn Enable or disable the debug logger. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @return Error status. Returnes jm_status_error if FMI function returned NULL, otherwise jm_status_success. */ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_model_exchange( @@ -137,15 +134,12 @@ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_model_exchange( fmi3_string_t instanceName, fmi3_string_t resourcePath, fmi3_boolean_t visible, - fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage); + fmi3_boolean_t loggingOn); /** * \brief Wrapper for the FMI function fmi3InstantiateCoSimulation(...) * * Arguments 'instanceEnvironment' and 'logMessage' are reused from #fmi3_import_create_dllfmu. - * Argument 'loggingOn' is reused from #fmi3_import_parse_xml(). * * @param fmu A model description object returned by fmi3_import_parse_xml() that has loaded the FMI functions, see * fmi3_import_create_dllfmu(). @@ -160,8 +154,6 @@ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_model_exchange( * that the simulation algorithm intends to set/get during intermediate updates. * @param nRequiredIntermediateVariables Specifies the number of entries in array * 'requiredIntermediateVariables'. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @param intermediateUpdate Callback for performing intermediate updates. * @return Error status. Returnes jm_status_error if FMI function returned NULL, otherwise jm_status_success. */ @@ -175,15 +167,12 @@ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_co_simulation( fmi3_boolean_t earlyReturnAllowed, const fmi3_value_reference_t requiredIntermediateVariables[], size_t nRequiredIntermediateVariables, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_intermediate_update_callback_ft intermediateUpdate); /** * \brief Wrapper for the FMI function fmi3InstantiateScheduledExecution(...) * * Arguments 'instanceEnvironment' and 'logMessage' are reused from #fmi3_import_create_dllfmu. - * Argument 'loggingOn' is reused from #fmi3_import_parse_xml(). * * @param fmu A model description object returned by fmi3_import_parse_xml() that has loaded the FMI functions, see * fmi3_import_create_dllfmu(). @@ -192,8 +181,6 @@ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_co_simulation( * path to the unzipped location. * @param visible Indicates whether or not the simulator application window shoule be visible. * @param loggingOn Enable or disable the debug logger. - * @param instanceEnvironment The instance environment that is used during callbacks. - * @param logMessage The logging function the FMU will use. * @param clockUpdate Callback for clock update. * @param lockPreemption Callback for locking preemption. * @param unlockPreemption Callback for unlocking preemption. @@ -205,8 +192,6 @@ FMILIB_EXPORT jm_status_enu_t fmi3_import_instantiate_scheduled_execution( fmi3_string_t resourcePath, fmi3_boolean_t visible, fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_clock_update_callback_ft clockUpdate, fmi3_lock_preemption_callback_ft lockPreemption, fmi3_unlock_preemption_callback_ft unlockPreemption); diff --git a/src/Import/src/FMI3/fmi3_import_capi.c b/src/Import/src/FMI3/fmi3_import_capi.c index a46fc5c5..a65ae602 100644 --- a/src/Import/src/FMI3/fmi3_import_capi.c +++ b/src/Import/src/FMI3/fmi3_import_capi.c @@ -205,9 +205,7 @@ jm_status_enu_t fmi3_import_instantiate_model_exchange(fmi3_import_t* fmu, fmi3_string_t instanceName, fmi3_string_t resourcePath, fmi3_boolean_t visible, - fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage) + fmi3_boolean_t loggingOn) { fmi3_string_t instantiationToken = fmi3_import_get_instantiation_token(fmu); fmi3_instance_t c; @@ -231,9 +229,7 @@ jm_status_enu_t fmi3_import_instantiate_model_exchange(fmi3_import_t* fmu, instantiationToken, resourcePath, visible, - loggingOn, - instanceEnvironment, - logMessage); + loggingOn); if (c == NULL) { return jm_status_error; } else { @@ -251,8 +247,6 @@ jm_status_enu_t fmi3_import_instantiate_co_simulation( fmi3_boolean_t earlyReturnAllowed, const fmi3_value_reference_t requiredIntermediateVariables[], size_t nRequiredIntermediateVariables, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_intermediate_update_callback_ft intermediateUpdate) { fmi3_string_t instantiationToken = fmi3_import_get_instantiation_token(fmu); @@ -282,8 +276,6 @@ jm_status_enu_t fmi3_import_instantiate_co_simulation( earlyReturnAllowed, requiredIntermediateVariables, nRequiredIntermediateVariables, - instanceEnvironment, - logMessage, intermediateUpdate); if (c == NULL) { return jm_status_error; @@ -298,8 +290,6 @@ jm_status_enu_t fmi3_import_instantiate_scheduled_execution( fmi3_string_t resourcePath, fmi3_boolean_t visible, fmi3_boolean_t loggingOn, - fmi3_instance_environment_t instanceEnvironment, - fmi3_log_message_callback_ft logMessage, fmi3_clock_update_callback_ft clockUpdate, fmi3_lock_preemption_callback_ft lockPreemption, fmi3_unlock_preemption_callback_ft unlockPreemption) @@ -327,8 +317,6 @@ jm_status_enu_t fmi3_import_instantiate_scheduled_execution( resourcePath, visible, loggingOn, - instanceEnvironment, - logMessage, clockUpdate, lockPreemption, unlockPreemption);